Assembly Diffs

linux arm64

Diffs are based on 2,549,519 contexts (1,019,526 MinOpts, 1,529,993 FullOpts).

MISSED contexts: base: 172 (0.01%), diff: 5,238 (0.21%)

Overall (-1,000,028 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.linux.arm64.checked.mch 18,177,936 +73,684 +0.47%
benchmarks.run_pgo.linux.arm64.checked.mch 76,659,216 -68,772 -1.81%
benchmarks.run_tiered.linux.arm64.checked.mch 22,368,864 -3,280 -0.15%
coreclr_tests.run.linux.arm64.checked.mch 521,932,512 -1,452,504 -0.32%
libraries.crossgen2.linux.arm64.checked.mch 64,066,684 -189,792 +0.63%
libraries.pmi.linux.arm64.checked.mch 76,561,528 +46,740 -0.50%
libraries_tests.run.linux.arm64.Release.mch 379,466,540 +65,236 -0.25%
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 161,433,920 +527,392 +0.01%
realworld.run.linux.arm64.checked.mch 15,705,696 +7,800 -0.16%
smoke_tests.nativeaot.linux.arm64.checked.mch 2,971,464 -6,532 -0.04%

FullOpts (-1,000,028 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.linux.arm64.checked.mch 17,684,900 +73,684 +0.47%
benchmarks.run_pgo.linux.arm64.checked.mch 53,524,948 -68,772 -1.81%
benchmarks.run_tiered.linux.arm64.checked.mch 4,728,640 -3,280 -0.15%
coreclr_tests.run.linux.arm64.checked.mch 164,343,324 -1,452,504 -0.32%
libraries.crossgen2.linux.arm64.checked.mch 64,065,048 -189,792 +0.63%
libraries.pmi.linux.arm64.checked.mch 76,441,544 +46,740 -0.50%
libraries_tests.run.linux.arm64.Release.mch 163,929,444 +65,236 -0.25%
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 148,030,812 +527,392 +0.01%
realworld.run.linux.arm64.checked.mch 15,141,388 +7,800 -0.16%
smoke_tests.nativeaot.linux.arm64.checked.mch 2,970,476 -6,532 -0.04%

Example diffs

benchmarks.run.linux.arm64.checked.mch

-36 (-21.95%) : 11905.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M57856_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M57856_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF653BD218h, 0000FFFF682FA058h +RWD16 dq 0000FFFF653BD218h, 0000FFFF682FA070h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-12 (-13.04%) : 12145.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M10319_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M10319_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M10319_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr w0, [x19, #0x10] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -51,7 +49,7 @@ G_M10319_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=d4f4d7b0) for method (dynamicClass):NumGetter(System.Object):int (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=d4f4d7b0) for method (dynamicClass):NumGetter(System.Object):int (FullOpts)
; ============================================================ Unwind Info: @@ -62,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 15241.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_1012(System.Object):System.String:this (FullOpts)

@@ -12,8 +12,9 @@ ; V01 arg1 [V01,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <MicroBenchmarks.Serializers.SimpleStructWithProperties> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 2, 2 ) ref -> x0 single-def "field V02.<Text>k__BackingField (fldOffset=0x0)" P-INDEP
+; V04 tmp1 [V04,T02] ( 2, 2 ) ref -> x0 single-def "field V02.<Text>k__BackingField (fldOffset=0x0)" P-INDEP
;* V05 tmp2 [V05 ] ( 0, 0 ) int -> zero-ref "field V02.<Num>k__BackingField (fldOffset=0x8)" P-INDEP
+; V06 cse0 [V06,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -35,16 +36,13 @@ G_M13833_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M13833_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M13833_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x08] ; gcrRegs +[x0] @@ -55,7 +53,7 @@ G_M13833_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=62fcc9f6) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_2(System.Object):System.String:this (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=62fcc9f6) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_2(System.Object):System.String:this (FullOpts)
; ============================================================ Unwind Info: @@ -66,7 +64,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+25.81%) : 15137.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)

@@ -18,13 +18,12 @@ ;* V07 tmp7 [V07 ] ( 0, 0 ) ref -> zero-ref ;* V08 tmp8 [V08 ] ( 0, 0 ) ref -> zero-ref ;* V09 tmp9 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 cse0 [V10,T01] ( 5, 5 ) long -> x20 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28339_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28339_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -35,17 +34,20 @@ G_M28339_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs +[x0] mov x19, x0 ; gcrRegs +[x19]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - ldr x15, [x20]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #16 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15] ; byrRegs -[x14]
- ldr x15, [x20, #0x30]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #24 ; byrRegs +[x14] @@ -57,26 +59,31 @@ G_M28339_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movk x0, #0xD1FFAB1E LSL #32 mov w1, #9 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x20, #0x78]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #8 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- add x14, x20, #40
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x19 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15 x19]
- ;; size=100 bbWeight=1 PerfScore 23.00
+ ;; size=132 bbWeight=1 PerfScore 27.00
G_M28339_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 124, prolog size 12, PerfScore 28.50, instruction count 31, allocated bytes for code 124 (MethodHash=13b9914c) for method System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
+; Total bytes of code 156, prolog size 12, PerfScore 33.50, instruction count 39, allocated bytes for code 156 (MethodHash=13b9914c) for method System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -87,7 +94,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ 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) @@ -95,7 +102,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+26.09%) : 17897.dasm - System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)

@@ -8,62 +8,66 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V02 cse1 [V02,T00] ( 5, 4.50) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M40308_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M40308_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M40308_IG07 - ;; size=36 bbWeight=1 PerfScore 7.50
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M40308_IG07 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M40308_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w0, [x19, #0xD1FFAB1E]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
cbnz w0, G_M40308_IG05
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M40308_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, #1
- str w0, [x19, #0xD1FFAB1E] - ;; size=8 bbWeight=0.50 PerfScore 0.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=20 bbWeight=0.50 PerfScore 1.50
G_M40308_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19, #0xD1FFAB1E] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M40308_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M40308_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M40308_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 12, PerfScore 21.75, instruction count 23, allocated bytes for code 92 (MethodHash=ffbb628b) for method System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 20.50, instruction count 29, allocated bytes for code 116 (MethodHash=ffbb628b) for method System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ 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) @@ -71,10 +75,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+34.62%) : 15432.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,65 +9,72 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 2, 1 ) int -> x0 -; V02 cse0 [V02,T00] ( 6, 4.50) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T02] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> x0
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr w0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
cbnz w0, G_M24568_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M24568_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub x0, x19, #216 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M24568_IG07 - ;; size=24 bbWeight=0.50 PerfScore 3.00
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M24568_IG07 + ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #-0x0F]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
mov w1, #1 cmp w0, #0 cinc w0, w1, eq
- str w0, [x19] - ;; size=20 bbWeight=0.50 PerfScore 2.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M24568_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M24568_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M24568_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #4 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG04
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 12, PerfScore 20.75, instruction count 26, allocated bytes for code 104 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 140, prolog size 8, PerfScore 20.50, instruction count 35, allocated bytes for code 140 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ 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) @@ -75,10 +82,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

benchmarks.run_pgo.linux.arm64.checked.mch

-12 (-15.00%) : 73157.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)

@@ -9,9 +9,10 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 5, 4 ) byref -> x0 this single-def
-; V01 arg1 [V01,T01] ( 4, 3.00) ubyte -> x1 single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> x1 single-def
; V02 loc0 [V02,T02] ( 3, 3.00) int -> x2 ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 3, 2.00) int -> x1 "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,13 +23,11 @@ G_M23174_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M23174_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz ; byrRegs +[x0] ldapr w2, [x0]
+ uxtb w1, w1
tst w2, #0xD1FFAB1E
- cset x3, ne - tst w1, #255 - cset x4, eq - tst w3, w4 - beq G_M23174_IG05 - ;; size=28 bbWeight=1 PerfScore 6.50
+ ccmp w1, #0, 0, ne + bne G_M23174_IG05 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M23174_IG03: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref and w1, w2, #0xD1FFAB1E stlr w1, [x0] @@ -38,19 +37,18 @@ G_M23174_IG04: ; bbWeight=1.00, epilog, nogc, extend ret lr ;; size=8 bbWeight=1.00 PerfScore 2.00 G_M23174_IG05: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref
- uxtb w1, w1
movz x2, #0xD1FFAB1E // code for System.Threading.SpinLock:ExitSlowPath(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2]
- ;; size=20 bbWeight=0.00 PerfScore 0.01
+ ;; size=16 bbWeight=0.00 PerfScore 0.01
G_M23174_IG06: ; bbWeight=0.00, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x2 ; gcr arg pop 0 ;; size=8 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 80, prolog size 8, PerfScore 11.50, instruction count 20, allocated bytes for code 80 (MethodHash=398ca579) for method System.Threading.SpinLock:Exit(ubyte):this (Tier1)
+; Total bytes of code 68, prolog size 8, PerfScore 10.50, instruction count 17, allocated bytes for code 68 (MethodHash=398ca579) for method System.Threading.SpinLock:Exit(ubyte):this (Tier1)
; ============================================================ Unwind Info: @@ -61,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 17 (0x00011) Actual length = 68 (0x000044)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-15.00%) : 99911.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)

@@ -9,9 +9,10 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 5, 4 ) byref -> x0 this single-def
-; V01 arg1 [V01,T01] ( 4, 3.09) ubyte -> x1 single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> x1 single-def
; V02 loc0 [V02,T02] ( 3, 2.91) int -> x2 ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 3, 2.09) int -> x1 "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,13 +23,11 @@ G_M23174_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M23174_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz ; byrRegs +[x0] ldapr w2, [x0]
+ uxtb w1, w1
tst w2, #0xD1FFAB1E
- cset x3, ne - tst w1, #255 - cset x4, eq - tst w3, w4 - beq G_M23174_IG05 - ;; size=28 bbWeight=1 PerfScore 6.50
+ ccmp w1, #0, 0, ne + bne G_M23174_IG05 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M23174_IG03: ; bbWeight=0.91, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref and w1, w2, #0xD1FFAB1E stlr w1, [x0] @@ -38,19 +37,18 @@ G_M23174_IG04: ; bbWeight=0.91, epilog, nogc, extend ret lr ;; size=8 bbWeight=0.91 PerfScore 1.82 G_M23174_IG05: ; bbWeight=0.09, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref
- uxtb w1, w1
movz x2, #0xD1FFAB1E // code for System.Threading.SpinLock:ExitSlowPath(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2]
- ;; size=20 bbWeight=0.09 PerfScore 0.45
+ ;; size=16 bbWeight=0.09 PerfScore 0.41
G_M23174_IG06: ; bbWeight=0.09, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x2 ; gcr arg pop 0 ;; size=8 bbWeight=0.09 PerfScore 0.18
-; Total bytes of code 80, prolog size 8, PerfScore 11.82, instruction count 20, allocated bytes for code 80 (MethodHash=398ca579) for method System.Threading.SpinLock:Exit(ubyte):this (Tier1)
+; Total bytes of code 68, prolog size 8, PerfScore 10.77, instruction count 17, allocated bytes for code 68 (MethodHash=398ca579) for method System.Threading.SpinLock:Exit(ubyte):this (Tier1)
; ============================================================ Unwind Info: @@ -61,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 17 (0x00011) Actual length = 68 (0x000044)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-15.00%) : 60732.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)

@@ -9,9 +9,10 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 5, 4 ) byref -> x0 this single-def
-; V01 arg1 [V01,T01] ( 4, 3.00) ubyte -> x1 single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> x1 single-def
; V02 loc0 [V02,T02] ( 3, 3.00) int -> x2 ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 3, 2.00) int -> x1 "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,13 +23,11 @@ G_M23174_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M23174_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz ; byrRegs +[x0] ldapr w2, [x0]
+ uxtb w1, w1
tst w2, #0xD1FFAB1E
- cset x3, ne - tst w1, #255 - cset x4, eq - tst w3, w4 - beq G_M23174_IG05 - ;; size=28 bbWeight=1 PerfScore 6.50
+ ccmp w1, #0, 0, ne + bne G_M23174_IG05 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M23174_IG03: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref and w1, w2, #0xD1FFAB1E stlr w1, [x0] @@ -38,19 +37,18 @@ G_M23174_IG04: ; bbWeight=1.00, epilog, nogc, extend ret lr ;; size=8 bbWeight=1.00 PerfScore 2.00 G_M23174_IG05: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref
- uxtb w1, w1
movz x2, #0xD1FFAB1E // code for System.Threading.SpinLock:ExitSlowPath(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2]
- ;; size=20 bbWeight=0.00 PerfScore 0.00
+ ;; size=16 bbWeight=0.00 PerfScore 0.00
G_M23174_IG06: ; bbWeight=0.00, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x2 ; gcr arg pop 0 ;; size=8 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 80, prolog size 8, PerfScore 11.50, instruction count 20, allocated bytes for code 80 (MethodHash=398ca579) for method System.Threading.SpinLock:Exit(ubyte):this (Tier1)
+; Total bytes of code 68, prolog size 8, PerfScore 10.50, instruction count 17, allocated bytes for code 68 (MethodHash=398ca579) for method System.Threading.SpinLock:Exit(ubyte):this (Tier1)
; ============================================================ Unwind Info: @@ -61,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 17 (0x00011) Actual length = 68 (0x000044)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+17.65%) : 86684.dasm - Interop+Crypto:EvpSha256():long (Tier1)

@@ -9,51 +9,53 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 0 ) long -> x0 "dup spill" -; V02 cse0 [V02,T00] ( 4, 3 ) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 0 ) long -> x0 "dup spill"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M33514_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M33514_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldapr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldapr x0, [x0]
cbz x0, G_M33514_IG04
- ldapr x0, [x19] - ;; size=24 bbWeight=1 PerfScore 8.50
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldapr x0, [x0] + ;; size=36 bbWeight=1 PerfScore 10.00
G_M33514_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M33514_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref bl <unknown method>
- stlr x0, [x19] - ;; size=8 bbWeight=0 PerfScore 0.00
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + stlr x0, [x1] + ;; size=20 bbWeight=0 PerfScore 0.00
G_M33514_IG05: ; bbWeight=0, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 68, prolog size 12, PerfScore 15.00, instruction count 17, allocated bytes for code 68 (MethodHash=db347d15) for method Interop+Crypto:EvpSha256():long (Tier1)
+; Total bytes of code 80, prolog size 8, PerfScore 13.50, instruction count 20, allocated bytes for code 80 (MethodHash=db347d15) for method Interop+Crypto:EvpSha256():long (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -64,10 +66,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+24 (+19.35%) : 409.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -10,34 +10,36 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3 ) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbz x0, G_M28655_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M28655_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG04: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] movz x0, #0xD1FFAB1E @@ -45,8 +47,8 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
mov w1, #2 movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this movk x2, #0xD1FFAB1E LSL #16 @@ -54,19 +56,24 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ldr x2, [x2] blr x2 ; gcrRegs -[x0]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x68]
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0]
b G_M28655_IG03
- ;; size=76 bbWeight=0 PerfScore 0.00
+ ;; size=88 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 12, PerfScore 14.00, instruction count 31, allocated bytes for code 124 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 148, prolog size 12, PerfScore 16.50, instruction count 37, allocated bytes for code 148 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -77,7 +84,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -85,7 +92,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+19.35%) : 7281.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -10,34 +10,36 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3 ) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbz x0, G_M28655_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M28655_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG04: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] movz x0, #0xD1FFAB1E @@ -45,8 +47,8 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
mov w1, #2 movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this movk x2, #0xD1FFAB1E LSL #16 @@ -54,19 +56,24 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ldr x2, [x2] blr x2 ; gcrRegs -[x0]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x68]
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0]
b G_M28655_IG03
- ;; size=76 bbWeight=0 PerfScore 0.00
+ ;; size=88 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 12, PerfScore 14.00, instruction count 31, allocated bytes for code 124 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 148, prolog size 12, PerfScore 16.50, instruction count 37, allocated bytes for code 148 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -77,7 +84,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -85,7 +92,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

benchmarks.run_tiered.linux.arm64.checked.mch

-12 (-13.04%) : 22005.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M40937_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M40937_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M40937_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x08] ; gcrRegs +[x0] @@ -52,7 +50,7 @@ G_M40937_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=08526016) for method (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=08526016) for method (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
; ============================================================ Unwind Info: @@ -63,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 30639.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M25960_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M25960_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M25960_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldrb w0, [x19, #0x20] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -51,7 +49,7 @@ G_M25960_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -62,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 22004.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M10319_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M10319_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M10319_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr w0, [x19, #0x10] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -51,7 +49,7 @@ G_M10319_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=d4f4d7b0) for method (dynamicClass):NumGetter(System.Object):int (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=d4f4d7b0) for method (dynamicClass):NumGetter(System.Object):int (FullOpts)
; ============================================================ Unwind Info: @@ -62,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+16.67%) : 47235.dasm - Microsoft.Cci.Extensions:HasBody(Microsoft.Cci.IMethodDefinition):ubyte (Tier1)

@@ -9,14 +9,13 @@ ; ; V00 arg0 [V00,T00] ( 6, 4.50) ref -> x19 class-hnd single-def <Microsoft.Cci.IMethodDefinition> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T02] ( 2, 2 ) ref -> x0 single-def "argument with side effect" -; V03 cse0 [V03,T01] ( 6, 4 ) long -> x20 "CSE - aggressive"
+; V02 tmp1 [V02,T01] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M37671_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] @@ -24,64 +23,71 @@ G_M37671_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M37671_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz mov x0, x19 ; gcrRegs +[x0]
- movz x20, #0xD1FFAB1E // code for <unknown method> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x11, x20
+ movz x11, #0xD1FFAB1E // code for <unknown method> + movk x11, #0xD1FFAB1E LSL #16 + movk x11, #0xD1FFAB1E LSL #32
ldr x1, [x11] blr x1 ; gcrRegs -[x0] cbnz w0, G_M37671_IG07
- ;; size=32 bbWeight=1 PerfScore 7.50
+ ;; size=28 bbWeight=1 PerfScore 7.00
G_M37671_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz mov x0, x19 ; gcrRegs +[x0]
- add x11, x20, #8
+ movz x11, #0xD1FFAB1E // code for <unknown method> + movk x11, #0xD1FFAB1E LSL #16 + movk x11, #0xD1FFAB1E LSL #32
ldr x1, [x11] blr x1 ; gcrRegs -[x0] cbnz w0, G_M37671_IG07 mov x0, x19 ; gcrRegs +[x0]
- add x11, x20, #16
+ movz x11, #0xD1FFAB1E // code for <unknown method> + movk x11, #0xD1FFAB1E LSL #16 + movk x11, #0xD1FFAB1E LSL #32
ldr x1, [x11] blr x1 cbz x0, G_M37671_IG05 mov x0, x19
- add x11, x20, #16
+ movz x11, #0xD1FFAB1E // code for <unknown method> + movk x11, #0xD1FFAB1E LSL #16 + movk x11, #0xD1FFAB1E LSL #32
ldr x1, [x11] blr x1 ; gcrRegs -[x19]
- add x11, x20, #32
+ movz x11, #0xD1FFAB1E // code for <unknown method> + movk x11, #0xD1FFAB1E LSL #16 + movk x11, #0xD1FFAB1E LSL #32
ldr x1, [x11] blr x1 ; gcrRegs -[x0] cmp w0, #0 cset x0, eq
- ;; size=76 bbWeight=0.50 PerfScore 11.25
+ ;; size=108 bbWeight=0.50 PerfScore 13.25
G_M37671_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M37671_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, #1 ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M37671_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M37671_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, wzr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M37671_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 168, prolog size 12, PerfScore 26.75, instruction count 42, allocated bytes for code 168 (MethodHash=50a56cd8) for method Microsoft.Cci.Extensions:HasBody(Microsoft.Cci.IMethodDefinition):ubyte (Tier1)
+; Total bytes of code 196, prolog size 12, PerfScore 29.75, instruction count 49, allocated bytes for code 196 (MethodHash=50a56cd8) for method Microsoft.Cci.Extensions:HasBody(Microsoft.Cci.IMethodDefinition):ubyte (Tier1)
; ============================================================ Unwind Info: @@ -92,7 +98,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -106,7 +112,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+28 (+17.50%) : 56784.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:get_IntrinsicTypeConverters():System.Collections.Generic.Dictionary`2System.Object,System.ComponentModel.ReflectTypeDescriptionProvider+IntrinsicTypeConverterData

@@ -9,31 +9,32 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T03] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <<unknown class>> -; V02 tmp2 [V02,T05] ( 3, 2.50) long -> x20 -; V03 tmp3 [V03,T04] ( 4, 3 ) ref -> x2
+; V01 tmp1 [V01,T02] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <<unknown class>> +; V02 tmp2 [V02,T04] ( 3, 2.50) long -> x19 +; V03 tmp3 [V03,T03] ( 4, 3 ) ref -> x2
; V04 tmp4 [V04,T00] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V05 tmp5 [V05,T06] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V05 tmp5 [V05,T05] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>>
; V06 tmp6 [V06,T01] ( 3, 5 ) ref -> x0 class-hnd single-def "dup spill" <System.__Canon> ;* V07 tmp7 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
-; V08 cse0 [V08,T02] ( 5, 4 ) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M59227_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M59227_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x2, [x0] + ; gcrRegs +[x2] + movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x19, #0xD1FFAB1E LSL #16 movk x19, #0xD1FFAB1E LSL #32
- ldr x2, [x19, #0xD1FFAB1E] - ; gcrRegs +[x2] - mov x20, x19
cbnz x2, G_M59227_IG04
- ;; size=24 bbWeight=1 PerfScore 6.00
+ ;; size=32 bbWeight=1 PerfScore 7.00
G_M59227_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x2] movz x0, #0xD1FFAB1E @@ -44,7 +45,10 @@ G_M59227_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov x2, x0 ; gcrRegs +[x2]
- ldr x15, [x19, #0x50]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x2, #8 ; byrRegs +[x14] @@ -55,20 +59,22 @@ G_M59227_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32 str x14, [x2, #0x18]
- add x14, x19, #0xD1FFAB1E
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x2 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15]
- ;; size=60 bbWeight=0.50 PerfScore 6.00
+ ;; size=80 bbWeight=0.50 PerfScore 7.25
G_M59227_IG04: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
- ldapr x0, [x20]
+ ldapr x0, [x19]
; gcrRegs +[x0] cbnz x0, G_M59227_IG07 ;; size=8 bbWeight=1 PerfScore 4.00 G_M59227_IG05: ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- mov x1, x20
+ mov x1, x19
; byrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -79,20 +85,20 @@ G_M59227_IG05: ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b ldr x3, [x3] ;; size=32 bbWeight=0.50 PerfScore 3.25 G_M59227_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 br x3 ; gcr arg pop 0
- ;; size=12 bbWeight=0.50 PerfScore 1.50
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M59227_IG07: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc ; gcrRegs -[x2] +[x0] ; byrRegs -[x1]
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 160, prolog size 12, PerfScore 24.75, instruction count 40, allocated bytes for code 160 (MethodHash=7a7c18a4) for method System.ComponentModel.ReflectTypeDescriptionProvider:get_IntrinsicTypeConverters():System.Collections.Generic.Dictionary`2[System.Object,System.ComponentModel.ReflectTypeDescriptionProvider+IntrinsicTypeConverterData] (Tier1)
+; Total bytes of code 188, prolog size 12, PerfScore 28.00, instruction count 47, allocated bytes for code 188 (MethodHash=7a7c18a4) for method System.ComponentModel.ReflectTypeDescriptionProvider:get_IntrinsicTypeConverters():System.Collections.Generic.Dictionary`2[System.Object,System.ComponentModel.ReflectTypeDescriptionProvider+IntrinsicTypeConverterData] (Tier1)
; ============================================================ Unwind Info: @@ -103,7 +109,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -114,7 +120,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+18.75%) : 398.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -9,21 +9,20 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3.50) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 3 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbnz x0, G_M28655_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 @@ -34,8 +33,8 @@ G_M28655_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 @@ -43,35 +42,43 @@ G_M28655_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov x1, #2 bl CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[x0]
- add x14, x20, #8
+ add x14, x19, #8
; byrRegs +[x14] mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15] ; byrRegs -[x14]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x68] - ;; size=80 bbWeight=0.50 PerfScore 7.25
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + ;; size=92 bbWeight=0.50 PerfScore 8.00
G_M28655_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG05: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 128, prolog size 12, PerfScore 21.25, instruction count 32, allocated bytes for code 128 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 152, prolog size 12, PerfScore 24.50, instruction count 38, allocated bytes for code 152 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -82,7 +89,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -90,7 +97,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

coreclr_tests.run.linux.arm64.checked.mch

-24 (-23.08%) : 328118.dasm - Test_b99969:DoSpoof() (Tier1-OSR)

@@ -10,7 +10,9 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 2, 2 ) byref -> x0 hoist "CSE - aggressive"
+; V01 cse0 [V01,T00] ( 4, 2 ) long -> x0 "CSE - unknown" +; V02 cse1 [V02,T01] ( 2, 2 ) ref -> x1 "CSE - unknown" +; V03 cse2 [V03,T02] ( 2, 2 ) byref -> x1 hoist "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,45 +24,39 @@ G_M19890_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0] - ; gcrRegs +[x0] - add x0, x0, #13 - ; gcrRegs -[x0] - ; byrRegs +[x0]
+ ldr x1, [x0] + ; gcrRegs +[x1] + add x1, x1, #13 + ; gcrRegs -[x1] + ; byrRegs +[x1]
;; size=20 bbWeight=1 PerfScore 5.00
-G_M19890_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz - ldaprb w1, [x0] - cbz w1, G_M19890_IG03
+G_M19890_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref, isz + ldaprb w2, [x1] + cbz w2, G_M19890_IG03
;; size=8 bbWeight=1 PerfScore 4.00 G_M19890_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0] - 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 w1, #0xD1FFAB1E - movk w1, #0xD1FFAB1E LSL #16 - str w1, [x0, #0x08] - movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> - ; gcrRegs -[x0] - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
+ ; byrRegs -[x1] + ldr x1, [x0] + ; gcrRegs +[x1] + movz w2, #0xD1FFAB1E + movk w2, #0xD1FFAB1E LSL #16 + str w2, [x1, #0x08]
ldr x0, [x0] ; gcrRegs +[x0] add x0, x0, #12 ; gcrRegs -[x0] ; byrRegs +[x0] mov w1, #1
+ ; gcrRegs -[x1]
stlrb w1, [x0]
- ;; size=56 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
G_M19890_IG05: ; bbWeight=0, epilog, nogc, extend ldp fp, lr, [sp], #0x10 add sp, sp, #32 ret lr ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 8, PerfScore 10.50, instruction count 26, allocated bytes for code 104 (MethodHash=bd6db24d) for method Test_b99969:DoSpoof() (Tier1-OSR)
+; Total bytes of code 80, prolog size 8, PerfScore 10.50, instruction count 20, allocated bytes for code 80 (MethodHash=bd6db24d) for method Test_b99969:DoSpoof() (Tier1-OSR)
; ============================================================ Unwind Info: @@ -71,7 +67,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-36 (-21.95%) : 633794.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M54112_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M54112_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF78DDD028h, 0000FFFF7B2AA670h +RWD16 dq 0000FFFF78DDD028h, 0000FFFF7B2AA688h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=09bf2c9f) for method Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=09bf2c9f) for method Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 647630.dasm - Microsoft.Build.Logging.LoggerDescription:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M38619_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M38619_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M38619_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M38619_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M38619_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M38619_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF4E2CD028h, 0000FFFF50AE2580h +RWD16 dq 0000FFFF4E2CD028h, 0000FFFF50AE2598h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=4f546924) for method Microsoft.Build.Logging.LoggerDescription:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=4f546924) for method Microsoft.Build.Logging.LoggerDescription:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+28 (+35.00%) : 586260.dasm - Test10w5d.testout1:Func01435():long (FullOpts)

@@ -20,8 +20,6 @@ ;* V09 tmp7 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V10 tmp8 [V10 ] ( 0, 0 ) long -> zero-ref single-def "field V00.a0_0_1_4_3_5 (fldOffset=0x0)" P-INDEP ;* V11 tmp9 [V11 ] ( 0, 0 ) int -> zero-ref "field V00.a1_0_1_4_3_5 (fldOffset=0x8)" P-INDEP
-; V12 cse0 [V12,T01] ( 3, 3 ) long -> x0 "CSE - aggressive" -; V13 cse1 [V13,T00] ( 4, 4 ) long -> x1 "CSE - aggressive"
; ; Lcl frame size = 0 @@ -38,21 +36,28 @@ G_M49162_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 str x0, [x1]
- movz w2, #0xD1FFAB1E - movk w2, #0xD1FFAB1E LSL #16 - str w2, [x1, #0x08] - ldr w1, [x1, #0x08] - add x0, x0, w1, SXTW
+ movz w0, #0xD1FFAB1E + movk w0, #0xD1FFAB1E LSL #16 + movz x1, #0xD1FFAB1E + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ldr w0, [x1] + movz x1, #0xD1FFAB1E + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + movk x1, #0xD1FFAB1E LSL #48 + add x0, x1, w0, SXTW
movz x1, #0xD1FFAB1E LSL #32 movk x1, #0xD1FFAB1E LSL #48 sub x0, x1, x0
- ;; size=64 bbWeight=1 PerfScore 12.00
+ ;; size=92 bbWeight=1 PerfScore 15.50
G_M49162_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=6ad53ff5) for method Test_10w5d.testout1:Func_0_1_4_3_5():long (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 19.00, instruction count 27, allocated bytes for code 108 (MethodHash=6ad53ff5) for method Test_10w5d.testout1:Func_0_1_4_3_5():long (FullOpts)
; ============================================================ Unwind Info: @@ -63,7 +68,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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)

+28 (+36.84%) : 582069.dasm - Test4:.cctor() (FullOpts)

@@ -8,51 +8,57 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 5, 5 ) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M55396_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M55396_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - str xzr, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x1, #3 bl CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[x0]
- add x14, x19, #8
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- stp xzr, xzr, [x19, #0x10] - ;; size=52 bbWeight=1 PerfScore 8.50
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0] + ;; size=88 bbWeight=1 PerfScore 13.50
G_M55396_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 76, prolog size 12, PerfScore 15.00, instruction count 19, allocated bytes for code 76 (MethodHash=d8f4279b) for method Test4:.cctor() (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 17.00, instruction count 26, allocated bytes for code 104 (MethodHash=d8f4279b) for method Test4:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -60,10 +66,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+40.91%) : 587347.dasm - Application:Display(int,System.String,int) (FullOpts)

@@ -7,28 +7,30 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T02] ( 3, 3 ) int -> x0 single-def -; V01 arg1 [V01,T01] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String> -; V02 arg2 [V02,T03] ( 3, 3 ) int -> x19 single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> x0 single-def +; V01 arg1 [V01,T00] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String> +; V02 arg2 [V02,T02] ( 3, 3 ) int -> x19 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T00] ( 5, 5 ) long -> x20 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M61215_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov w19, w2 ;; size=16 bbWeight=1 PerfScore 3.00 G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref ; gcrRegs +[x1]
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - ldr w2, [x20]
+ movz x2, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + ldr w2, [x2]
add w0, w2, w0
- str w0, [x20]
+ movz x2, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + str w0, [x2]
mov x0, x1 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Application:Display(System.String) @@ -38,17 +40,23 @@ G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byre ldr x1, [x1] blr x1 ; gcrRegs -[x0]
- ldr w0, [x20]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
add w0, w0, w19
- str w0, [x20] - ;; size=60 bbWeight=1 PerfScore 16.50
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=96 bbWeight=1 PerfScore 21.00
G_M61215_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 88, prolog size 12, PerfScore 22.50, instruction count 22, allocated bytes for code 88 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
+; Total bytes of code 124, prolog size 12, PerfScore 28.00, instruction count 31, allocated bytes for code 124 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
; ============================================================ Unwind Info: @@ -59,7 +67,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 88 (0x000058)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -67,7 +75,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

libraries.crossgen2.linux.arm64.checked.mch

-24 (-30.00%) : 210707.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)

@@ -9,76 +9,59 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <System.Dynamic.DynamicMetaObject>
+; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Dynamic.DynamicMetaObject>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 3 ) ref -> x19 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
-G_M17334_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M17334_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
- mov x19, x0
+ ;; size=12 bbWeight=1 PerfScore 2.50 +G_M17334_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0] + ldr x19, [x0, #0x08]
; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00 -G_M17334_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ldr x20, [x19, #0x08] - ; gcrRegs +[x20]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x0, [x11]
+ ; gcrRegs -[x0]
blr x0 ; byrRegs +[x0] ldr x0, [x0, #0xD1FFAB1E] ; gcrRegs +[x0] ; byrRegs -[x0]
- cmp x20, x0 - bne G_M17334_IG05 - ;; size=32 bbWeight=1 PerfScore 12.50 -G_M17334_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x19-x20] - mov x0, xzr - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M17334_IG04: ; bbWeight=0.50, epilog, nogc, extend - ldp x19, x20, [sp, #0x10]
+ cmp x19, x0 + csel x0, x19, xzr, ne + ;; size=32 bbWeight=1 PerfScore 12.00 +G_M17334_IG03: ; bbWeight=1, epilog, nogc, extend + ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M17334_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0] +[x19] - ldr x0, [x19, #0x08] - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 1.50 -G_M17334_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
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 20.25, instruction count 20, allocated bytes for code 80 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
+; Total bytes of code 56, prolog size 12, PerfScore 18.50, instruction count 14, allocated bytes for code 56 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 2
- Epilog Count : 2
+ Epilog Count : 1
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) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

-20 (-23.81%) : 26637.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)

@@ -9,74 +9,59 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T00] ( 3, 6 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.ObsoleteAttributeData>
+; V03 cse0 [V03,T02] ( 3, 3 ) ref -> x19 "CSE - unknown"
; ; Lcl frame size = 0
-G_M6081_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M6081_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]! stp x19, x20, [sp, #0x10] mov fp, sp
- mov x19, x0
+ ;; size=12 bbWeight=1 PerfScore 2.50 +G_M6081_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0] + ldr x19, [x0, #0x08]
; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00 -G_M6081_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ldr x20, [x19, #0x08]
+ mov x20, x19
; gcrRegs +[x20] ldrsb wzr, [x20] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x0, [x11]
+ ; gcrRegs -[x0]
blr x0 ; byrRegs +[x0] ldr x0, [x0, #0xD1FFAB1E] ; gcrRegs +[x0] ; byrRegs -[x0] cmp x0, x20
- beq G_M6081_IG05 - ;; size=36 bbWeight=1 PerfScore 15.50 -G_M6081_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x20] - ldr x0, [x19, #0x08] - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 1.50 -G_M6081_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ csel x0, xzr, x19, eq + ;; size=40 bbWeight=1 PerfScore 15.50 +G_M6081_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M6081_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0 x19] - mov x0, xzr - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M6081_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
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 12, PerfScore 23.25, instruction count 21, allocated bytes for code 84 (MethodHash=f741e83e) for method Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 21.00, instruction count 16, allocated bytes for code 64 (MethodHash=f741e83e) for method Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 2
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

-20 (-23.81%) : 195182.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)

@@ -9,74 +9,59 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T00] ( 3, 6 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.ObsoleteAttributeData>
+; V03 cse0 [V03,T02] ( 3, 3 ) ref -> x19 "CSE - unknown"
; ; Lcl frame size = 0
-G_M42863_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M42863_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]! stp x19, x20, [sp, #0x10] mov fp, sp
- mov x19, x0
+ ;; size=12 bbWeight=1 PerfScore 2.50 +G_M42863_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0] + ldr x19, [x0, #0x08]
; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00 -G_M42863_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ldr x20, [x19, #0x08]
+ mov x20, x19
; gcrRegs +[x20] ldrsb wzr, [x20] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x0, [x11]
+ ; gcrRegs -[x0]
blr x0 ; byrRegs +[x0] ldr x0, [x0, #0xD1FFAB1E] ; gcrRegs +[x0] ; byrRegs -[x0] cmp x0, x20
- beq G_M42863_IG05 - ;; size=36 bbWeight=1 PerfScore 15.50 -G_M42863_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x20] - ldr x0, [x19, #0x08] - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 1.50 -G_M42863_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ csel x0, xzr, x19, eq + ;; size=40 bbWeight=1 PerfScore 15.50 +G_M42863_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M42863_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0 x19] - mov x0, xzr - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M42863_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
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 12, PerfScore 23.25, instruction count 21, allocated bytes for code 84 (MethodHash=419e5890) for method Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 21.00, instruction count 16, allocated bytes for code 64 (MethodHash=419e5890) for method Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 2
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

+24 (+27.27%) : 228064.dasm - System.Reflection.TypeLoading.RoType:get_IsEnum():ubyte:this (FullOpts)

@@ -9,57 +9,67 @@ ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.RoType>
+; V00 this [V00,T00] ( 6, 4.50) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.RoType>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T03] ( 3, 2 ) int -> x0 "Inline return value spill temp" ; V03 tmp2 [V03,T02] ( 3, 3 ) int -> x0 "dup spill" ;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V05 cse0 [V05,T01] ( 4, 3 ) byref -> x19 "CSE - aggressive"
+; V05 cse0 [V05,T01] ( 4, 3 ) long -> x20 "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M42191_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M42191_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x0] - adrp x11, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x11, x11, [LOW RELOC #0xD1FFAB1E] - ldr x11, [x11] - add x11, x0, x11 - ; byrRegs +[x11] - add x19, x11, #80 - ; byrRegs +[x19] - ldar w11, [x19] - ; byrRegs -[x11] - cbnz w11, G_M42191_IG04
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M42191_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x20, [x0] + add x0, x19, x20 + ; byrRegs +[x0] + add x0, x0, #80 + ldar w0, [x0] + ; byrRegs -[x0] + cbnz w0, G_M42191_IG04
;; size=28 bbWeight=1 PerfScore 9.00
-G_M42191_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref
+G_M42191_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + mov x0, x19 + ; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1 ; gcrRegs -[x0]
- stlr w0, [x19]
+ add x1, x19, x20 + ; byrRegs +[x1] + add x1, x1, #80 + stlr w0, [x1]
b G_M42191_IG05
- ;; size=24 bbWeight=0.50 PerfScore 3.50 -G_M42191_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldar w0, [x19] - ;; size=4 bbWeight=0.50 PerfScore 1.50
+ ;; size=36 bbWeight=0.50 PerfScore 4.25 +G_M42191_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; byrRegs -[x1] + add x0, x19, x20 + ; byrRegs +[x0] + add x0, x0, #80 + ldar w0, [x0] + ; byrRegs -[x0] + ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M42191_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19]
+ ; gcrRegs -[x19]
tst w0, #4 cset x0, ne ;; size=8 bbWeight=1 PerfScore 1.00 G_M42191_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
+ ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 88, prolog size 12, PerfScore 21.50, instruction count 22, allocated bytes for code 88 (MethodHash=8a9c5b30) for method System.Reflection.TypeLoading.RoType:get_IsEnum():ubyte:this (FullOpts)
+; Total bytes of code 112, prolog size 12, PerfScore 22.25, instruction count 28, allocated bytes for code 112 (MethodHash=8a9c5b30) for method System.Reflection.TypeLoading.RoType:get_IsEnum():ubyte:this (FullOpts)
; ============================================================ Unwind Info: @@ -70,7 +80,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 88 (0x000058)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -78,7 +88,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+30.00%) : 228179.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)

@@ -8,9 +8,8 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
+; V00 this [V00,T00] ( 5, 4.50) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) byref -> x19 "CSE - aggressive"
; ; Lcl frame size = 8 @@ -18,34 +17,44 @@ G_M23044_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x20]! str x19, [sp, #0x18] mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M23044_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M23044_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x11, x11, [LOW RELOC #0xD1FFAB1E] - ldr x11, [x11] - add x19, x0, x11 - ; byrRegs +[x19] - ldar x11, [x19] - ; gcrRegs +[x11] - cbnz x11, G_M23044_IG04
+ ; byrRegs -[x0] + cbnz x0, G_M23044_IG04
;; size=24 bbWeight=1 PerfScore 8.50
-G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref - ; gcrRegs -[x11]
+G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0] + mov x0, x19 + ; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- ;; size=16 bbWeight=0.50 PerfScore 2.50 -G_M23044_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldar x0, [x19]
+ ;; size=20 bbWeight=0.50 PerfScore 2.75 +G_M23044_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11]
- ;; size=16 bbWeight=1 PerfScore 7.00
+ ;; size=32 bbWeight=1 PerfScore 11.50
G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 @@ -53,7 +62,7 @@ G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ; gcr arg pop 0 ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 24.50, instruction count 20, allocated bytes for code 80 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
+; Total bytes of code 104, prolog size 16, PerfScore 29.75, instruction count 26, allocated bytes for code 104 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
; ============================================================ Unwind Info: @@ -64,7 +73,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+30.00%) : 263639.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)

@@ -8,9 +8,8 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
+; V00 this [V00,T00] ( 5, 4.50) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) byref -> x19 "CSE - aggressive"
; ; Lcl frame size = 8 @@ -18,34 +17,44 @@ G_M23044_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x20]! str x19, [sp, #0x18] mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M23044_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M23044_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x11, x11, [LOW RELOC #0xD1FFAB1E] - ldr x11, [x11] - add x19, x0, x11 - ; byrRegs +[x19] - ldar x11, [x19] - ; gcrRegs +[x11] - cbnz x11, G_M23044_IG04
+ ; byrRegs -[x0] + cbnz x0, G_M23044_IG04
;; size=24 bbWeight=1 PerfScore 8.50
-G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref - ; gcrRegs -[x11]
+G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0] + mov x0, x19 + ; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- ;; size=16 bbWeight=0.50 PerfScore 2.50 -G_M23044_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldar x0, [x19]
+ ;; size=20 bbWeight=0.50 PerfScore 2.75 +G_M23044_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11]
- ;; size=16 bbWeight=1 PerfScore 7.00
+ ;; size=32 bbWeight=1 PerfScore 11.50
G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 @@ -53,7 +62,7 @@ G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ; gcr arg pop 0 ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 24.50, instruction count 20, allocated bytes for code 80 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
+; Total bytes of code 104, prolog size 16, PerfScore 29.75, instruction count 26, allocated bytes for code 104 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
; ============================================================ Unwind Info: @@ -64,7 +73,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.linux.arm64.checked.mch

-40 (-23.81%) : 8462.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)

@@ -9,19 +9,16 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M62751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -34,19 +31,11 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- str x14, [x0, #0x18] - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - add x14, x19, #0xD1FFAB1E - str x14, [x0, #0x20] - movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x14, x20
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF @@ -63,34 +52,36 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- stp x14, x19, [x0, #0x18] - add x14, x20, #8
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=144 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M62751_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF522F3720h, 0000FFFF4FB708E8h +RWD16 dq 0000FFFF55451FE8h, 0000FFFF4FB706A8h
-; Total bytes of code 168, prolog size 12, PerfScore 28.00, instruction count 42, allocated bytes for code 168 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-40 (-23.81%) : 195368.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)

@@ -9,19 +9,16 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M62751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -34,19 +31,11 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- str x14, [x0, #0x18] - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - add x14, x19, #0xD1FFAB1E - str x14, [x0, #0x20] - movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x14, x20
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF @@ -63,34 +52,36 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- stp x14, x19, [x0, #0x18] - add x14, x20, #8
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=144 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M62751_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF4FA53B88h, 0000FFFF4D1E2370h +RWD16 dq 0000FFFF52EC2680h, 0000FFFF4D1E2130h
-; Total bytes of code 168, prolog size 12, PerfScore 28.00, instruction count 42, allocated bytes for code 168 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 1433.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M38922_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - sub x14, x21, #72 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M38922_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF522F3720h, 0000FFFF4E5F1FB0h +RWD16 dq 0000FFFF522F3720h, 0000FFFF4E5F1F68h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=9f2a67f5) for method Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=9f2a67f5) for method Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+28 (+29.17%) : 214946.dasm - Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)

@@ -7,16 +7,17 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 4, 3.50) ref -> x0 class-hnd single-def <System.String> -; V01 loc0 [V01,T00] ( 6, 19 ) int -> x1
+; V00 arg0 [V00,T05] ( 4, 3.50) ref -> x0 class-hnd single-def <System.String> +; V01 loc0 [V01,T00] ( 7, 23 ) int -> x1
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 6 ) int -> x2 "CSE - aggressive" -; V04 cse1 [V04,T04] ( 2, 2 ) int -> x2 "CSE - aggressive" -; V05 cse2 [V05,T01] ( 3, 6.50) byref -> x0 hoist "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 4, 8 ) int -> x2 "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 6.50) byref -> x0 hoist "CSE - unknown" +; V05 cse2 [V05,T04] ( 3, 6 ) int -> x3 "CSE - unknown" +; V06 cse3 [V06,T01] ( 5, 14 ) int -> x4 multi-def "CSE - unknown"
; ; Lcl frame size = 0
-G_M53831_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M53831_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 @@ -24,8 +25,8 @@ G_M53831_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] mov w1, wzr ldr w2, [x0, #0x08]
- sub w2, w2, #1 - cmp w2, #0
+ sub w3, w2, #1 + cmp w3, #0
ble G_M53831_IG07 ;; size=20 bbWeight=1 PerfScore 5.50 G_M53831_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref @@ -34,21 +35,26 @@ G_M53831_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b ; byrRegs +[x0] ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M53831_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- ldrh w3, [x0, w1, UXTW #2] - cmp w3, #46
+ cmp w1, w2 + bhs G_M53831_IG11 + ldrh w4, [x0, w1, UXTW #2] + cmp w4, #46
bne G_M53831_IG06
- ;; size=12 bbWeight=4 PerfScore 18.00
+ ;; size=20 bbWeight=4 PerfScore 24.00
G_M53831_IG05: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- add w3, w1, #1 - ldrh w3, [x0, w3, UXTW #2] - cmp w3, #46
+ add w4, w1, #1 + cmp w4, w2 + bhs G_M53831_IG11 + ldrh w4, [x0, w4, UXTW #2] + cmp w4, #46
beq G_M53831_IG09
- ;; size=16 bbWeight=2 PerfScore 10.00
+ ;; size=24 bbWeight=2 PerfScore 13.00
G_M53831_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- add w1, w1, #1 - cmp w2, w1
+ add w4, w1, #1 + sxtw w1, w4 + cmp w3, w1
bgt G_M53831_IG04
- ;; size=12 bbWeight=4 PerfScore 8.00
+ ;; size=16 bbWeight=4 PerfScore 10.00
G_M53831_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; byrRegs -[x0] mov w0, wzr @@ -64,8 +70,13 @@ G_M53831_IG10: ; bbWeight=0.50, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M53831_IG11: ; 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 96, prolog size 8, PerfScore 45.75, instruction count 24, allocated bytes for code 96 (MethodHash=36dc2db8) for method Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 56.75, instruction count 31, allocated bytes for code 124 (MethodHash=36dc2db8) for method Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -76,7 +87,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+36 (+31.03%) : 212929.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)

@@ -9,20 +9,18 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 6, 4.50) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M15570_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M15570_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbnz x0, G_M15570_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 @@ -37,42 +35,52 @@ G_M15570_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ldr x1, [x1] blr x1 ; gcrRegs +[x0]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15]
- mov x14, x19
bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbnz x0, G_M15570_IG04 movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- str x0, [x19] - ;; size=68 bbWeight=0.50 PerfScore 7.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str x0, [x1] + ;; size=100 bbWeight=0.50 PerfScore 9.75
G_M15570_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M15570_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 116, prolog size 12, PerfScore 22.75, instruction count 29, allocated bytes for code 116 (MethodHash=1e56c32d) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
+; Total bytes of code 152, prolog size 8, PerfScore 23.25, instruction count 38, allocated bytes for code 152 (MethodHash=1e56c32d) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -80,10 +88,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+44 (+31.43%) : 246454.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,33 +9,29 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T02] ( 2, 1 ) int -> x0 -;* V02 cse0 [V02,T03] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V03 cse1 [V03,T00] ( 7, 5 ) long -> x19 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> x0 +;* V02 cse0 [V02,T01] ( 0, 0 ) long -> zero-ref "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M24568_IG08 - ;; size=36 bbWeight=1 PerfScore 7.50
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M24568_IG08 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M24568_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w0, [x19, #0xD8]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
cbnz w0, G_M24568_IG06
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -44,44 +40,57 @@ G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr tbz w0, #0, G_M24568_IG09 ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M24568_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #0xC9]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
mov w1, #1 cmp w0, #0 cinc w0, w1, eq
- str w0, [x19, #0xD8] - ;; size=20 bbWeight=0.50 PerfScore 2.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M24568_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19, #0xD8] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M24568_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M24568_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #8 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M24568_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #4 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG05
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 12, PerfScore 26.50, instruction count 35, allocated bytes for code 140 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 184, prolog size 8, PerfScore 26.00, instruction count 46, allocated bytes for code 184 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -89,10 +98,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

libraries_tests.run.linux.arm64.Release.mch

-12 (-30.00%) : 580110.dasm - System.Text.EncoderReplacementFallbackBuffer:get_Remaining():int:this (Tier1)

@@ -8,57 +8,44 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 11435 ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.00) ref -> x0 this class-hnd single-def <System.Text.EncoderReplacementFallbackBuffer>
+; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Text.EncoderReplacementFallbackBuffer>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 3 ) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0
-G_M45215_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M45215_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M45215_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x0] - ldr w1, [x0, #0x40] - tbz w1, #31, G_M45215_IG05 - ;; size=8 bbWeight=1 PerfScore 4.00 -G_M45215_IG03: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0] - mov w0, wzr - ;; size=4 bbWeight=1.00 PerfScore 0.50 -G_M45215_IG04: ; bbWeight=1.00, epilog, nogc, extend - ldp fp, lr, [sp], #0x10 - ret lr - ;; size=8 bbWeight=1.00 PerfScore 2.00 -G_M45215_IG05: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M45215_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs +[x0] ldr w0, [x0, #0x40] ; gcrRegs -[x0]
- ;; size=4 bbWeight=0.00 PerfScore 0.00 -G_M45215_IG06: ; bbWeight=0.00, epilog, nogc, extend
+ cmp w0, #0 + csel w0, wzr, w0, lt + ;; size=12 bbWeight=1 PerfScore 4.00 +G_M45215_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr
- ;; size=8 bbWeight=0.00 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 8.00, instruction count 10, allocated bytes for code 40 (MethodHash=fe0f4f60) for method System.Text.EncoderReplacementFallbackBuffer:get_Remaining():int:this (Tier1)
+; Total bytes of code 28, prolog size 8, PerfScore 7.50, instruction count 7, allocated bytes for code 28 (MethodHash=fe0f4f60) for method System.Text.EncoderReplacementFallbackBuffer:get_Remaining():int:this (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

-12 (-30.00%) : 580251.dasm - System.Text.DecoderReplacementFallbackBuffer:get_Remaining():int:this (Tier1)

@@ -8,57 +8,44 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 82689 ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.00) ref -> x0 this class-hnd single-def <System.Text.DecoderReplacementFallbackBuffer>
+; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Text.DecoderReplacementFallbackBuffer>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 3 ) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0
-G_M52853_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M52853_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M52853_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x0] - ldr w1, [x0, #0x2C] - tbz w1, #31, G_M52853_IG05 - ;; size=8 bbWeight=1 PerfScore 4.00 -G_M52853_IG03: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0] - mov w0, wzr - ;; size=4 bbWeight=1.00 PerfScore 0.50 -G_M52853_IG04: ; bbWeight=1.00, epilog, nogc, extend - ldp fp, lr, [sp], #0x10 - ret lr - ;; size=8 bbWeight=1.00 PerfScore 2.00 -G_M52853_IG05: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M52853_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs +[x0] ldr w0, [x0, #0x2C] ; gcrRegs -[x0]
- ;; size=4 bbWeight=0.00 PerfScore 0.00 -G_M52853_IG06: ; bbWeight=0.00, epilog, nogc, extend
+ cmp w0, #0 + csel w0, wzr, w0, lt + ;; size=12 bbWeight=1 PerfScore 4.00 +G_M52853_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr
- ;; size=8 bbWeight=0.00 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 8.00, instruction count 10, allocated bytes for code 40 (MethodHash=560a318a) for method System.Text.DecoderReplacementFallbackBuffer:get_Remaining():int:this (Tier1)
+; Total bytes of code 28, prolog size 8, PerfScore 7.50, instruction count 7, allocated bytes for code 28 (MethodHash=560a318a) for method System.Text.DecoderReplacementFallbackBuffer:get_Remaining():int:this (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

-44 (-23.40%) : 444867.dasm - MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)

@@ -9,7 +9,7 @@ ; 0 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 14, 4.08) byref -> x19 this single-def
+; V00 this [V00,T00] ( 5, 4.01) byref -> x19 this single-def
; V01 arg1 [V01,T03] ( 3, 2.01) ref -> x0 class-hnd single-def <MS.Internal.Xml.Cache.XPathNodeInfoTable> ; V02 arg2 [V02,T01] ( 4, 3.01) ref -> x6 class-hnd single-def <MS.Internal.Xml.Cache.XPathNode[]> ; V03 arg3 [V03,T02] ( 3, 3 ) int -> x3 single-def @@ -32,6 +32,7 @@ ;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom> ;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom> ;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom>
+; V23 cse0 [V23,T04] ( 11, 2.07) ref -> x7 "CSE - unknown"
; ; Lcl frame size = 24 @@ -49,53 +50,38 @@ G_M1111_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=28 bbWeight=1 PerfScore 4.50 G_M1111_IG02: ; bbWeight=1, gcrefRegs=0041 {x0 x6}, byrefRegs=80000 {x19}, byref, isz strh w3, [x19, #0x14]
- ldr x1, [x19]
+ ldr x7, [x19] + ; gcrRegs +[x7] + ldr x1, [x7, #0x30]
; gcrRegs +[x1]
- ldr x1, [x1, #0x30]
cmp x6, x1 bne G_M1111_IG04 ;; size=20 bbWeight=1 PerfScore 8.50 G_M1111_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x0-x1 x6]
+ ; gcrRegs -[x0-x1 x6-x7]
; byrRegs -[x19] ldr x19, [sp, #0x28] ldp fp, lr, [sp, #0x18] add sp, sp, #48 ret lr ;; size=16 bbWeight=1 PerfScore 4.50
-G_M1111_IG04: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0041 {x0 x6}, byrefRegs=80000 {x19}, gcvars, byref - ; gcrRegs +[x0 x6]
+G_M1111_IG04: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=00C1 {x0 x6 x7}, byrefRegs=80000 {x19}, gcvars, byref + ; gcrRegs +[x0 x6-x7]
; byrRegs +[x19]
- ldr x1, [x19]
+ ldr x1, [x7, #0x40]
; gcrRegs +[x1]
- ldr x1, [x1, #0x40]
str x1, [sp] // [V04 OutArgs]
- ldr x1, [x19] - ldr w1, [x1, #0x58]
+ ldr w1, [x7, #0x58]
; gcrRegs -[x1] str w1, [sp, #0x08] // [V04 OutArgs+0x08]
- ldr x1, [x19] - ; gcrRegs +[x1] - ldr w1, [x1, #0x5C] - ; gcrRegs -[x1]
+ ldr w1, [x7, #0x5C]
str w1, [sp, #0x10] // [V04 OutArgs+0x10]
- ldr x1, [x19] - ; gcrRegs +[x1] - ldr x1, [x1, #0x08] - ldr x2, [x19] - ; gcrRegs +[x2] - ldr x2, [x2, #0x10] - ldr x3, [x19] - ; gcrRegs +[x3] - ldr x3, [x3, #0x18] - ldr x4, [x19] - ; gcrRegs +[x4] - ldr x4, [x4, #0x20] - ldr x5, [x19]
+ ldp x1, x2, [x7, #0x08] + ; gcrRegs +[x1-x2] + ldp x3, x4, [x7, #0x18] + ; gcrRegs +[x3-x4] + ldr x5, [x7, #0x28]
; gcrRegs +[x5]
- ldr x5, [x5, #0x28] - ldr x7, [x19] - ; gcrRegs +[x7]
ldr x7, [x7, #0x38] movz x8, #0xD1FFAB1E // code for MS.Internal.Xml.Cache.XPathNodeInfoTable:Create(System.String,System.String,System.String,System.String,MS.Internal.Xml.Cache.XPathNode[],MS.Internal.Xml.Cache.XPathNode[],MS.Internal.Xml.Cache.XPathNode[],System.Xml.XPath.XPathDocument,int,int):MS.Internal.Xml.Cache.XPathNodeInfoAtom:this movk x8, #0xD1FFAB1E LSL #16 @@ -112,9 +98,9 @@ G_M1111_IG04: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0041 ; gcrRegs -[x0 x15] ; byrRegs -[x14 x19] b G_M1111_IG03
- ;; size=124 bbWeight=0.01 PerfScore 0.56
+ ;; size=80 bbWeight=0.01 PerfScore 0.31
-; Total bytes of code 188, prolog size 16, PerfScore 18.06, instruction count 47, allocated bytes for code 188 (MethodHash=c416fba8) for method MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
+; Total bytes of code 144, prolog size 16, PerfScore 17.81, instruction count 36, allocated bytes for code 144 (MethodHash=c416fba8) for method MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
; ============================================================ Unwind Info: @@ -125,7 +111,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+28.57%) : 92615.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsTypeDeclaration(ushort):ubyte (Tier1)

@@ -8,8 +8,9 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 10320 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 5, 5 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 4, 2.00) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -17,39 +18,54 @@ G_M45365_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M45365_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movn w1, #0xD1FFAB1E - add w1, w1, w0, UXTH - uxth w2, w0 - mov w3, #0xD1FFAB1E
+G_M45365_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
uxth w0, w0
- mov w4, #0xD1FFAB1E
+ movn w1, #0xD1FFAB1E + add w1, w0, w1
cmp w1, #4
- ccmp w2, w3, z, hi - ccmp w0, w4, z, ne - cinc w0, wzr, eq - ;; size=40 bbWeight=1 PerfScore 5.50 -G_M45365_IG03: ; bbWeight=1, epilog, nogc, extend
+ bhi G_M45365_IG05 + ;; size=20 bbWeight=1 PerfScore 3.00 +G_M45365_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, #1 + ;; size=4 bbWeight=1 PerfScore 0.50 +G_M45365_IG04: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
+G_M45365_IG05: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + mov w1, #0xD1FFAB1E + mov w2, #0xD1FFAB1E + cmp w0, w1 + ccmp w0, w2, z, ne + beq G_M45365_IG03 + ;; size=20 bbWeight=0.00 PerfScore 0.00 +G_M45365_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M45365_IG07: ; bbWeight=0, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 56, prolog size 8, PerfScore 9.00, instruction count 14, allocated bytes for code 56 (MethodHash=9b7f4eca) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsTypeDeclaration(ushort):ubyte (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 7.00, instruction count 18, allocated bytes for code 72 (MethodHash=9b7f4eca) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsTypeDeclaration(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 1
+ Epilog Count : 2
E bit : 0 X bit : 0 Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ 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) Epilog Start Index : 1 (0x01)
+ ---- Scope 1 + Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) + Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

+20 (+45.45%) : 52997.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)

@@ -8,8 +8,9 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 41160 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.10) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -17,36 +18,52 @@ G_M7274_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movn w1, #0xD1FFAB1E - add w1, w1, w0, UXTH
+G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
uxth w0, w0
- mov w2, #0xD1FFAB1E
+ movn w1, #0xD1FFAB1E + add w1, w0, w1
cmp w1, #2
- ccmp w0, w2, z, hi - cinc w0, wzr, eq - ;; size=28 bbWeight=1 PerfScore 4.00 -G_M7274_IG03: ; bbWeight=1, epilog, nogc, extend
+ bhi G_M7274_IG05 + ;; size=20 bbWeight=1 PerfScore 3.00 +G_M7274_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, #1 + ;; size=4 bbWeight=1 PerfScore 0.50 +G_M7274_IG04: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
+G_M7274_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + mov w1, #0xD1FFAB1E + cmp w0, w1 + beq G_M7274_IG03 + ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M7274_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M7274_IG07: ; bbWeight=0, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 7.50, instruction count 11, allocated bytes for code 44 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 7.20, instruction count 16, allocated bytes for code 64 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 1
+ Epilog Count : 2
E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
+ ---- Scope 1 + Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) + Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

+20 (+45.45%) : 89131.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)

@@ -8,8 +8,9 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 105712 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.05) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -17,36 +18,52 @@ G_M7274_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movn w1, #0xD1FFAB1E - add w1, w1, w0, UXTH
+G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
uxth w0, w0
- mov w2, #0xD1FFAB1E
+ movn w1, #0xD1FFAB1E + add w1, w0, w1
cmp w1, #2
- ccmp w0, w2, z, hi - cinc w0, wzr, eq - ;; size=28 bbWeight=1 PerfScore 4.00 -G_M7274_IG03: ; bbWeight=1, epilog, nogc, extend
+ bhi G_M7274_IG05 + ;; size=20 bbWeight=1 PerfScore 3.00 +G_M7274_IG03: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, #1 + ;; size=4 bbWeight=1.00 PerfScore 0.50 +G_M7274_IG04: ; bbWeight=1.00, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr
- ;; size=8 bbWeight=1 PerfScore 2.00
+ ;; size=8 bbWeight=1.00 PerfScore 2.00 +G_M7274_IG05: ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + mov w1, #0xD1FFAB1E + cmp w0, w1 + beq G_M7274_IG03 + ;; size=12 bbWeight=0.05 PerfScore 0.10 +G_M7274_IG06: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0.00 PerfScore 0.00 +G_M7274_IG07: ; bbWeight=0.00, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 7.50, instruction count 11, allocated bytes for code 44 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 7.10, instruction count 16, allocated bytes for code 64 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 1
+ Epilog Count : 2
E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
+ ---- Scope 1 + Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) + Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

librariestestsnotieredcompilation.run.linux.arm64.Release.mch

-40 (-23.81%) : 11184.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)

@@ -9,19 +9,16 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M62751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -34,19 +31,11 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- str x14, [x0, #0x18] - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - add x14, x19, #0xD1FFAB1E - str x14, [x0, #0x20] - movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x14, x20
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF @@ -63,34 +52,36 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- stp x14, x19, [x0, #0x18] - add x14, x20, #8
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=144 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M62751_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF6CC9D7A0h, 0000FFFF6FEC29D0h +RWD16 dq 0000FFFF761DB330h, 0000FFFF6FEC2790h
-; Total bytes of code 168, prolog size 12, PerfScore 28.00, instruction count 42, allocated bytes for code 168 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 149725.dasm - System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M48371_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M48371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M48371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M48371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M48371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M48371_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF4586D7A0h, 0000FFFF495705D0h +RWD16 dq 0000FFFF4586D7A0h, 0000FFFF495705E8h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=f5cf430c) for method System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=f5cf430c) for method System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 151998.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M57856_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M57856_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF612CD7A0h, 0000FFFF653A0D98h +RWD16 dq 0000FFFF612CD7A0h, 0000FFFF653A0DB0h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+28 (+30.43%) : 112988.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)

@@ -10,55 +10,61 @@ ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Object>
-; V02 cse0 [V02,T00] ( 5, 5 ) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M9155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M9155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, #91 movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 str w0, [x1]
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - stp xzr, xzr, [x19] - str xzr, [x19, #0x10]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- add x14, x19, #24
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=68 bbWeight=1 PerfScore 11.00
+ ;; size=104 bbWeight=1 PerfScore 16.00
G_M9155_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.50, instruction count 23, allocated bytes for code 92 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 19.50, instruction count 30, allocated bytes for code 120 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -66,10 +72,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+48 (+30.77%) : 35267.dasm - Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)

@@ -10,75 +10,85 @@ ; ; V00 this [V00,T00] ( 6, 6 ) ref -> x19 this class-hnd single-def <Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) long -> x20 "CSE - aggressive" -; V03 cse1 [V03,T02] ( 5, 5 ) long -> x21 "CSE - aggressive"
; ; Lcl frame size = 8 G_M54721_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M54721_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #33 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x21, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - ldr x15, [x21]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #8 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #34 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x21, #0x10]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #16 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #35 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x21, #0x20]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #48 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #32 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x21, #0x30]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #56 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15 x19] ; byrRegs -[x14]
- ;; size=120 bbWeight=1 PerfScore 29.00
+ ;; size=176 bbWeight=1 PerfScore 36.00
G_M54721_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 156, prolog size 16, PerfScore 38.00, instruction count 39, allocated bytes for code 156 (MethodHash=47732a3e) for method Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)
+; Total bytes of code 204, prolog size 12, PerfScore 43.00, instruction count 51, allocated bytes for code 204 (MethodHash=47732a3e) for method Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -89,7 +99,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ 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) @@ -97,9 +107,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

+36 (+34.62%) : 40062.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,65 +9,72 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 2, 1 ) int -> x0 -; V02 cse0 [V02,T00] ( 6, 4.50) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T02] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> x0
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr w0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
cbnz w0, G_M24568_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M24568_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub x0, x19, #216 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M24568_IG07 - ;; size=24 bbWeight=0.50 PerfScore 3.00
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M24568_IG07 + ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #-0x0F]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
mov w1, #1 cmp w0, #0 cinc w0, w1, eq
- str w0, [x19] - ;; size=20 bbWeight=0.50 PerfScore 2.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M24568_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M24568_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M24568_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #4 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG04
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 12, PerfScore 20.75, instruction count 26, allocated bytes for code 104 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 140, prolog size 8, PerfScore 20.50, instruction count 35, allocated bytes for code 140 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ 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) @@ -75,10 +82,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

realworld.run.linux.arm64.checked.mch

-36 (-21.95%) : 27536.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M38922_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - sub x14, x21, #72 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M38922_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000FFFF413FD218h, 0000FFFF42AC1FB0h +RWD16 dq 0000FFFF413FD218h, 0000FFFF42AC1F68h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=9f2a67f5) for method Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=9f2a67f5) for method Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-12 (-14.29%) : 14038.dasm - Microsoft.ML.Data.RowCursorUtils+<>cDisplayClass4_0`2[uint,ulong]:b0(byref):this (FullOpts)

@@ -7,31 +7,27 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]>
+; V00 this [V00,T00] ( 6, 6 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]>
; V01 arg1 [V01,T03] ( 3, 3 ) byref -> x20 single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T04] ( 3, 3 ) byref -> x21 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" -; V05 rat1 [V05,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
+; V03 rat0 [V03,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" +; V04 rat1 [V04,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M39893_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]! + stp x19, x20, [sp, #0x10]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] mov x20, x1 ; byrRegs +[x20]
- ;; size=24 bbWeight=1 PerfScore 4.50
+ ;; size=20 bbWeight=1 PerfScore 3.50
G_M39893_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref ldr x2, [x19, #0x08] ; gcrRegs +[x2]
- add x21, x19, #24 - ; byrRegs +[x21] - mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] ldr x0, [x2, #0x08] ; gcrRegs +[x0] @@ -42,7 +38,7 @@ G_M39893_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; byrRegs -[x1] ldr x3, [x19, #0x10] ; gcrRegs +[x3]
- mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] mov x2, x20 ; byrRegs +[x2] @@ -50,15 +46,14 @@ G_M39893_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; gcrRegs +[x0] ldr x3, [x3, #0x18] ; gcrRegs -[x3]
- ;; size=44 bbWeight=1 PerfScore 21.00
+ ;; size=40 bbWeight=1 PerfScore 20.50
G_M39893_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
br x3
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 16, PerfScore 30.50, instruction count 21, allocated bytes for code 84 (MethodHash=04d9642a) for method Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
+; Total bytes of code 72, prolog size 12, PerfScore 27.00, instruction count 18, allocated bytes for code 72 (MethodHash=04d9642a) for method Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
; ============================================================ Unwind Info: @@ -69,7 +64,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ 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) @@ -77,9 +72,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

-12 (-14.29%) : 13459.dasm - Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>cDisplayClass18_02[Microsoft.ML.Data.VBuffer1[float],float]:b0(byref):this (FullOpts)

@@ -7,31 +7,27 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]>
+; V00 this [V00,T00] ( 6, 6 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]>
; V01 arg1 [V01,T03] ( 3, 3 ) byref -> x20 single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T04] ( 3, 3 ) byref -> x21 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" -; V05 rat1 [V05,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
+; V03 rat0 [V03,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" +; V04 rat1 [V04,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M41554_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]! + stp x19, x20, [sp, #0x10]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] mov x20, x1 ; byrRegs +[x20]
- ;; size=24 bbWeight=1 PerfScore 4.50
+ ;; size=20 bbWeight=1 PerfScore 3.50
G_M41554_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref ldr x2, [x19, #0x08] ; gcrRegs +[x2]
- add x21, x19, #24 - ; byrRegs +[x21] - mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] ldr x0, [x2, #0x08] ; gcrRegs +[x0] @@ -42,7 +38,7 @@ G_M41554_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; byrRegs -[x1] ldr x3, [x19, #0x10] ; gcrRegs +[x3]
- mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] mov x2, x20 ; byrRegs +[x2] @@ -50,15 +46,14 @@ G_M41554_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; gcrRegs +[x0] ldr x3, [x3, #0x18] ; gcrRegs -[x3]
- ;; size=44 bbWeight=1 PerfScore 21.00
+ ;; size=40 bbWeight=1 PerfScore 20.50
G_M41554_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
br x3
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 16, PerfScore 30.50, instruction count 21, allocated bytes for code 84 (MethodHash=aeed5dad) for method Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]:<GetValueGetter>b__0(byref):this (FullOpts)
+; Total bytes of code 72, prolog size 12, PerfScore 27.00, instruction count 18, allocated bytes for code 72 (MethodHash=aeed5dad) for method Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]:<GetValueGetter>b__0(byref):this (FullOpts)
; ============================================================ Unwind Info: @@ -69,7 +64,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ 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) @@ -77,9 +72,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

+32 (+25.00%) : 11338.dasm - BenchmarkDotNet.Characteristics.CharacteristicPresenter:.cctor() (FullOpts)

@@ -13,74 +13,80 @@ ;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <BenchmarkDotNet.Characteristics.CharacteristicPresenter+FolderCharacteristicPresenter> ;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <BenchmarkDotNet.Characteristics.CharacteristicPresenter+DefaultCharacteristicPresenter> ;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <BenchmarkDotNet.Characteristics.CharacteristicPresenter+SourceCodeCharacteristicPresenter>
-; V05 cse0 [V05,T00] ( 5, 5 ) long -> x19 "CSE - aggressive" -; V06 cse1 [V06,T01] ( 5, 5 ) long -> x20 "CSE - aggressive"
; ; Lcl frame size = 0 G_M55422_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M55422_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x15, x0 - ; gcrRegs +[x15] - mov x14, x20 - bl CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[x0 x15] - add x0, x19, #0xD1FFAB1E - bl CORINFO_HELP_NEWSFAST - ; gcrRegs +[x0] - add x14, x20, #8
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- add x14, x20, #16
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- add x0, x19, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- add x14, x20, #24
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=104 bbWeight=1 PerfScore 17.00
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + bl CORINFO_HELP_NEWSFAST + ; gcrRegs +[x0] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + mov x15, x0 + ; gcrRegs +[x15] + bl CORINFO_HELP_ASSIGN_REF + ; gcrRegs -[x0 x15] + ;; size=144 bbWeight=1 PerfScore 22.00
G_M55422_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 128, prolog size 12, PerfScore 22.50, instruction count 32, allocated bytes for code 128 (MethodHash=e1222781) for method BenchmarkDotNet.Characteristics.CharacteristicPresenter:.cctor() (FullOpts)
+; Total bytes of code 160, prolog size 8, PerfScore 25.50, instruction count 40, allocated bytes for code 160 (MethodHash=e1222781) for method BenchmarkDotNet.Characteristics.CharacteristicPresenter:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -88,10 +94,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+40 (+25.64%) : 11243.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)

@@ -9,16 +9,14 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 2 ) int -> x0 -; V02 cse0 [V02,T00] ( 6, 5.50) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 2 ) int -> x0
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M15866_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M15866_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -32,10 +30,10 @@ G_M15866_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, cmp x0, #0 cset x0, ne ; gcrRegs -[x0]
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - strb w0, [x19]
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + strb w0, [x1]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -48,40 +46,51 @@ G_M15866_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, cmp x0, #0 cset x0, ne ; gcrRegs -[x0]
- strb w0, [x19, #0x01] - ldrb w0, [x19]
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + strb w0, [x1] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
cbz w0, G_M15866_IG04
- ;; size=108 bbWeight=1 PerfScore 23.50
+ ;; size=132 bbWeight=1 PerfScore 26.50
G_M15866_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #0x01]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
cmp w0, #0 cset x0, eq b G_M15866_IG05
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=28 bbWeight=0.50 PerfScore 3.25
G_M15866_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, wzr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M15866_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- strb w0, [x19, #0x02] - ;; size=4 bbWeight=1 PerfScore 1.00
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + strb w0, [x1] + ;; size=16 bbWeight=1 PerfScore 2.50
G_M15866_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 156, prolog size 12, PerfScore 33.75, instruction count 39, allocated bytes for code 156 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
+; Total bytes of code 196, prolog size 8, PerfScore 36.00, instruction count 49, allocated bytes for code 196 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -89,10 +98,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+37.50%) : 32490.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)

@@ -9,22 +9,21 @@ ; ; V00 arg0 [V00,T00] ( 4, 3 ) ref -> x19 class-hnd single-def <System.Action> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 4.50) long -> x20 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M64219_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] ;; size=16 bbWeight=1 PerfScore 3.00 G_M64219_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - ldrb w0, [x20]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
cbnz w0, G_M64219_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 G_M64219_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref @@ -33,12 +32,18 @@ G_M64219_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0
- strb w0, [x20, #0x01] - ;; size=24 bbWeight=0.50 PerfScore 3.25
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + strb w0, [x1] + ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M64219_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ldrb w0, [x20, #0x01]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
cbz w0, G_M64219_IG06
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x08] ; gcrRegs +[x0] @@ -47,15 +52,18 @@ G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcrRegs -[x0 x19] ;; size=12 bbWeight=0.50 PerfScore 3.50 G_M64219_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x20, #0x01] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M64219_IG07: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 96, prolog size 12, PerfScore 25.25, instruction count 24, allocated bytes for code 96 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 30.00, instruction count 33, allocated bytes for code 132 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -66,7 +74,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -74,7 +82,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

smoke_tests.nativeaot.linux.arm64.checked.mch

-8 (-14.29%) : 15657.dasm - System.Func1[System.ValueTuple2[int,System.Canon]]:InvokeOpenStaticThunk():System.ValueTuple`2[int,System.Canon]:this (FullOpts)

@@ -7,46 +7,45 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 3.60) ref -> x1 this class-hnd exact single-def <System.Func`1[System.ValueTuple`2[int,System.__Canon]]>
+; V00 this [V00,T00] ( 5, 3.50) ref -> x0 this class-hnd exact single-def <System.Func`1[System.ValueTuple`2[int,System.__Canon]]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "calli" <System.ValueTuple`2[int,System.__Canon]> ;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref "field V02.Item2 (fldOffset=0x0)" P-DEP ;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "field V02.Item1 (fldOffset=0x8)" P-DEP
+; V05 cse0 [V05,T01] ( 5, 1.10) long -> x1 multi-def "CSE - unknown"
; ; Lcl frame size = 0 G_M34933_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x10]! mov fp, sp
- mov x1, x0 - ; gcrRegs +[x1] - ;; size=12 bbWeight=1 PerfScore 2.00 -G_M34933_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz - ldr w0, [x1, #0x18] - tbnz w0, #1, G_M34933_IG05
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M34933_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x0] + ldr w1, [x0, #0x18] + tbnz w1, #1, G_M34933_IG05
;; size=8 bbWeight=1 PerfScore 4.00
-G_M34933_IG03: ; bbWeight=0.40, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref - ldr x0, [x1, #0x18]
+G_M34933_IG03: ; bbWeight=0.40, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ldr x1, [x0, #0x18]
;; size=4 bbWeight=0.40 PerfScore 1.20 G_M34933_IG04: ; bbWeight=0.40, epilog, nogc, extend ldp fp, lr, [sp], #0x10
- br x0
+ br x1
; gcr arg pop 0 ;; size=8 bbWeight=0.40 PerfScore 0.80
-G_M34933_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref - ldr x0, [x1, #0x18] - ldr x0, [x0, #0x06] - ldr x1, [x1, #0x18] - ; gcrRegs -[x1]
+G_M34933_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref + ldr x1, [x0, #0x18] + ldr x0, [x1, #0x06] + ; gcrRegs -[x0]
ldr x1, [x1, #-0x02]
- ;; size=16 bbWeight=0.10 PerfScore 1.20
+ ;; size=12 bbWeight=0.10 PerfScore 0.90
G_M34933_IG06: ; bbWeight=0.10, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x1 ; gcr arg pop 0 ;; size=8 bbWeight=0.10 PerfScore 0.20
-; Total bytes of code 56, prolog size 12, PerfScore 9.40, instruction count 14, allocated bytes for code 56 (MethodHash=0c0d778a) for method System.Func`1[System.ValueTuple`2[int,System.__Canon]]:InvokeOpenStaticThunk():System.ValueTuple`2[int,System.__Canon]:this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 8.60, instruction count 12, allocated bytes for code 48 (MethodHash=0c0d778a) for method System.Func`1[System.ValueTuple`2[int,System.__Canon]]:InvokeOpenStaticThunk():System.ValueTuple`2[int,System.__Canon]:this (FullOpts)
; ============================================================ Cfi Info:

-8 (-14.29%) : 534.dasm - PInvokeTests.Program+Callback2:InvokeOpenStaticThunk():int:this (FullOpts)

@@ -7,44 +7,43 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 3.60) ref -> x1 this class-hnd exact single-def <PInvokeTests.Program+Callback2>
+; V00 this [V00,T00] ( 5, 3.50) ref -> x0 this class-hnd exact single-def <PInvokeTests.Program+Callback2>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) int -> zero-ref "calli"
+; V03 cse0 [V03,T01] ( 5, 1.10) long -> x1 multi-def "CSE - unknown"
; ; Lcl frame size = 0 G_M5387_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x10]! mov fp, sp
- mov x1, x0 - ; gcrRegs +[x1] - ;; size=12 bbWeight=1 PerfScore 2.00 -G_M5387_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz - ldr w0, [x1, #0x18] - tbnz w0, #1, G_M5387_IG05
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M5387_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x0] + ldr w1, [x0, #0x18] + tbnz w1, #1, G_M5387_IG05
;; size=8 bbWeight=1 PerfScore 4.00
-G_M5387_IG03: ; bbWeight=0.40, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref - ldr x0, [x1, #0x18]
+G_M5387_IG03: ; bbWeight=0.40, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ldr x1, [x0, #0x18]
;; size=4 bbWeight=0.40 PerfScore 1.20 G_M5387_IG04: ; bbWeight=0.40, epilog, nogc, extend ldp fp, lr, [sp], #0x10
- br x0
+ br x1
; gcr arg pop 0 ;; size=8 bbWeight=0.40 PerfScore 0.80
-G_M5387_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref - ldr x0, [x1, #0x18] - ldr x0, [x0, #0x06] - ldr x1, [x1, #0x18] - ; gcrRegs -[x1]
+G_M5387_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref + ldr x1, [x0, #0x18] + ldr x0, [x1, #0x06] + ; gcrRegs -[x0]
ldr x1, [x1, #-0x02]
- ;; size=16 bbWeight=0.10 PerfScore 1.20
+ ;; size=12 bbWeight=0.10 PerfScore 0.90
G_M5387_IG06: ; bbWeight=0.10, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x1 ; gcr arg pop 0 ;; size=8 bbWeight=0.10 PerfScore 0.20
-; Total bytes of code 56, prolog size 12, PerfScore 9.40, instruction count 14, allocated bytes for code 56 (MethodHash=58cceaf4) for method PInvokeTests.Program+Callback2:InvokeOpenStaticThunk():int:this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 8.60, instruction count 12, allocated bytes for code 48 (MethodHash=58cceaf4) for method PInvokeTests.Program+Callback2:InvokeOpenStaticThunk():int:this (FullOpts)
; ============================================================ Cfi Info:

-8 (-14.29%) : 539.dasm - System.Action:InvokeOpenStaticThunk():this (FullOpts)

@@ -7,43 +7,42 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 3.60) ref -> x1 this class-hnd exact single-def <System.Action>
+; V00 this [V00,T00] ( 5, 3.50) ref -> x0 this class-hnd exact single-def <System.Action>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 5, 1.10) long -> x1 multi-def "CSE - unknown"
; ; Lcl frame size = 0 G_M62520_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x10]! mov fp, sp
- mov x1, x0 - ; gcrRegs +[x1] - ;; size=12 bbWeight=1 PerfScore 2.00 -G_M62520_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz - ldr w0, [x1, #0x18] - tbnz w0, #1, G_M62520_IG05
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62520_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x0] + ldr w1, [x0, #0x18] + tbnz w1, #1, G_M62520_IG05
;; size=8 bbWeight=1 PerfScore 4.00
-G_M62520_IG03: ; bbWeight=0.40, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref - ldr x0, [x1, #0x18]
+G_M62520_IG03: ; bbWeight=0.40, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ldr x1, [x0, #0x18]
;; size=4 bbWeight=0.40 PerfScore 1.20 G_M62520_IG04: ; bbWeight=0.40, epilog, nogc, extend ldp fp, lr, [sp], #0x10
- br x0
+ br x1
; gcr arg pop 0 ;; size=8 bbWeight=0.40 PerfScore 0.80
-G_M62520_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref - ldr x0, [x1, #0x18] - ldr x0, [x0, #0x06] - ldr x1, [x1, #0x18] - ; gcrRegs -[x1]
+G_M62520_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref + ldr x1, [x0, #0x18] + ldr x0, [x1, #0x06] + ; gcrRegs -[x0]
ldr x1, [x1, #-0x02]
- ;; size=16 bbWeight=0.10 PerfScore 1.20
+ ;; size=12 bbWeight=0.10 PerfScore 0.90
G_M62520_IG06: ; bbWeight=0.10, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x1 ; gcr arg pop 0 ;; size=8 bbWeight=0.10 PerfScore 0.20
-; Total bytes of code 56, prolog size 12, PerfScore 9.40, instruction count 14, allocated bytes for code 56 (MethodHash=f9b70bc7) for method System.Action:InvokeOpenStaticThunk():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 8.60, instruction count 12, allocated bytes for code 48 (MethodHash=f9b70bc7) for method System.Action:InvokeOpenStaticThunk():this (FullOpts)
; ============================================================ Cfi Info:

+12 (+14.29%) : 3695.dasm - System.Exception:CaptureDispatchState():System.Exception+DispatchState:this (FullOpts)

@@ -7,20 +7,22 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Exception> -; V01 loc0 [V01,T00] ( 7, 5 ) ref -> x19 class-hnd <long[]> -; V02 loc1 [V02,T02] ( 3, 1.50) ref -> x20 class-hnd exact single-def <long[]>
+; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Exception> +; V01 loc0 [V01,T01] ( 6, 4.50) ref -> x19 class-hnd <long[]> +; V02 loc1 [V02,T02] ( 3, 1.50) ref -> x21 class-hnd exact single-def <long[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Exception+DispatchState> ;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.StackTrace (fldOffset=0x0)" P-INDEP
+; V06 cse0 [V06,T03] ( 3, 1.50) int -> x20 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M19624_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x30]! + stp x19, x20, [sp, #0x18] + str x21, [sp, #0x28]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M19624_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x0] ldr x19, [x0, #0x40] @@ -29,44 +31,47 @@ G_M19624_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=1 PerfScore 4.00 G_M19624_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr w1, [x19, #0x08]
+ ldr w20, [x19, #0x08] + mov w1, w20
adrp x0, [HIGH RELOC #0xD1FFAB1E] // long[] add x0, x0, [LOW RELOC #0xD1FFAB1E] bl CORINFO_HELP_NEWARR_1_VC ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20] - ldr w4, [x19, #0x08]
+ mov x21, x0 + ; gcrRegs +[x21] + mov w4, w20
mov x0, x19
- mov x2, x20
+ mov x2, x21
; gcrRegs +[x2] mov w1, wzr mov w3, wzr bl <unknown method> ; gcrRegs -[x0 x2 x19]
- mov x19, x20
+ mov x19, x21
; gcrRegs +[x19]
- ;; size=48 bbWeight=0.50 PerfScore 6.00
+ ;; size=52 bbWeight=0.50 PerfScore 5.00
G_M19624_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x20]
+ ; gcrRegs -[x21]
mov x0, x19 ; gcrRegs +[x0] ;; size=4 bbWeight=1 PerfScore 0.50 G_M19624_IG05: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 5.00
-; Total bytes of code 84, prolog size 12, PerfScore 16.00, instruction count 21, allocated bytes for code 84 (MethodHash=6b8bb357) for method System.Exception:CaptureDispatchState():System.Exception+DispatchState:this (FullOpts)
+; Total bytes of code 96, prolog size 16, PerfScore 18.00, instruction count 24, allocated bytes for code 96 (MethodHash=6b8bb357) for method System.Exception:CaptureDispatchState():System.Exception+DispatchState:this (FullOpts)
; ============================================================ Cfi Info: >> Start offset : 0x000000 >> End offset : 0xd1ffab1e
- CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x20
+ CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x30
CodeOffset: 0x04 Op: RelOffset DwarfReg:0x1d Offset:0x0 CodeOffset: 0x04 Op: RelOffset DwarfReg:0x1e Offset:0x8
- CodeOffset: 0x08 Op: RelOffset DwarfReg:0x13 Offset:0x10 - CodeOffset: 0x08 Op: RelOffset DwarfReg:0x14 Offset:0x18 - CodeOffset: 0x0C Op: DefCfaRegister DwarfReg:0x1D
+ CodeOffset: 0x08 Op: RelOffset DwarfReg:0x13 Offset:0x18 + CodeOffset: 0x08 Op: RelOffset DwarfReg:0x14 Offset:0x20 + CodeOffset: 0x0C Op: RelOffset DwarfReg:0x15 Offset:0x28 + CodeOffset: 0x10 Op: DefCfaRegister DwarfReg:0x1D

+12 (+15.00%) : 2556.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)

@@ -10,59 +10,64 @@ ; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd exact single-def <Internal.TypeSystem.MethodForInstantiatedType> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 8) zero-ref "guarded devirt return temp" <Internal.TypeSystem.Instantiation>
-; V03 tmp2 [V03,T00] ( 6, 6.33) ref -> x0 single-def "guarded devirt arg temp"
+; V03 tmp2 [V03,T00] ( 5, 5.67) ref -> x0 single-def "guarded devirt arg temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.NoMetadata.RuntimeMethodDesc> ;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.InstantiatedMethod> ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.MethodForInstantiatedType>
-; V07 tmp6 [V07,T02] ( 2, 1 ) ref -> x0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP
+; V07 tmp6 [V07,T03] ( 2, 1 ) ref -> x0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP +; V08 cse0 [V08,T02] ( 3, 2.33) long -> x19 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M20372_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M20372_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x0] ldr x0, [x0, #0x20]
- ldr x1, [x0] - adrp x2, [HIGH RELOC #0xD1FFAB1E] - add x2, x2, [LOW RELOC #0xD1FFAB1E] - cmp x1, x2
+ ldr x19, [x0] + adrp x1, [HIGH RELOC #0xD1FFAB1E] + add x1, x1, [LOW RELOC #0xD1FFAB1E] + cmp x19, x1
bne G_M20372_IG04 ;; size=24 bbWeight=1 PerfScore 8.50 G_M20372_IG03: ; bbWeight=0.17, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
b Internal.TypeSystem.NoMetadata.RuntimeMethodDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=8 bbWeight=0.17 PerfScore 0.34
+ ;; size=12 bbWeight=0.17 PerfScore 0.68
G_M20372_IG04: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- ldr x1, [x0] - adrp x2, [HIGH RELOC #0xD1FFAB1E] - add x2, x2, [LOW RELOC #0xD1FFAB1E] - cmp x1, x2
+ adrp x1, [HIGH RELOC #0xD1FFAB1E] + add x1, x1, [LOW RELOC #0xD1FFAB1E] + cmp x19, x1
bne G_M20372_IG07
- ;; size=20 bbWeight=0.33 PerfScore 1.82
+ ;; size=16 bbWeight=0.33 PerfScore 0.82
G_M20372_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref ldr x0, [x0, #0x50] ;; size=4 bbWeight=0.50 PerfScore 1.50 G_M20372_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M20372_IG07: ; bbWeight=0.17, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
b Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=8 bbWeight=0.17 PerfScore 0.33
+ ;; size=12 bbWeight=0.17 PerfScore 0.66
-; Total bytes of code 80, prolog size 8, PerfScore 14.98, instruction count 20, allocated bytes for code 80 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 92, prolog size 12, PerfScore 16.66, instruction count 23, allocated bytes for code 92 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================ Cfi Info: >> Start offset : 0x000000 >> End offset : 0xd1ffab1e
- CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x10
+ CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x20
CodeOffset: 0x04 Op: RelOffset DwarfReg:0x1d Offset:0x0 CodeOffset: 0x04 Op: RelOffset DwarfReg:0x1e Offset:0x8
- CodeOffset: 0x08 Op: DefCfaRegister DwarfReg:0x1D
+ CodeOffset: 0x08 Op: RelOffset DwarfReg:0x13 Offset:0x18 + CodeOffset: 0x0C Op: DefCfaRegister DwarfReg:0x1D

+16 (+17.39%) : 4906.dasm - System.Threading.ManualResetEventSlim:get_WaitHandle():System.Threading.WaitHandle:this (FullOpts)

@@ -7,11 +7,11 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 4.50) ref -> x0 this class-hnd single-def <System.Threading.ManualResetEventSlim>
+; V00 this [V00,T00] ( 8, 6 ) ref -> x19 this class-hnd single-def <System.Threading.ManualResetEventSlim>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V03 tmp2 [V03 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V04 cse0 [V04,T01] ( 4, 3.50) byref -> x19 "CSE - aggressive"
+; V04 cse0 [V04,T01] ( 3, 1.50) ref -> x1 "CSE - unknown"
; ; Lcl frame size = 8 @@ -19,54 +19,63 @@ G_M61270_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x20]! str x19, [sp, #0x18] mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M61270_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M61270_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + add x0, x19, #24 + ; byrRegs +[x0] + ldar w0, [x0] + ; byrRegs -[x0] + tbnz w0, #30, G_M61270_IG06 + add x0, x19, #16 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
- add x1, x0, #24 - ; byrRegs +[x1] - ldar w1, [x1] - ; byrRegs -[x1] - tbnz w1, #30, G_M61270_IG06 - add x19, x0, #16 - ; byrRegs +[x19] - ldar x1, [x19] - ; gcrRegs +[x1] - cbnz x1, G_M61270_IG04
+ ; byrRegs -[x0] + cbnz x0, G_M61270_IG04
;; size=24 bbWeight=1 PerfScore 9.00
-G_M61270_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz - ; gcrRegs -[x1]
+G_M61270_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] + mov x0, x19 + ; gcrRegs +[x0]
bl <unknown method> ; gcrRegs -[x0]
- ldar x0, [x19]
+ add x0, x19, #16 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
cbnz x0, G_M61270_IG04
- adrp x0, [HIGH RELOC #0xD1FFAB1E] - ; gcrRegs -[x0] - add x0, x0, [LOW RELOC #0xD1FFAB1E] - ; gcrRegs +[x0]
adrp x1, [HIGH RELOC #0xD1FFAB1E] add x1, x1, [LOW RELOC #0xD1FFAB1E] ; gcrRegs +[x1]
+ mov x0, x1
bl <unknown method> ; gcrRegs -[x0-x1]
- ;; size=32 bbWeight=0.50 PerfScore 4.00 -G_M61270_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldar x0, [x19]
+ ;; size=36 bbWeight=0.50 PerfScore 4.25 +G_M61270_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + add x0, x19, #16 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ; byrRegs -[x0] + ;; size=8 bbWeight=1 PerfScore 3.50
G_M61270_IG05: ; bbWeight=1, epilog, nogc, extend ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-G_M61270_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref - ; byrRegs -[x19] - bl System.ThrowHelper:ThrowObjectDisposedException(System.Object)
+G_M61270_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
+ mov x0, x19 + ; gcrRegs +[x0] + bl System.ThrowHelper:ThrowObjectDisposedException(System.Object) + ; gcrRegs -[x0 x19]
brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 12, PerfScore 22.50, instruction count 23, allocated bytes for code 92 (MethodHash=88ac10a9) for method System.Threading.ManualResetEventSlim:get_WaitHandle():System.Threading.WaitHandle:this (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 23.75, instruction count 27, allocated bytes for code 108 (MethodHash=88ac10a9) for method System.Threading.ManualResetEventSlim:get_WaitHandle():System.Threading.WaitHandle:this (FullOpts)
; ============================================================ Cfi Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.linux.arm64.checked.mch 10,319 3,498 5,964 857 -44,948 +118,632 +0.1392%
benchmarks.run_pgo.linux.arm64.checked.mch 30,926 18,199 4,494 8,233 -134,124 +65,352 -0.6169%
benchmarks.run_tiered.linux.arm64.checked.mch 2,955 1,828 865 262 -17,376 +14,096 -0.0287%
coreclr_tests.run.linux.arm64.checked.mch 119,161 48,753 56,692 13,716 -2,233,024 +780,520 -0.1527%
libraries.crossgen2.linux.arm64.checked.mch 35,901 19,505 11,734 4,662 -346,380 +156,588 +0.0845%
libraries.pmi.linux.arm64.checked.mch 39,184 16,119 17,717 5,348 -192,860 +239,600 -0.0650%
libraries_tests.run.linux.arm64.Release.mch 81,910 39,484 32,320 10,106 -660,612 +725,848 -0.0863%
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 88,643 27,501 54,383 6,759 -420,876 +948,268 +0.0041%
realworld.run.linux.arm64.checked.mch 6,996 2,954 3,182 860 -43,788 +51,588 -0.0334%
smoke_tests.nativeaot.linux.arm64.checked.mch 2,947 1,868 726 353 -15,656 +9,124 -0.0063%
418,942 179,709 188,077 51,156 -4,109,644 +3,109,616

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 39,174 4,505 34,669 6 (0.02%) 87 (0.22%)
benchmarks.run_pgo.linux.arm64.checked.mch 149,221 58,069 91,152 4 (0.00%) 21 (0.01%)
benchmarks.run_tiered.linux.arm64.checked.mch 60,740 45,746 14,994 4 (0.01%) 18 (0.03%)
coreclr_tests.run.linux.arm64.checked.mch 649,577 400,791 248,786 7 (0.00%) 571 (0.09%)
libraries.crossgen2.linux.arm64.checked.mch 266,499 15 266,484 1 (0.00%) 43 (0.02%)
libraries.pmi.linux.arm64.checked.mch 300,666 6 300,660 14 (0.00%) 435 (0.14%)
libraries_tests.run.linux.arm64.Release.mch 729,682 488,690 240,992 21 (0.00%) 598 (0.08%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 301,871 21,622 280,249 112 (0.04%) 3,397 (1.11%)
realworld.run.linux.arm64.checked.mch 33,082 75 33,007 2 (0.01%) 54 (0.16%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,007 7 19,000 1 (0.01%) 14 (0.07%)
2,549,519 1,019,526 1,529,993 172 (0.01%) 5,238 (0.21%)

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: 18177936 (overridden on cmd)
Total bytes of diff: 18251620 (overridden on cmd)
Total bytes of delta: 73684 (0.41 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         448 : 27472.dasm (3.15 % of base)
         284 : 1185.dasm (5.33 % of base)
         224 : 19662.dasm (5.06 % of base)
         208 : 10658.dasm (1.98 % of base)
         176 : 19822.dasm (4.05 % of base)
         172 : 27424.dasm (2.30 % of base)
         160 : 31106.dasm (2.31 % of base)
         160 : 21440.dasm (3.46 % of base)
         152 : 12612.dasm (0.47 % of base)
         112 : 27080.dasm (2.16 % of base)
         112 : 31262.dasm (3.14 % of base)
         108 : 5674.dasm (1.79 % of base)
         108 : 12780.dasm (1.00 % of base)
         108 : 26829.dasm (4.76 % of base)
         108 : 28366.dasm (13.64 % of base)
         104 : 28258.dasm (2.26 % of base)
         104 : 32654.dasm (3.64 % of base)
         104 : 37455.dasm (0.97 % of base)
          96 : 23594.dasm (17.14 % of base)
          96 : 10507.dasm (2.11 % of base)

Top file improvements (bytes):
        -832 : 4369.dasm (-6.97 % of base)
        -320 : 5686.dasm (-8.57 % of base)
        -320 : 10984.dasm (-12.64 % of base)
        -304 : 36601.dasm (-4.32 % of base)
        -260 : 10830.dasm (-5.85 % of base)
        -204 : 7993.dasm (-1.60 % of base)
        -188 : 31126.dasm (-0.50 % of base)
        -180 : 11432.dasm (-8.06 % of base)
        -152 : 10683.dasm (-1.44 % of base)
        -144 : 10654.dasm (-2.13 % of base)
        -144 : 14688.dasm (-5.50 % of base)
        -144 : 29172.dasm (-5.14 % of base)
        -144 : 6898.dasm (-9.78 % of base)
        -136 : 5839.dasm (-1.71 % of base)
        -136 : 5939.dasm (-1.19 % of base)
        -132 : 18552.dasm (-2.07 % of base)
        -132 : 28014.dasm (-6.72 % of base)
        -128 : 30060.dasm (-13.50 % of base)
        -120 : 3183.dasm (-13.89 % of base)
        -116 : 14370.dasm (-0.88 % of base)

94 total files with Code Size differences (39 improved, 55 regressed), 20 unchanged.

Top method regressions (bytes):
         448 (3.15 % of base) : 27472.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         284 (5.33 % of base) : 1185.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         224 (5.06 % of base) : 19662.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         208 (1.98 % of base) : 10658.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         176 (4.05 % of base) : 19822.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         172 (2.30 % of base) : 27424.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
         160 (2.31 % of base) : 31106.dasm - System.Security.Cryptography.CryptoConfig:get_DefaultNameHT():System.Collections.Generic.Dictionary`2[System.String,System.Object] (FullOpts)
         160 (3.46 % of base) : 21440.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         152 (0.47 % of base) : 12612.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         112 (2.16 % of base) : 27080.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         112 (3.14 % of base) : 31262.dasm - PerfLabTests.GetMember:GetMethod20():this (FullOpts)
         108 (1.00 % of base) : 12780.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (FullOpts)
         108 (13.64 % of base) : 28366.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (FullOpts)
         108 (4.76 % of base) : 26829.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (FullOpts)
         108 (1.79 % of base) : 5674.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this (FullOpts)
         104 (0.97 % of base) : 37455.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
         104 (2.26 % of base) : 28258.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         104 (3.64 % of base) : 32654.dasm - MS.Internal.Xml.XPath.QueryBuilder:ProcessAxis(MS.Internal.Xml.XPath.Axis,int,byref):MS.Internal.Xml.XPath.Query:this (FullOpts)
          96 (17.14 % of base) : 23594.dasm - BenchmarkDotNet.Autogenerated.Runnable_119:.ctor():this (FullOpts)
          96 (2.11 % of base) : 10507.dasm - Utf8Json.Internal.Emit.MetaType:.ctor(System.Type,System.Func`2[System.String,System.String],ubyte):this (FullOpts)

Top method improvements (bytes):
        -832 (-6.97 % of base) : 4369.dasm - Product:CreateLists() (FullOpts)
        -320 (-12.64 % of base) : 10984.dasm - ProtoBuf.Internal.Serializers.DefaultValueDecorator:EmitBranchIfDefaultValue(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.CodeLabel):this (FullOpts)
        -320 (-8.57 % of base) : 5686.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
        -304 (-4.32 % of base) : 36601.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_LocationFormatter1:Serialize(byref,int,MicroBenchmarks.Serializers.Location,MessagePack.IFormatterResolver):int:this (FullOpts)
        -260 (-5.85 % of base) : 10830.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
        -204 (-1.60 % of base) : 7993.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -188 (-0.50 % of base) : 31126.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        -180 (-8.06 % of base) : 11432.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -152 (-1.44 % of base) : 10683.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Serialize(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel,Utf8Json.IJsonFormatterResolver):this (FullOpts)
        -144 (-9.78 % of base) : 6898.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
        -144 (-5.14 % of base) : 29172.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (FullOpts)
        -144 (-5.50 % of base) : 14688.dasm - System.Xml.Linq.XContainer:GetStringValue(System.Object):System.String (FullOpts)
        -144 (-2.13 % of base) : 10654.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_IndexViewModelFormatter1:Serialize(byref,MicroBenchmarks.Serializers.IndexViewModel,Utf8Json.IJsonFormatterResolver):this (FullOpts)
        -136 (-1.19 % of base) : 5939.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
        -136 (-1.71 % of base) : 5839.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
        -132 (-6.72 % of base) : 28014.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -132 (-2.07 % of base) : 18552.dasm - Utf8Json.Formatters.DictionaryFormatterBase`5[int,System.__Canon,System.__Canon,System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon],System.__Canon]:Serialize(byref,System.__Canon,Utf8Json.IJsonFormatterResolver):this (FullOpts)
        -128 (-13.50 % of base) : 30060.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
        -120 (-13.89 % of base) : 3183.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
        -116 (-0.88 % of base) : 14370.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)

Top method regressions (percentages):
          36 (34.62 % of base) : 15432.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          24 (26.09 % of base) : 17897.dasm - System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
          32 (25.81 % of base) : 15137.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
          40 (25.64 % of base) : 376.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
          32 (25.00 % of base) : 904.dasm - BenchmarkDotNet.Characteristics.CharacteristicPresenter:.cctor() (FullOpts)
          24 (23.08 % of base) : 13912.dasm - MessagePack.MessagePackSerializer:get_DefaultResolver():MessagePack.IFormatterResolver (FullOpts)
          24 (23.08 % of base) : 10369.dasm - Utf8Json.JsonSerializer:get_DefaultResolver():Utf8Json.IJsonFormatterResolver (FullOpts)
          28 (20.00 % of base) : 34442.dasm - V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
          28 (20.00 % of base) : 34409.dasm - V8.Crypto.Support:runEncrypt(ubyte) (FullOpts)
          52 (19.70 % of base) : 12002.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
          92 (19.17 % of base) : 35440.dasm - BenchmarkDotNet.Autogenerated.Runnable_159:.ctor():this (FullOpts)
          92 (19.17 % of base) : 20604.dasm - BenchmarkDotNet.Autogenerated.Runnable_180:.ctor():this (FullOpts)
          92 (19.17 % of base) : 22296.dasm - BenchmarkDotNet.Autogenerated.Runnable_180:.ctor():this (FullOpts)
          92 (19.17 % of base) : 32364.dasm - BenchmarkDotNet.Autogenerated.Runnable_185:.ctor():this (FullOpts)
          92 (19.17 % of base) : 32816.dasm - BenchmarkDotNet.Autogenerated.Runnable_185:.ctor():this (FullOpts)
          92 (19.17 % of base) : 29580.dasm - BenchmarkDotNet.Autogenerated.Runnable_186:.ctor():this (FullOpts)
          92 (19.17 % of base) : 21112.dasm - BenchmarkDotNet.Autogenerated.Runnable_188:.ctor():this (FullOpts)
          92 (19.17 % of base) : 31176.dasm - BenchmarkDotNet.Autogenerated.Runnable_76:.ctor():this (FullOpts)
          92 (19.17 % of base) : 32924.dasm - BenchmarkDotNet.Autogenerated.Runnable_76:.ctor():this (FullOpts)
          92 (19.17 % of base) : 33896.dasm - BenchmarkDotNet.Autogenerated.Runnable_8:.ctor():this (FullOpts)

Top method improvements (percentages):
         -36 (-21.95 % of base) : 11905.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
        -120 (-13.89 % of base) : 3183.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
        -128 (-13.50 % of base) : 30060.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -12 (-13.04 % of base) : 12145.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
         -12 (-13.04 % of base) : 16597.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -12 (-13.04 % of base) : 12146.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
         -12 (-13.04 % of base) : 17546.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_0(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 17551.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_10(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 17553.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_14(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 17554.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_16(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 17555.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_18(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 17547.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 17549.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_6(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 17550.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_8(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 15241.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_2(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 18806.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_0(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 18807.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_2(System.Object):ubyte:this (FullOpts)
         -12 (-13.04 % of base) : 18809.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 18810.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_8(System.Object):ubyte:this (FullOpts)
         -12 (-13.04 % of base) : 36909.dasm - System.Reflection.Invoke:Ctor0_ActivatorCreateInstance_NoParams():this (FullOpts)


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: 76659216 (overridden on cmd)
Total bytes of diff: 76590444 (overridden on cmd)
Total bytes of delta: -68772 (-0.09 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         292 : 128497.dasm (14.78 % of base)
         284 : 4685.dasm (5.26 % of base)
         268 : 37310.dasm (13.56 % of base)
         252 : 26417.dasm (9.75 % of base)
         224 : 50239.dasm (4.93 % of base)
         196 : 62869.dasm (9.94 % of base)
         184 : 25225.dasm (6.48 % of base)
         184 : 128502.dasm (6.49 % of base)
         184 : 142359.dasm (19.57 % of base)
         180 : 124507.dasm (9.41 % of base)
         180 : 93744.dasm (9.41 % of base)
         176 : 50274.dasm (3.95 % of base)
         172 : 86582.dasm (7.93 % of base)
         168 : 103908.dasm (11.23 % of base)
         168 : 103905.dasm (12.35 % of base)
         168 : 109505.dasm (12.35 % of base)
         168 : 109506.dasm (11.23 % of base)
         168 : 59917.dasm (11.23 % of base)
         168 : 59918.dasm (12.35 % of base)
         168 : 66560.dasm (11.23 % of base)

Top file improvements (bytes):
        -236 : 85916.dasm (-2.20 % of base)
        -228 : 121599.dasm (-2.00 % of base)
        -220 : 121618.dasm (-1.93 % of base)
        -212 : 123884.dasm (-2.17 % of base)
        -212 : 121297.dasm (-2.17 % of base)
        -160 : 86837.dasm (-4.90 % of base)
        -160 : 86853.dasm (-4.90 % of base)
        -144 : 86838.dasm (-1.52 % of base)
        -140 : 119970.dasm (-1.47 % of base)
        -140 : 113351.dasm (-1.43 % of base)
        -132 : 144596.dasm (-13.58 % of base)
        -132 : 142834.dasm (-13.64 % of base)
        -132 : 124510.dasm (-1.40 % of base)
        -116 : 101973.dasm (-0.31 % of base)
        -116 : 31030.dasm (-0.88 % of base)
        -116 : 96328.dasm (-28.43 % of base)
        -112 : 61958.dasm (-1.05 % of base)
        -108 : 37431.dasm (-2.00 % of base)
        -108 : 86144.dasm (-1.84 % of base)
        -108 : 98021.dasm (-3.35 % of base)

94 total files with Code Size differences (57 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         292 (14.78 % of base) : 128497.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         284 (5.26 % of base) : 4685.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
         268 (13.56 % of base) : 37310.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         252 (9.75 % of base) : 26417.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]:IndexOf(byref,int):int:this (Tier1)
         224 (4.93 % of base) : 50239.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         196 (9.94 % of base) : 62869.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         184 (6.48 % of base) : 25225.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         184 (6.49 % of base) : 128502.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         184 (19.57 % of base) : 142359.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:PickPivotAndPartition(System.Span`1[System.Collections.BigStruct],System.Comparison`1[System.Collections.BigStruct]):int (Tier1)
         180 (9.41 % of base) : 124507.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1)
         180 (9.41 % of base) : 93744.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1)
         176 (3.95 % of base) : 50274.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         172 (7.93 % of base) : 86582.dasm - Microsoft.Cci.MetadataWriter:AddCustomAttributesToTable(System.Reflection.Metadata.EntityHandle,System.Collections.Generic.IEnumerable`1[Microsoft.Cci.ICustomAttribute]):int:this (Tier1)
         168 (11.23 % of base) : 103908.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         168 (12.35 % of base) : 103905.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         168 (12.35 % of base) : 109505.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         168 (11.23 % of base) : 109506.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         168 (11.23 % of base) : 59917.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         168 (12.35 % of base) : 59918.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         168 (11.23 % of base) : 66560.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)

Top method improvements (bytes):
        -236 (-2.20 % of base) : 85916.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,byref,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier1)
        -228 (-2.00 % of base) : 121599.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
        -220 (-1.93 % of base) : 121618.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
        -212 (-2.17 % of base) : 123884.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -212 (-2.17 % of base) : 121297.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -160 (-4.90 % of base) : 86837.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -160 (-4.90 % of base) : 86853.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -144 (-1.52 % of base) : 86838.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -140 (-1.47 % of base) : 119970.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -140 (-1.43 % of base) : 113351.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -132 (-13.58 % of base) : 144596.dasm - System.Net.Sockets.SocketAsyncContext+OperationQueue`1[System.__Canon]:StartAsyncOperation(System.Net.Sockets.SocketAsyncContext,System.__Canon,int,System.Threading.CancellationToken):ubyte:this (Tier1)
        -132 (-13.64 % of base) : 142834.dasm - System.Net.Sockets.SocketAsyncContext+OperationQueue`1[System.__Canon]:StartAsyncOperation(System.Net.Sockets.SocketAsyncContext,System.__Canon,int,System.Threading.CancellationToken):ubyte:this (Tier1)
        -132 (-1.40 % of base) : 124510.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -116 (-0.88 % of base) : 31030.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        -116 (-0.31 % of base) : 101973.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        -116 (-28.43 % of base) : 96328.dasm - System.Threading.ReaderWriterLockSlim:GetThreadRWCount(ubyte):System.Threading.ReaderWriterCount:this (Tier1)
        -112 (-1.05 % of base) : 61958.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        -108 (-2.00 % of base) : 37431.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -108 (-3.35 % of base) : 98021.dasm - Benchstone.BenchI.Puzzle:DoIt():ubyte:this (Tier1)
        -108 (-1.84 % of base) : 86144.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RealizeBlocks():this (Tier1)

Top method regressions (percentages):
         184 (19.57 % of base) : 142359.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:PickPivotAndPartition(System.Span`1[System.Collections.BigStruct],System.Comparison`1[System.Collections.BigStruct]):int (Tier1)
          24 (19.35 % of base) : 409.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 7281.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          12 (17.65 % of base) : 86684.dasm - Interop+Crypto:EvpSha256():long (Tier1)
          28 (17.07 % of base) : 96774.dasm - Microsoft.CodeAnalysis.CachingIdentityFactory`2[System.__Canon,ushort]:GetOrMakeValue(System.__Canon):ushort:this (Tier1)
         292 (14.78 % of base) : 128497.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
          44 (14.10 % of base) : 120712.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          40 (14.08 % of base) : 103707.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          40 (13.89 % of base) : 110585.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          40 (13.89 % of base) : 82645.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          16 (13.79 % of base) : 96342.dasm - Microsoft.CodeAnalysis.SyntaxToken:get_SyntaxTree():Microsoft.CodeAnalysis.SyntaxTree:this (Tier1)
          76 (13.67 % of base) : 93667.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (13.67 % of base) : 124442.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         268 (13.56 % of base) : 37310.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
          40 (12.82 % of base) : 141195.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          40 (12.82 % of base) : 61228.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          40 (12.82 % of base) : 99716.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          40 (12.82 % of base) : 90392.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          40 (12.82 % of base) : 103276.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          40 (12.82 % of base) : 63792.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)

Top method improvements (percentages):
        -116 (-28.43 % of base) : 96328.dasm - System.Threading.ReaderWriterLockSlim:GetThreadRWCount(ubyte):System.Threading.ReaderWriterCount:this (Tier1)
         -64 (-16.16 % of base) : 123141.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -64 (-16.16 % of base) : 107549.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -64 (-16.16 % of base) : 146530.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -12 (-15.00 % of base) : 130424.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)
         -12 (-15.00 % of base) : 99911.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)
         -12 (-15.00 % of base) : 60732.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)
         -12 (-15.00 % of base) : 73157.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)
         -52 (-14.13 % of base) : 141272.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
        -132 (-13.64 % of base) : 142834.dasm - System.Net.Sockets.SocketAsyncContext+OperationQueue`1[System.__Canon]:StartAsyncOperation(System.Net.Sockets.SocketAsyncContext,System.__Canon,int,System.Threading.CancellationToken):ubyte:this (Tier1)
        -132 (-13.58 % of base) : 144596.dasm - System.Net.Sockets.SocketAsyncContext+OperationQueue`1[System.__Canon]:StartAsyncOperation(System.Net.Sockets.SocketAsyncContext,System.__Canon,int,System.Threading.CancellationToken):ubyte:this (Tier1)
         -28 (-13.46 % of base) : 123330.dasm - BenchmarksGame.ByteString:GetHashCode():int:this (Tier1)
         -12 (-13.04 % of base) : 36329.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
         -12 (-13.04 % of base) : 43171.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -12 (-13.04 % of base) : 36332.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
         -12 (-12.50 % of base) : 40021.dasm - (dynamicClass):NumSetter(System.Object,int) (FullOpts)
         -12 (-12.50 % of base) : 51265.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
          -8 (-11.76 % of base) : 81255.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
         -12 (-11.54 % of base) : 40022.dasm - (dynamicClass):TextSetter(System.Object,System.String) (FullOpts)
          -4 (-11.11 % of base) : 18765.dasm - System.Math:Max(short,short):short (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: 22368864 (overridden on cmd)
Total bytes of diff: 22365584 (overridden on cmd)
Total bytes of delta: -3280 (-0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         776 : 57487.dasm (4.03 % of base)
         284 : 2864.dasm (5.33 % of base)
         232 : 18622.dasm (8.75 % of base)
         224 : 31808.dasm (5.06 % of base)
         176 : 32270.dasm (4.05 % of base)
         160 : 46158.dasm (4.21 % of base)
         160 : 33513.dasm (3.46 % of base)
         152 : 24693.dasm (0.47 % of base)
         112 : 46860.dasm (2.16 % of base)
         112 : 3523.dasm (8.86 % of base)
         108 : 46823.dasm (13.64 % of base)
          92 : 27292.dasm (6.04 % of base)
          76 : 18242.dasm (4.19 % of base)
          76 : 22414.dasm (5.92 % of base)
          76 : 18162.dasm (1.10 % of base)
          68 : 35301.dasm (2.23 % of base)
          64 : 59413.dasm (7.05 % of base)
          64 : 34127.dasm (7.44 % of base)
          64 : 52722.dasm (14.41 % of base)
          64 : 32115.dasm (3.44 % of base)

Top file improvements (bytes):
        -264 : 38760.dasm (-2.36 % of base)
        -148 : 46460.dasm (-8.96 % of base)
        -144 : 47837.dasm (-4.44 % of base)
        -140 : 47383.dasm (-5.38 % of base)
        -120 : 56758.dasm (-17.05 % of base)
        -116 : 25413.dasm (-0.88 % of base)
        -112 : 35159.dasm (-1.05 % of base)
        -112 : 51945.dasm (-0.30 % of base)
        -108 : 47839.dasm (-1.22 % of base)
        -108 : 56749.dasm (-1.01 % of base)
        -108 : 56747.dasm (-2.84 % of base)
        -108 : 49265.dasm (-5.28 % of base)
         -92 : 18562.dasm (-2.41 % of base)
         -92 : 60542.dasm (-1.85 % of base)
         -92 : 60547.dasm (-1.81 % of base)
         -92 : 55779.dasm (-1.57 % of base)
         -80 : 32072.dasm (-1.67 % of base)
         -76 : 35124.dasm (-0.67 % of base)
         -64 : 25345.dasm (-1.81 % of base)
         -60 : 49277.dasm (-2.85 % of base)

92 total files with Code Size differences (40 improved, 52 regressed), 20 unchanged.

Top method regressions (bytes):
         776 (4.03 % of base) : 57487.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         284 (5.33 % of base) : 2864.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
         232 (8.75 % of base) : 18622.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
         224 (5.06 % of base) : 31808.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         176 (4.05 % of base) : 32270.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         160 (4.21 % of base) : 46158.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|199_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (Tier1)
         160 (3.46 % of base) : 33513.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         152 (0.47 % of base) : 24693.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         112 (2.16 % of base) : 46860.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         112 (8.86 % of base) : 3523.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Resize(int,ubyte):this (Tier1)
         108 (13.64 % of base) : 46823.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (Tier1)
          92 (6.04 % of base) : 27292.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          76 (4.19 % of base) : 18242.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
          76 (1.10 % of base) : 18162.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
          76 (5.92 % of base) : 22414.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:PruneAnchorsImpl(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],uint,ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
          68 (2.23 % of base) : 35301.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
          64 (7.44 % of base) : 34127.dasm - (dynamicClass):WriteLoginViewModelToJson(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson,System.Runtime.Serialization.DataContracts.ClassDataContract,System.Xml.XmlDictionaryString[]) (FullOpts)
          64 (3.44 % of base) : 32115.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1)
          64 (14.41 % of base) : 52722.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
          64 (7.05 % of base) : 59413.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex12_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)

Top method improvements (bytes):
        -264 (-2.36 % of base) : 38760.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1-OSR)
        -148 (-8.96 % of base) : 46460.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (Tier1)
        -144 (-4.44 % of base) : 47837.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -140 (-5.38 % of base) : 47383.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (Tier1)
        -120 (-17.05 % of base) : 56758.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (Tier1)
        -116 (-0.88 % of base) : 25413.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        -112 (-0.30 % of base) : 51945.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        -112 (-1.05 % of base) : 35159.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        -108 (-1.22 % of base) : 47839.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1)
        -108 (-5.28 % of base) : 49265.dasm - Benchstone.BenchI.Puzzle:DoIt():ubyte:this (Tier1-OSR)
        -108 (-1.01 % of base) : 56749.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1)
        -108 (-2.84 % of base) : 56747.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
         -92 (-1.81 % of base) : 60547.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier1)
         -92 (-1.85 % of base) : 60542.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier1-OSR)
         -92 (-2.41 % of base) : 18562.dasm - System.Text.RegularExpressions.RegexNode:CanBeMadeAtomic(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte,ubyte):ubyte (Tier1)
         -92 (-1.57 % of base) : 55779.dasm - System.Xml.Schema.XsdDuration:TryFormat(System.Span`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
         -80 (-1.67 % of base) : 32072.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         -76 (-0.67 % of base) : 35124.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
         -64 (-1.81 % of base) : 25345.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (Tier1-OSR)
         -60 (-2.85 % of base) : 49277.dasm - Benchstone.BenchI.Puzzle:DoIt():ubyte:this (Tier1)

Top method regressions (percentages):
          24 (18.75 % of base) : 398.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          28 (17.50 % of base) : 56784.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:get_IntrinsicTypeConverters():System.Collections.Generic.Dictionary`2[System.Object,System.ComponentModel.ReflectTypeDescriptionProvider+IntrinsicTypeConverterData] (Tier1)
          28 (16.67 % of base) : 47235.dasm - Microsoft.Cci.Extensions:HasBody(Microsoft.Cci.IMethodDefinition):ubyte (Tier1)
          20 (15.15 % of base) : 18529.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:SortFixedDistanceSetsByQuality(System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)
          64 (14.41 % of base) : 52722.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
          20 (14.29 % of base) : 46716.dasm - Microsoft.CodeAnalysis.CSharp.MergedTypeDeclaration:get_SyntaxReferences():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxReference]:this (Tier1)
          20 (14.29 % of base) : 45840.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CustomModifierUtils:HasInAttributeModifier(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]):ubyte (Tier1)
          20 (14.29 % of base) : 45820.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:<.ctor>g__anyUnexpectedRequiredModifiers|17_0(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][]):ubyte (Tier1)
          20 (14.29 % of base) : 50827.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ISymbol] (Tier1)
          20 (14.29 % of base) : 46318.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap:TypeParametersAsTypeSymbolsWithAnnotations(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations] (Tier1)
          20 (14.29 % of base) : 52783.dasm - Sigil.Impl.VerifiableTracker+<>c:<UpdateStack>b__23_1(Sigil.Impl.StackTransition):ubyte:this (Tier1)
          20 (14.29 % of base) : 36147.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509CertificateReader:get_KeyAlgorithm():System.String:this (Tier1)
          20 (14.29 % of base) : 36152.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509CertificateReader:get_PublicKeyValue():ubyte[]:this (Tier1)
         108 (13.64 % of base) : 46823.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (Tier1)
          20 (13.16 % of base) : 46852.dasm - Microsoft.CodeAnalysis.MetadataHelpers:SplitQualifiedName(System.ReadOnlyMemory`1[ushort]):System.Collections.Immutable.ImmutableArray`1[System.ReadOnlyMemory`1[ushort]] (Tier1)
          24 (12.77 % of base) : 35544.dasm - System.Net.Sockets.Socket:IsWildcardEndPoint(System.Net.EndPoint):ubyte (Tier1)
          52 (12.50 % of base) : 50825.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDataFlowAnalysis:Normalize(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISymbol] (Tier1)
          20 (12.50 % of base) : 45980.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:GroupByName(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Generic.Dictionary`2[System.String,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]] (Tier1)
          20 (12.20 % of base) : 25907.dasm - System.HexConverter:ToString(System.ReadOnlySpan`1[ubyte],uint):System.String (Tier1)
          20 (12.20 % of base) : 36062.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509CertificateReader:get_Issuer():System.String:this (Tier1)

Top method improvements (percentages):
        -120 (-17.05 % of base) : 56758.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (Tier1)
         -12 (-13.04 % of base) : 22004.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
         -12 (-13.04 % of base) : 30639.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -12 (-13.04 % of base) : 22005.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
         -12 (-12.50 % of base) : 27846.dasm - (dynamicClass):NumSetter(System.Object,int) (FullOpts)
         -12 (-12.50 % of base) : 31656.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
         -12 (-12.50 % of base) : 28756.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:GetValue[int](BenchmarkDotNet.Characteristics.Characteristic`1[int]):int:this (Tier1)
         -12 (-11.54 % of base) : 27847.dasm - (dynamicClass):TextSetter(System.Object,System.String) (FullOpts)
         -16 (-10.81 % of base) : 34733.dasm - System.Text.Json.JsonEncodedText:Encode(System.ReadOnlySpan`1[ushort],System.Text.Encodings.Web.JavaScriptEncoder):System.Text.Json.JsonEncodedText (Tier1)
         -12 (-10.71 % of base) : 28755.dasm - BenchmarkDotNet.Characteristics.Characteristic`1[int]:get_Item(BenchmarkDotNet.Characteristics.CharacteristicObject):int:this (Tier1)
         -12 (-10.34 % of base) : 12918.dasm - System.Threading.AsyncLocal`1[ubyte]:get_Value():ubyte:this (Tier1)
        -148 (-8.96 % of base) : 46460.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (Tier1)
         -16 (-8.70 % of base) : 48967.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier1)
         -16 (-8.51 % of base) : 22391.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -16 (-8.33 % of base) : 1408.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
         -16 (-8.33 % of base) : 25465.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
         -12 (-8.11 % of base) : 27006.dasm - EMFloat:normalize(byref) (Tier1)
         -16 (-8.00 % of base) : 3090.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (Tier1)
         -12 (-7.50 % of base) : 12916.dasm - System.Runtime.Serialization.SerializationInfo:get_DeserializationInProgress():ubyte (Tier1)
         -12 (-7.32 % of base) : 22485.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexThresholds:GetSymbolicRegexSafeSizeThreshold():int (Tier1)


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: 521932512 (overridden on cmd)
Total bytes of diff: 520480008 (overridden on cmd)
Total bytes of delta: -1452504 (-0.28 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        2144 : 578999.dasm (2.22 % of base)
        1136 : 578163.dasm (0.63 % of base)
        1128 : 578168.dasm (0.63 % of base)
         904 : 578623.dasm (3.92 % of base)
         892 : 578618.dasm (3.84 % of base)
         860 : 586601.dasm (3.70 % of base)
         852 : 586598.dasm (3.69 % of base)
         796 : 578676.dasm (3.61 % of base)
         796 : 586612.dasm (3.61 % of base)
         732 : 544994.dasm (21.53 % of base)
         732 : 544997.dasm (21.53 % of base)
         704 : 578681.dasm (3.07 % of base)
         704 : 586614.dasm (3.07 % of base)
         688 : 646459.dasm (14.71 % of base)
         680 : 579009.dasm (0.70 % of base)
         664 : 578691.dasm (3.02 % of base)
         656 : 578628.dasm (3.09 % of base)
         652 : 586618.dasm (2.96 % of base)
         604 : 578364.dasm (0.60 % of base)
         600 : 586596.dasm (2.71 % of base)

Top file improvements (bytes):
       -2060 : 631593.dasm (-11.10 % of base)
       -1956 : 602981.dasm (-10.48 % of base)
       -1896 : 607542.dasm (-10.81 % of base)
       -1876 : 603200.dasm (-9.83 % of base)
       -1860 : 630333.dasm (-7.44 % of base)
       -1824 : 628892.dasm (-13.04 % of base)
       -1820 : 630049.dasm (-9.16 % of base)
       -1788 : 606333.dasm (-10.07 % of base)
       -1788 : 612561.dasm (-10.43 % of base)
       -1784 : 630117.dasm (-7.03 % of base)
       -1760 : 612180.dasm (-10.08 % of base)
       -1756 : 602019.dasm (-9.45 % of base)
       -1744 : 611564.dasm (-10.56 % of base)
       -1744 : 602194.dasm (-9.68 % of base)
       -1740 : 608811.dasm (-8.73 % of base)
       -1728 : 622133.dasm (-9.79 % of base)
       -1724 : 630455.dasm (-9.06 % of base)
       -1708 : 630811.dasm (-9.69 % of base)
       -1704 : 612211.dasm (-9.86 % of base)
       -1700 : 603238.dasm (-9.22 % of base)

102 total files with Code Size differences (60 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
        2144 (2.22 % of base) : 578999.dasm - u4div:TestEntryPoint():int (FullOpts)
        1136 (0.63 % of base) : 578163.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
        1128 (0.63 % of base) : 578168.dasm - decimalrem:TestEntryPoint():int (FullOpts)
         904 (3.92 % of base) : 578623.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)
         892 (3.84 % of base) : 578618.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
         860 (3.70 % of base) : 586601.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)
         852 (3.69 % of base) : 586598.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
         796 (3.61 % of base) : 578676.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
         796 (3.61 % of base) : 586612.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
         732 (21.53 % of base) : 544994.dasm - VectorTest:TestEntryPoint():int (FullOpts)
         732 (21.53 % of base) : 544997.dasm - VectorTest:TestEntryPoint():int (FullOpts)
         704 (3.07 % of base) : 578681.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
         704 (3.07 % of base) : 586614.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
         688 (14.71 % of base) : 646459.dasm - Program:ExplicitlySizedStructTest():ubyte (FullOpts)
         680 (0.70 % of base) : 579009.dasm - u8div:TestEntryPoint():int (FullOpts)
         664 (3.02 % of base) : 578691.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
         656 (3.09 % of base) : 578628.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
         652 (2.96 % of base) : 586618.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
         604 (0.60 % of base) : 578364.dasm - i8div:TestEntryPoint():int (FullOpts)
         600 (2.71 % of base) : 586596.dasm - r4NaNdiv:TestEntryPoint():int (FullOpts)

Top method improvements (bytes):
       -2060 (-11.10 % of base) : 631593.dasm - Generated944:CalliTest() (FullOpts)
       -1956 (-10.48 % of base) : 602981.dasm - Generated1077:CalliTest() (FullOpts)
       -1896 (-10.81 % of base) : 607542.dasm - Generated1205:CalliTest() (FullOpts)
       -1876 (-9.83 % of base) : 603200.dasm - Generated1083:CalliTest() (FullOpts)
       -1860 (-7.44 % of base) : 630333.dasm - Generated908:MethodCallingTest() (FullOpts)
       -1824 (-13.04 % of base) : 628892.dasm - Generated862:CalliTest() (FullOpts)
       -1820 (-9.16 % of base) : 630049.dasm - Generated899:CalliTest() (FullOpts)
       -1788 (-10.07 % of base) : 606333.dasm - Generated1169:CalliTest() (FullOpts)
       -1788 (-10.43 % of base) : 612561.dasm - Generated1364:CalliTest() (FullOpts)
       -1784 (-7.03 % of base) : 630117.dasm - Generated902:MethodCallingTest() (FullOpts)
       -1760 (-10.08 % of base) : 612180.dasm - Generated1353:CalliTest() (FullOpts)
       -1756 (-9.45 % of base) : 602019.dasm - Generated1054:CalliTest() (FullOpts)
       -1744 (-9.68 % of base) : 602194.dasm - Generated1058:CalliTest() (FullOpts)
       -1744 (-10.56 % of base) : 611564.dasm - Generated1334:CalliTest() (FullOpts)
       -1740 (-8.73 % of base) : 608811.dasm - Generated1243:CalliTest() (FullOpts)
       -1728 (-9.79 % of base) : 622133.dasm - Generated629:CalliTest() (FullOpts)
       -1724 (-9.06 % of base) : 630455.dasm - Generated911:CalliTest() (FullOpts)
       -1708 (-9.69 % of base) : 630811.dasm - Generated921:CalliTest() (FullOpts)
       -1704 (-9.86 % of base) : 612211.dasm - Generated1354:CalliTest() (FullOpts)
       -1700 (-9.22 % of base) : 603238.dasm - Generated1084:CalliTest() (FullOpts)

Top method regressions (percentages):
          60 (46.88 % of base) : 587288.dasm - Bug426480:foo() (FullOpts)
         144 (42.35 % of base) : 581853.dasm - structinreg.Program1:test4(structinreg.Test4):int (FullOpts)
          76 (41.30 % of base) : 478532.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Byte:.cctor() (FullOpts)
          76 (41.30 % of base) : 478651.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__float:.cctor() (FullOpts)
          76 (41.30 % of base) : 478600.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Int32:.cctor() (FullOpts)
          76 (41.30 % of base) : 478515.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__SByte:.cctor() (FullOpts)
          76 (41.30 % of base) : 478583.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__UInt32:.cctor() (FullOpts)
          76 (41.30 % of base) : 505006.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__Byte:.cctor() (FullOpts)
          76 (41.30 % of base) : 505040.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__Int16:.cctor() (FullOpts)
          76 (41.30 % of base) : 504989.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__SByte:.cctor() (FullOpts)
          76 (41.30 % of base) : 505023.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__UInt16:.cctor() (FullOpts)
          36 (40.91 % of base) : 587347.dasm - Application:Display(int,System.String,int) (FullOpts)
          60 (37.50 % of base) : 478362.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx3Test__Byte:.cctor() (FullOpts)
          72 (37.50 % of base) : 478668.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__double:.cctor() (FullOpts)
          72 (37.50 % of base) : 478566.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Int16:.cctor() (FullOpts)
          72 (37.50 % of base) : 478634.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Int64:.cctor() (FullOpts)
          60 (37.50 % of base) : 504887.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx3Test__Byte:.cctor() (FullOpts)
          60 (37.50 % of base) : 504870.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx3Test__SByte:.cctor() (FullOpts)
          72 (37.50 % of base) : 505091.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__float:.cctor() (FullOpts)
          72 (37.50 % of base) : 505074.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__Int32:.cctor() (FullOpts)

Top method improvements (percentages):
         -52 (-25.00 % of base) : 1400.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Instrumented Tier1)
         -24 (-23.08 % of base) : 328118.dasm - Test_b99969:DoSpoof() (Tier1-OSR)
         -36 (-21.95 % of base) : 540719.dasm - FunctionPtr:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 633794.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 636475.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 647630.dasm - Microsoft.Build.Logging.LoggerDescription:.cctor() (FullOpts)
          -8 (-20.00 % of base) : 431751.dasm - Internal.TypeSystem.ArrayType:get_Rank():int:this (Tier1)
          -8 (-20.00 % of base) : 437260.dasm - Internal.TypeSystem.ArrayType:get_Rank():int:this (Tier1)
          -8 (-20.00 % of base) : 474653.dasm - JIT.HardwareIntrinsics.Arm.Helpers:Max(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 474637.dasm - JIT.HardwareIntrinsics.Arm.Helpers:Max(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 475135.dasm - JIT.HardwareIntrinsics.Arm.Helpers:Min(short,short):short (FullOpts)
        -156 (-16.39 % of base) : 458979.dasm - filter2:f11() (FullOpts)
         -36 (-16.36 % of base) : 591423.dasm - TestClass:Method1(byref,byref,TestClass+S1,byref,TestClass+S1,byref):uint:this (FullOpts)
         -12 (-15.79 % of base) : 543559.dasm - BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
         -12 (-15.79 % of base) : 281600.dasm - Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
         -84 (-15.44 % of base) : 460287.dasm - try2:f11() (FullOpts)
       -1212 (-14.88 % of base) : 622359.dasm - Generated639:MethodCallingTest() (FullOpts)
       -1400 (-14.15 % of base) : 630367.dasm - Generated909:MethodCallingTest() (FullOpts)
         -88 (-14.10 % of base) : 458903.dasm - catch2:f11() (FullOpts)
        -136 (-13.93 % of base) : 338325.dasm - System.Net.Sockets.SocketAsyncContext+OperationQueue`1[System.__Canon]:StartAsyncOperation(System.Net.Sockets.SocketAsyncContext,System.__Canon,int,System.Threading.CancellationToken):ubyte:this (Tier1)


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: 64066684 (overridden on cmd)
Total bytes of diff: 63876892 (overridden on cmd)
Total bytes of delta: -189792 (-0.30 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         580 : 42364.dasm (1.85 % of base)
         580 : 108649.dasm (1.85 % of base)
         384 : 224565.dasm (10.49 % of base)
         344 : 44617.dasm (2.70 % of base)
         328 : 198957.dasm (6.02 % of base)
         312 : 223703.dasm (5.30 % of base)
         308 : 17479.dasm (5.44 % of base)
         296 : 233465.dasm (2.77 % of base)
         296 : 190863.dasm (1.10 % of base)
         264 : 227226.dasm (11.50 % of base)
         256 : 227346.dasm (2.75 % of base)
         248 : 30926.dasm (5.65 % of base)
         244 : 191561.dasm (6.62 % of base)
         220 : 239874.dasm (2.63 % of base)
         200 : 174992.dasm (5.92 % of base)
         192 : 23733.dasm (8.71 % of base)
         192 : 88042.dasm (0.89 % of base)
         192 : 192534.dasm (8.71 % of base)
         188 : 10016.dasm (3.09 % of base)
         188 : 175645.dasm (3.92 % of base)

Top file improvements (bytes):
        -236 : 61653.dasm (-3.02 % of base)
        -216 : 141643.dasm (-0.57 % of base)
        -208 : 189821.dasm (-10.77 % of base)
        -208 : 226921.dasm (-2.18 % of base)
        -180 : 172276.dasm (-6.99 % of base)
        -176 : 155395.dasm (-9.05 % of base)
        -176 : 183734.dasm (-1.79 % of base)
        -168 : 88045.dasm (-4.59 % of base)
        -168 : 226914.dasm (-2.47 % of base)
        -164 : 223323.dasm (-6.93 % of base)
        -160 : 112825.dasm (-8.21 % of base)
        -160 : 47123.dasm (-8.21 % of base)
        -144 : 155285.dasm (-6.53 % of base)
        -140 : 208656.dasm (-3.65 % of base)
        -132 : 243926.dasm (-5.78 % of base)
        -128 : 199747.dasm (-13.45 % of base)
        -128 : 31715.dasm (-13.45 % of base)
        -124 : 224286.dasm (-4.70 % of base)
        -124 : 23167.dasm (-14.09 % of base)
        -124 : 192105.dasm (-14.09 % of base)

95 total files with Code Size differences (51 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
         580 (1.85 % of base) : 42364.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         580 (1.85 % of base) : 108649.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         384 (10.49 % of base) : 224565.dasm - System.Data.XMLDiffLoader:ReadOldRowData(System.Data.DataSet,byref,byref,System.Xml.XmlReader):int:this (FullOpts)
         344 (2.70 % of base) : 44617.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
         328 (6.02 % of base) : 198957.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         312 (5.30 % of base) : 223703.dasm - System.Data.XSDSchema:LoadSchema(System.Xml.Schema.XmlSchemaSet,System.Data.DataSet):this (FullOpts)
         308 (5.44 % of base) : 17479.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
         296 (1.10 % of base) : 190863.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)
         296 (2.77 % of base) : 233465.dasm - System.Formats.Asn1.WellKnownOids:GetContents(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ubyte] (FullOpts)
         264 (11.50 % of base) : 227226.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         256 (2.75 % of base) : 227346.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
         248 (5.65 % of base) : 30926.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         244 (6.62 % of base) : 191561.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMostSpecific(System.Reflection.MethodBase,System.Reflection.MethodBase,int[],System.Object[],ubyte,int,int,System.Object[]):int:this (FullOpts)
         220 (2.63 % of base) : 239874.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)
         200 (5.92 % of base) : 174992.dasm - System.Xml.Schema.SchemaCollectionCompiler:Compile():this (FullOpts)
         192 (8.71 % of base) : 23733.dasm - Microsoft.Cci.FullMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         192 (8.71 % of base) : 192534.dasm - Microsoft.Cci.FullMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         192 (0.89 % of base) : 88042.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         188 (3.09 % of base) : 10016.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this (FullOpts)
         188 (3.92 % of base) : 175645.dasm - System.Xml.Xsl.Xslt.QilGenerator:PrecompileProtoTemplatesHeaders():this (FullOpts)

Top method improvements (bytes):
        -236 (-3.02 % of base) : 61653.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref,int,ubyte):this (FullOpts)
        -216 (-0.57 % of base) : 141643.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -208 (-2.18 % of base) : 226921.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:.cctor() (FullOpts)
        -208 (-10.77 % of base) : 189821.dasm - System.ComponentModel.Composition.Hosting.ComposablePartExportProvider:Compose(System.ComponentModel.Composition.Hosting.CompositionBatch):this (FullOpts)
        -180 (-6.99 % of base) : 172276.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -176 (-9.05 % of base) : 155395.dasm - Microsoft.CodeAnalysis.VisualBasic.ObjectDisplay.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -176 (-1.79 % of base) : 183734.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -168 (-2.47 % of base) : 226914.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:.cctor() (FullOpts)
        -168 (-4.59 % of base) : 88045.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:.cctor() (FullOpts)
        -164 (-6.93 % of base) : 223323.dasm - System.Data.UnaryNode:EvalUnaryOp(int,System.Object):System.Object:this (FullOpts)
        -160 (-8.21 % of base) : 112825.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -160 (-8.21 % of base) : 47123.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -144 (-6.53 % of base) : 155285.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:ShadowBasedOnInferenceLevel(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],ubyte,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref,byref,byref) (FullOpts)
        -140 (-3.65 % of base) : 208656.dasm - System.Runtime.Serialization.ExtensionDataReader:MoveToText(System.Type,System.Runtime.Serialization.IDataNode,ubyte):ubyte:this (FullOpts)
        -132 (-5.78 % of base) : 243926.dasm - ILCompiler.Reflection.ReadyToRun.x86.InfoHdrDecoder:DecodeHeader(ubyte[],byref,int):ILCompiler.Reflection.ReadyToRun.x86.InfoHdrSmall (FullOpts)
        -128 (-13.45 % of base) : 199747.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (FullOpts)
        -128 (-13.45 % of base) : 31715.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (FullOpts)
        -124 (-14.09 % of base) : 23167.dasm - Roslyn.Utilities.AssemblyUtilities:IdentifyMissingDependencies(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
        -124 (-14.09 % of base) : 192105.dasm - Roslyn.Utilities.AssemblyUtilities:IdentifyMissingDependencies(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
        -124 (-4.70 % of base) : 224286.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)

Top method regressions (percentages):
          24 (30.00 % of base) : 228179.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
          24 (30.00 % of base) : 263639.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
          24 (27.27 % of base) : 228045.dasm - System.Reflection.TypeLoading.RoType:get_IsByRefLike():ubyte:this (FullOpts)
          24 (27.27 % of base) : 263519.dasm - System.Reflection.TypeLoading.RoType:get_IsByRefLike():ubyte:this (FullOpts)
          24 (27.27 % of base) : 228064.dasm - System.Reflection.TypeLoading.RoType:get_IsEnum():ubyte:this (FullOpts)
          24 (27.27 % of base) : 263537.dasm - System.Reflection.TypeLoading.RoType:get_IsEnum():ubyte:this (FullOpts)
          24 (27.27 % of base) : 228065.dasm - System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)
          24 (27.27 % of base) : 263538.dasm - System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)
          24 (25.00 % of base) : 227891.dasm - System.Reflection.TypeLoading.RoConstructor:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 263372.dasm - System.Reflection.TypeLoading.RoConstructor:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 227892.dasm - System.Reflection.TypeLoading.RoConstructor:get_CallingConvention():int:this (FullOpts)
          24 (25.00 % of base) : 263408.dasm - System.Reflection.TypeLoading.RoField:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 228152.dasm - System.Reflection.TypeLoading.RoGenericParameterType:get_GenericParameterPosition():int:this (FullOpts)
          24 (25.00 % of base) : 263607.dasm - System.Reflection.TypeLoading.RoGenericParameterType:get_GenericParameterPosition():int:this (FullOpts)
          24 (25.00 % of base) : 263444.dasm - System.Reflection.TypeLoading.RoMethod:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 227963.dasm - System.Reflection.TypeLoading.RoMethod:get_CallingConvention():int:this (FullOpts)
          24 (25.00 % of base) : 227964.dasm - System.Reflection.TypeLoading.RoMethod:get_MethodImplementationFlags():int:this (FullOpts)
          24 (25.00 % of base) : 263494.dasm - System.Reflection.TypeLoading.RoProperty:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 228067.dasm - System.Reflection.TypeLoading.RoType:GetAttributeFlagsImpl():int:this (FullOpts)
          24 (25.00 % of base) : 263540.dasm - System.Reflection.TypeLoading.RoType:GetAttributeFlagsImpl():int:this (FullOpts)

Top method improvements (percentages):
         -24 (-30.00 % of base) : 210707.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
         -20 (-23.81 % of base) : 34095.dasm - Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[System.__Canon]:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 202068.dasm - Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[System.__Canon]:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 195176.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 26637.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 195182.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 26647.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 195196.dasm - Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 26663.dasm - Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 26692.dasm - Microsoft.CodeAnalysis.CommonModuleWellKnownAttributeData:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 195214.dasm - Microsoft.CodeAnalysis.CommonModuleWellKnownAttributeData:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 26716.dasm - Microsoft.CodeAnalysis.CommonPropertyEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 195228.dasm - Microsoft.CodeAnalysis.CommonPropertyEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 26731.dasm - Microsoft.CodeAnalysis.CommonTypeEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 195242.dasm - Microsoft.CodeAnalysis.CommonTypeEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -28 (-21.21 % of base) : 28345.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:<VisitInterpolatedStringHandlerCreation>g__pushLeftNodes|195_2(Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation]) (FullOpts)
         -28 (-21.21 % of base) : 196832.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:<VisitInterpolatedStringHandlerCreation>g__pushLeftNodes|197_2(Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation]) (FullOpts)
         -48 (-20.34 % of base) : 218491.dasm - Internal.Cryptography.Helpers:DisposeAll(System.Collections.Generic.IEnumerable`1[System.IDisposable]) (FullOpts)
         -28 (-20.00 % of base) : 25601.dasm - Microsoft.CodeAnalysis.DocumentationCommentId:GetTotalTypeParameterCount(Microsoft.CodeAnalysis.INamedTypeSymbol):int (FullOpts)
         -36 (-20.00 % of base) : 18417.dasm - System.Runtime.Intrinsics.Vector512`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[double],System.Runtime.Intrinsics.Vector512`1[double]):double (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: 76561528 (overridden on cmd)
Total bytes of diff: 76608268 (overridden on cmd)
Total bytes of delta: 46740 (0.06 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         760 : 64539.dasm (5.27 % of base)
         300 : 125110.dasm (0.95 % of base)
         208 : 246106.dasm (8.98 % of base)
         200 : 218036.dasm (3.13 % of base)
         192 : 170824.dasm (2.94 % of base)
         188 : 246090.dasm (7.64 % of base)
         184 : 148815.dasm (10.11 % of base)
         184 : 147766.dasm (10.15 % of base)
         172 : 246110.dasm (3.90 % of base)
         164 : 211153.dasm (1.47 % of base)
         164 : 40385.dasm (3.97 % of base)
         160 : 89139.dasm (2.96 % of base)
         160 : 227024.dasm (2.29 % of base)
         160 : 291332.dasm (1.48 % of base)
         156 : 167190.dasm (2.10 % of base)
         156 : 25200.dasm (7.25 % of base)
         156 : 89141.dasm (2.63 % of base)
         156 : 245728.dasm (5.71 % of base)
         152 : 208441.dasm (4.19 % of base)
         152 : 170106.dasm (2.74 % of base)

Top file improvements (bytes):
       -1160 : 136278.dasm (-11.75 % of base)
        -764 : 96424.dasm (-1.91 % of base)
        -624 : 256082.dasm (-12.62 % of base)
        -544 : 183312.dasm (-8.64 % of base)
        -536 : 182989.dasm (-9.18 % of base)
        -488 : 182981.dasm (-8.57 % of base)
        -472 : 183311.dasm (-8.87 % of base)
        -424 : 186714.dasm (-3.52 % of base)
        -348 : 41569.dasm (-3.26 % of base)
        -344 : 146696.dasm (-4.67 % of base)
        -344 : 39370.dasm (-1.02 % of base)
        -332 : 135783.dasm (-9.21 % of base)
        -276 : 191015.dasm (-1.30 % of base)
        -272 : 3909.dasm (-1.28 % of base)
        -268 : 296179.dasm (-3.01 % of base)
        -264 : 233526.dasm (-1.12 % of base)
        -240 : 299623.dasm (-8.19 % of base)
        -232 : 154534.dasm (-2.82 % of base)
        -228 : 182959.dasm (-7.88 % of base)
        -208 : 186713.dasm (-2.73 % of base)

84 total files with Code Size differences (42 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
         760 (5.27 % of base) : 64539.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         300 (0.95 % of base) : 125110.dasm - Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         208 (8.98 % of base) : 246106.dasm - System.Numerics.Tensors.TensorPrimitives+TanOperatorSingle:Invoke(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
         200 (3.13 % of base) : 218036.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         192 (2.94 % of base) : 170824.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.InliningInfoNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         188 (7.64 % of base) : 246090.dasm - System.Numerics.Tensors.TensorPrimitives+SinOperatorDouble:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         184 (10.15 % of base) : 147766.dasm - System.Xml.Schema.XmlSchemaException:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
         184 (10.11 % of base) : 148815.dasm - System.Xml.Xsl.XsltException:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
         172 (3.90 % of base) : 246110.dasm - System.Numerics.Tensors.TensorPrimitives+TanOperatorDouble:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         164 (1.47 % of base) : 211153.dasm - Microsoft.Build.Evaluation.Preprocessor:CloneChildrenResolvingImports(System.Xml.XmlNode,System.Xml.XmlNode):this (FullOpts)
         164 (3.97 % of base) : 40385.dasm - Microsoft.CodeAnalysis.CSharp.MethodBodySynthesizer:MakeSubmissionInitialization(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.CSharpCompilation) (FullOpts)
         160 (2.96 % of base) : 89139.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BuildBoundLambdaParameters(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,Microsoft.CodeAnalysis.VisualBasic.UnboundLambda+TargetSignature,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol]:this (FullOpts)
         160 (1.48 % of base) : 291332.dasm - R2RDump.R2RDumpRootCommand:.ctor():this (FullOpts)
         160 (2.29 % of base) : 227024.dasm - System.Security.Cryptography.CryptoConfig:get_DefaultNameHT():System.Collections.Generic.Dictionary`2[System.String,System.Object] (FullOpts)
         156 (2.10 % of base) : 167190.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
         156 (2.63 % of base) : 89141.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindLambdaBody(Microsoft.CodeAnalysis.VisualBasic.Symbols.LambdaSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.VisualBasic.BoundBlock:this (FullOpts)
         156 (5.71 % of base) : 245728.dasm - System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ubyte]:Invoke(System.Runtime.Intrinsics.Vector512`1[ubyte],System.Runtime.Intrinsics.Vector512`1[ubyte]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)
         156 (7.25 % of base) : 25200.dasm - System.Runtime.Intrinsics.Vector512:Divide[ubyte](System.Runtime.Intrinsics.Vector512`1[ubyte],System.Runtime.Intrinsics.Vector512`1[ubyte]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)
         152 (2.74 % of base) : 170106.dasm - ILCompiler.PettisHansenSort.PettisHansen:Sort(System.Collections.Generic.List`1[ILCompiler.PettisHansenSort.CallGraphNode]):System.Collections.Generic.List`1[System.Collections.Generic.List`1[int]] (FullOpts)
         152 (4.19 % of base) : 208441.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (FullOpts)

Top method improvements (bytes):
       -1160 (-11.75 % of base) : 136278.dasm - Microsoft.Diagnostics.Tracing.Parsers.AspNet.AspNetTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -764 (-1.91 % of base) : 96424.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -624 (-12.62 % of base) : 256082.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
        -544 (-8.64 % of base) : 183312.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -536 (-9.18 % of base) : 182989.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -488 (-8.57 % of base) : 182981.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -472 (-8.87 % of base) : 183311.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -424 (-3.52 % of base) : 186714.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -348 (-3.26 % of base) : 41569.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
        -344 (-1.02 % of base) : 39370.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -344 (-4.67 % of base) : 146696.dasm - System.Xml.Schema.DatatypeImplementation:.cctor() (FullOpts)
        -332 (-9.21 % of base) : 135783.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -276 (-1.30 % of base) : 191015.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -272 (-1.28 % of base) : 3909.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -268 (-3.01 % of base) : 296179.dasm - Program:Main(System.String[]):int (FullOpts)
        -264 (-1.12 % of base) : 233526.dasm - ILCompiler.Crossgen2RootCommand:.ctor(System.String[]):this (FullOpts)
        -240 (-8.19 % of base) : 299623.dasm - System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadDocument(System.Xml.XmlReader):this (FullOpts)
        -232 (-2.82 % of base) : 154534.dasm - System.Xml.Serialization.XmlSerializationWriter:WriteTypedPrimitive(System.String,System.String,System.Object,ubyte):this (FullOpts)
        -228 (-7.88 % of base) : 182959.dasm - System.Data.DataSet:ReadXmlSchema(System.Xml.XmlReader,ubyte):this (FullOpts)
        -208 (-2.73 % of base) : 186713.dasm - System.Data.Common.SqlConvert:ChangeType2(System.Object,int,System.Type,System.IFormatProvider):System.Object (FullOpts)

Top method regressions (percentages):
          44 (31.43 % of base) : 246454.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          36 (31.03 % of base) : 212929.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
         100 (29.41 % of base) : 246248.dasm - System.Numerics.Tensors.TensorPrimitives+RoundToEvenOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
          28 (29.17 % of base) : 214946.dasm - Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
          32 (25.81 % of base) : 177465.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_FullyTrusted():ubyte (FullOpts)
          68 (25.76 % of base) : 274783.dasm - System.ComponentModel.Composition.MetadataViewGenerator:GenerateFieldAssignmentFromLocalValue(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.FieldBuilder) (FullOpts)
          52 (24.53 % of base) : 219319.dasm - System.Net.Http.HttpClientHandler:get_DangerousAcceptAnyServerCertificateValidator():System.Func`5[System.Net.Http.HttpRequestMessage,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Chain,int,ubyte] (FullOpts)
          84 (24.42 % of base) : 148176.dasm - System.Xml.Schema.XmlSchemaValidator:AddXsiAttributes(System.Collections.ArrayList):this (FullOpts)
          16 (23.53 % of base) : 287484.dasm - System.Reflection.TypeLoading.RoConstructor:GetMethodImplementationFlags():int:this (FullOpts)
          16 (23.53 % of base) : 283108.dasm - System.Reflection.TypeLoading.RoConstructor:GetMethodImplementationFlags():int:this (FullOpts)
          32 (22.86 % of base) : 218232.dasm - Microsoft.VisualBasic.FileIO.FileSystem:.cctor() (FullOpts)
          20 (22.73 % of base) : 172340.dasm - Microsoft.Build.Framework.ChangeWaves:set_ConversionState(int) (FullOpts)
          20 (22.73 % of base) : 294646.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.__Canon[],int,int) (FullOpts)
          44 (22.00 % of base) : 194687.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:IsBooleanLogicalNot(Microsoft.CodeAnalysis.Operations.IUnaryOperation):ubyte (FullOpts)
          44 (22.00 % of base) : 7750.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:IsBooleanLogicalNot(Microsoft.CodeAnalysis.Operations.IUnaryOperation):ubyte (FullOpts)
          76 (21.35 % of base) : 91137.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor:.ctor(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeField],Microsoft.CodeAnalysis.Location,ubyte):this (FullOpts)
          16 (21.05 % of base) : 287544.dasm - System.Reflection.TypeLoading.RoField:get_Attributes():int:this (FullOpts)
          16 (21.05 % of base) : 287748.dasm - System.Reflection.TypeLoading.RoMethod:get_CallingConvention():int:this (FullOpts)
          16 (21.05 % of base) : 287928.dasm - System.Reflection.TypeLoading.RoType:GetBaseTypeClassification():int:this (FullOpts)
          16 (21.05 % of base) : 287908.dasm - System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)

Top method improvements (percentages):
         -40 (-23.81 % of base) : 8462.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
         -40 (-23.81 % of base) : 195368.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 167367.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 210431.dasm - Microsoft.Build.Logging.LoggerDescription:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 92810.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.CustomEventAccessorSymbol:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 1433.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 188855.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 290146.dasm - System.Net.CommandStream:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 260605.dasm - System.Net.Mail.CheckCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 260610.dasm - System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 264403.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
          -8 (-20.00 % of base) : 245846.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 245790.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 245783.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 245842.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 245838.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 245879.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 245899.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
         -20 (-16.67 % of base) : 208567.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
         -20 (-16.67 % of base) : 291805.dasm - System.Reflection.Emit.PropertyBuilderImpl:GetConstantValue():System.Object: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: 379466540 (overridden on cmd)
Total bytes of diff: 379531776 (overridden on cmd)
Total bytes of delta: 65236 (0.02 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         976 : 60709.dasm (4.95 % of base)
         904 : 465588.dasm (4.34 % of base)
         904 : 424735.dasm (17.67 % of base)
         888 : 106826.dasm (5.08 % of base)
         848 : 668764.dasm (4.31 % of base)
         844 : 424298.dasm (18.05 % of base)
         840 : 418618.dasm (12.56 % of base)
         824 : 426249.dasm (12.33 % of base)
         800 : 426259.dasm (23.26 % of base)
         728 : 179770.dasm (3.08 % of base)
         724 : 425642.dasm (20.88 % of base)
         680 : 422440.dasm (10.36 % of base)
         644 : 19206.dasm (4.24 % of base)
         628 : 342199.dasm (10.22 % of base)
         616 : 60987.dasm (5.54 % of base)
         608 : 422095.dasm (13.93 % of base)
         596 : 524160.dasm (5.76 % of base)
         588 : 426450.dasm (8.89 % of base)
         556 : 422524.dasm (10.09 % of base)
         556 : 426568.dasm (10.09 % of base)

Top file improvements (bytes):
        -684 : 423761.dasm (-9.63 % of base)
        -640 : 423713.dasm (-8.88 % of base)
        -640 : 415793.dasm (-8.88 % of base)
        -580 : 426511.dasm (-6.84 % of base)
        -580 : 415499.dasm (-8.05 % of base)
        -580 : 471619.dasm (-3.63 % of base)
        -572 : 422252.dasm (-6.75 % of base)
        -564 : 179764.dasm (-4.21 % of base)
        -432 : 719410.dasm (-3.46 % of base)
        -420 : 471593.dasm (-1.96 % of base)
        -400 : 192775.dasm (-3.52 % of base)
        -400 : 521150.dasm (-3.01 % of base)
        -376 : 27125.dasm (-4.65 % of base)
        -352 : 675220.dasm (-2.33 % of base)
        -352 : 360008.dasm (-2.64 % of base)
        -352 : 434035.dasm (-2.94 % of base)
        -348 : 372602.dasm (-2.42 % of base)
        -348 : 269893.dasm (-3.19 % of base)
        -336 : 696270.dasm (-2.04 % of base)
        -332 : 84543.dasm (-5.42 % of base)

100 total files with Code Size differences (60 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         976 (4.95 % of base) : 60709.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)
         904 (17.67 % of base) : 424735.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1+<>c__DisplayClass84_0[System.Half]:<ScalarSpanDestination_AllLengths>b__0(int):this (Tier1)
         904 (4.34 % of base) : 465588.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (Tier1)
         888 (5.08 % of base) : 106826.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:Bind(Microsoft.CSharp.RuntimeBinder.ICSharpBinder,Microsoft.CSharp.RuntimeBinder.RuntimeBinder,System.Dynamic.DynamicMetaObject[],System.Collections.Generic.IEnumerable`1[Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo],System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject (Tier1)
         848 (4.31 % of base) : 668764.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitBinaryLogicalOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (Tier1)
         844 (18.05 % of base) : 424298.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1+<>c__DisplayClass85_0[System.Half]:<ScalarSpanDestination_InPlace>b__0(int):this (Tier1)
         840 (12.56 % of base) : 418618.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Divide_TwoTensors>b__140_0(int):this (Tier1)
         824 (12.33 % of base) : 426249.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Divide_TwoTensors>b__140_0(int):this (Tier1)
         800 (23.26 % of base) : 426259.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<MaxMagnitude_Tensor_NanReturned>b__196_0(int):this (Tier1)
         728 (3.08 % of base) : 179770.dasm - Microsoft.Extensions.Options.Generators.Parser:GetValidatorTypes(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,Microsoft.CodeAnalysis.SemanticModel]]):System.Collections.Generic.IReadOnlyList`1[Microsoft.Extensions.Options.Generators.ValidatorType]:this (Tier1)
         724 (20.88 % of base) : 425642.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<MinMagnitude_Tensor_NanReturned>b__218_0(int):this (Tier1)
         680 (10.36 % of base) : 422440.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[System.Int128]:<Divide_TwoTensors>b__140_0(int):this (Tier1)
         644 (4.24 % of base) : 19206.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)
         628 (10.22 % of base) : 342199.dasm - System.Linq.Parallel.SortHelper`2[System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]],System.Linq.Parallel.Pair`2[int,int]]:MergeSortCooperatively():this (Tier1)
         616 (5.54 % of base) : 60987.dasm - Microsoft.Interop.VirtualMethodPointerStubGenerator:GenerateVirtualMethodTableSlotAssignments(System.Collections.Generic.IEnumerable`1[Microsoft.Interop.IncrementalMethodStubGenerationContext],System.String,System.Func`3[int,int,Microsoft.Interop.IMarshallingGeneratorResolver]):Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax (Tier1)
         608 (13.93 % of base) : 422095.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1+<>c__DisplayClass84_0[System.Int128]:<ScalarSpanDestination_AllLengths>b__0(int):this (Tier1)
         596 (5.76 % of base) : 524160.dasm - Xunit.Sdk.TypeUtility:ResolveGenericTypes(Xunit.Abstractions.IMethodInfo,System.Object[]):Xunit.Abstractions.ITypeInfo[] (Tier1)
         588 (8.89 % of base) : 426450.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[System.Int128]:<Divide_TwoTensors>b__140_0(int):this (Tier1)
         556 (10.09 % of base) : 422524.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[uint]:<Divide_TwoTensors>b__140_0(int):this (Tier1)
         556 (10.09 % of base) : 426568.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[uint]:<Divide_TwoTensors>b__140_0(int):this (Tier1)

Top method improvements (bytes):
        -684 (-9.63 % of base) : 423761.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|237_1[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,byref,ulong,byref,ulong) (Tier1)
        -640 (-8.88 % of base) : 423713.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized128|235_1[ulong,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ulong],System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ulong]](byref,ulong,byref,ulong) (Tier1)
        -640 (-8.88 % of base) : 415793.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized128|235_1[ulong,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ulong],System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ulong]](byref,ulong,byref,ulong) (Tier1)
        -580 (-6.84 % of base) : 426511.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized128|235_1[uint,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[uint],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[uint],uint]](byref,uint,byref,ulong) (Tier1)
        -580 (-8.05 % of base) : 415499.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized128|235_1[ulong,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ulong],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ulong],ulong]](byref,ulong,byref,ulong) (Tier1)
        -580 (-3.63 % of base) : 471619.dasm - System.Xml.Tests.TCXmlLang:TestXmlLang5():int:this (Tier1)
        -572 (-6.75 % of base) : 422252.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized128|235_1[uint,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[uint],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[uint],uint]](byref,uint,byref,ulong) (Tier1)
        -564 (-4.21 % of base) : 179764.dasm - Microsoft.Extensions.Options.Generators.SymbolLoader:TryLoad(Microsoft.CodeAnalysis.Compilation,byref):ubyte (Tier1)
        -432 (-3.46 % of base) : 719410.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1)
        -420 (-1.96 % of base) : 471593.dasm - System.Xml.Tests.TCNamespace:TestNamespace6():int:this (Tier1)
        -400 (-3.01 % of base) : 521150.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1)
        -400 (-3.52 % of base) : 192775.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
        -376 (-4.65 % of base) : 27125.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Instrumented Tier1)
        -352 (-2.33 % of base) : 675220.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharLoop|26(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
        -352 (-2.64 % of base) : 360008.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
        -352 (-2.94 % of base) : 434035.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
        -348 (-3.19 % of base) : 269893.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -348 (-2.42 % of base) : 372602.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1)
        -336 (-2.04 % of base) : 696270.dasm - System.Text.RegularExpressions.Tests.RegexGroupTests:Groups(System.Text.RegularExpressions.Regex,System.Globalization.CultureInfo,System.String,System.String[]):this (Tier1)
        -332 (-5.42 % of base) : 84543.dasm - Microsoft.CodeAnalysis.SolutionCompilationState:AddDocumentsToMultipleProjects[System.__Canon](System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]],System.Func`3[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.ValueTuple`2[System.__Canon,System.__Canon]]):Microsoft.CodeAnalysis.SolutionCompilationState:this (Tier1)

Top method regressions (percentages):
          20 (45.45 % of base) : 89131.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
          20 (45.45 % of base) : 52997.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
          96 (31.17 % of base) : 287402.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          80 (29.85 % of base) : 280182.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          80 (29.85 % of base) : 280409.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          16 (28.57 % of base) : 92615.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsTypeDeclaration(ushort):ubyte (Tier1)
          84 (27.63 % of base) : 100160.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 100166.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 100152.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 100176.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 100179.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 100165.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 100177.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 100157.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 100174.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 100178.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          12 (27.27 % of base) : 176464.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsStartOfPropertyBody(ushort):ubyte (Tier1)
          20 (26.32 % of base) : 549780.dasm - Interop+Crypto:EvpSha3_256():long (Tier1)
          20 (26.32 % of base) : 567208.dasm - Interop+Crypto:EvpShake128():long (Tier1)
          20 (26.32 % of base) : 563911.dasm - Interop+Crypto:EvpShake256():long (Tier1)

Top method improvements (percentages):
         -68 (-36.96 % of base) : 271805.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -68 (-36.96 % of base) : 326724.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -68 (-36.96 % of base) : 315834.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -12 (-30.00 % of base) : 580251.dasm - System.Text.DecoderReplacementFallbackBuffer:get_Remaining():int:this (Tier1)
         -12 (-30.00 % of base) : 580110.dasm - System.Text.EncoderReplacementFallbackBuffer:get_Remaining():int:this (Tier1)
         -52 (-25.00 % of base) : 26012.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Instrumented Tier1)
         -44 (-23.40 % of base) : 444867.dasm - MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
        -104 (-22.81 % of base) : 66371.dasm - Microsoft.Interop.UnitTests.Verifiers.CSharpSourceGeneratorVerifier`1+Test[System.__Canon]:CreateCompilationWithAnalyzers(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.AnalyzerOptions,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:this (Tier1)
        -108 (-22.50 % of base) : 615028.dasm - System.Text.Json.Serialization.Converters.ISetOfTConverter`2[System.__Canon,System.__Canon]:ConfigureJsonTypeInfo(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions):this (Tier1)
         -88 (-21.36 % of base) : 56464.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols[System.__Canon](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
         -88 (-21.36 % of base) : 178057.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols[System.__Canon](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
          -8 (-20.00 % of base) : 419835.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Tier1)
          -8 (-20.00 % of base) : 419939.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
          -8 (-20.00 % of base) : 420858.dasm - System.Int16:Max(short,short):short (Instrumented Tier1)
          -8 (-20.00 % of base) : 420735.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)
          -8 (-20.00 % of base) : 420847.dasm - System.Int16:Min(short,short):short (Tier1)
          -8 (-20.00 % of base) : 420859.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (Tier1)
          -8 (-20.00 % of base) : 420849.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
          -8 (-20.00 % of base) : 419954.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (Tier1)
          -8 (-20.00 % of base) : 420445.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte: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: 161433920 (overridden on cmd)
Total bytes of diff: 161961312 (overridden on cmd)
Total bytes of delta: 527392 (0.33 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1796 : 60795.dasm (2.04 % of base)
         828 : 60974.dasm (0.96 % of base)
         828 : 60636.dasm (0.96 % of base)
         764 : 5917.dasm (5.32 % of base)
         620 : 60819.dasm (1.63 % of base)
         608 : 212155.dasm (7.63 % of base)
         600 : 175568.dasm (7.69 % of base)
         596 : 60464.dasm (1.53 % of base)
         588 : 60398.dasm (1.68 % of base)
         580 : 174569.dasm (3.34 % of base)
         544 : 177862.dasm (4.96 % of base)
         520 : 206355.dasm (7.15 % of base)
         520 : 210983.dasm (7.15 % of base)
         440 : 49460.dasm (3.14 % of base)
         416 : 113686.dasm (3.01 % of base)
         412 : 94294.dasm (3.21 % of base)
         392 : 64191.dasm (0.30 % of base)
         384 : 44232.dasm (2.78 % of base)
         372 : 240542.dasm (0.39 % of base)
         360 : 60966.dasm (1.16 % of base)

Top file improvements (bytes):
       -1220 : 251407.dasm (-2.17 % of base)
       -1172 : 204012.dasm (-4.56 % of base)
       -1116 : 237834.dasm (-1.99 % of base)
       -1116 : 251693.dasm (-1.99 % of base)
       -1116 : 234596.dasm (-1.99 % of base)
       -1116 : 245914.dasm (-1.99 % of base)
       -1116 : 246310.dasm (-1.99 % of base)
       -1116 : 251209.dasm (-1.99 % of base)
       -1116 : 237878.dasm (-1.99 % of base)
       -1116 : 240454.dasm (-1.99 % of base)
       -1116 : 252113.dasm (-1.99 % of base)
       -1112 : 235686.dasm (-1.98 % of base)
       -1112 : 240602.dasm (-1.98 % of base)
        -936 : 252051.dasm (-1.73 % of base)
        -880 : 183480.dasm (-7.42 % of base)
        -740 : 19086.dasm (-1.38 % of base)
        -656 : 167181.dasm (-3.94 % of base)
        -624 : 167412.dasm (-4.30 % of base)
        -624 : 148658.dasm (-12.62 % of base)
        -568 : 91502.dasm (-9.03 % of base)

87 total files with Code Size differences (44 improved, 43 regressed), 20 unchanged.

Top method regressions (bytes):
        1796 (2.04 % of base) : 60795.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<OrObject_TestData>d__90:MoveNext():ubyte:this (FullOpts)
         828 (0.96 % of base) : 60636.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<AndObject_TestData>d__13:MoveNext():ubyte:this (FullOpts)
         828 (0.96 % of base) : 60974.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<XorObject_TestData>d__116:MoveNext():ubyte:this (FullOpts)
         764 (5.32 % of base) : 5917.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         620 (1.63 % of base) : 60819.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<SubtractObject_TestData>d__109:MoveNext():ubyte:this (FullOpts)
         608 (7.63 % of base) : 212155.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[short](short,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         600 (7.69 % of base) : 175568.dasm - System.Xml.Tests.TCReadToDescendant:AddChildren():this (FullOpts)
         596 (1.53 % of base) : 60464.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<MultiplyObject_Idempotent_TestData>d__60:MoveNext():ubyte:this (FullOpts)
         588 (1.68 % of base) : 60398.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<DivideObject_TestData>d__27:MoveNext():ubyte:this (FullOpts)
         580 (3.34 % of base) : 174569.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (FullOpts)
         544 (4.96 % of base) : 177862.dasm - System.Reflection.Emit.Tests.CustomAttributeBuilderTests:Ctor_AllPrimitives() (FullOpts)
         520 (7.15 % of base) : 210983.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[byte](byte,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         520 (7.15 % of base) : 206355.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[int](int,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         440 (3.14 % of base) : 49460.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         416 (3.01 % of base) : 113686.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.generics.derived.ovr003.ovr003.Program:MainMethod():int (FullOpts)
         412 (3.21 % of base) : 94294.dasm - System.Data.Tests.DataTableTest2:GetChanges_ByDataRowState():this (FullOpts)
         392 (0.30 % of base) : 64191.dasm - System.CodeDom.Compiler.Tests.CSharpCodeGeneratorTests+<GenerateCodeFromType_TestData>d__25:MoveNext():ubyte:this (FullOpts)
         384 (2.78 % of base) : 44232.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         372 (0.39 % of base) : 240542.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:.cctor() (FullOpts)
         360 (1.16 % of base) : 60966.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<IntDivideObject_TestData>d__42:MoveNext():ubyte:this (FullOpts)

Top method improvements (bytes):
       -1220 (-2.17 % of base) : 251407.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1172 (-4.56 % of base) : 204012.dasm - System.Tests.ArrayTests+<Sort_Array_Array_Generic_TestData>d__173:MoveNext():ubyte:this (FullOpts)
       -1116 (-1.99 % of base) : 251693.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1116 (-1.99 % of base) : 240454.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1116 (-1.99 % of base) : 234596.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Default+ExtensionDataTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1116 (-1.99 % of base) : 237834.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Metadata+ExtensionDataTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1116 (-1.99 % of base) : 237878.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1116 (-1.99 % of base) : 245914.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Metadata+PropertyNameTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1116 (-1.99 % of base) : 246310.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Default+PropertyVisibilityTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1116 (-1.99 % of base) : 252113.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1116 (-1.99 % of base) : 251209.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1112 (-1.98 % of base) : 240602.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
       -1112 (-1.98 % of base) : 235686.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Metadata+PropertyVisibilityTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -936 (-1.73 % of base) : 252051.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -880 (-7.42 % of base) : 183480.dasm - System.Reflection.Tests.FieldTests:TestLiteralFields1() (FullOpts)
        -740 (-1.38 % of base) : 19086.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (FullOpts)
        -656 (-3.94 % of base) : 167181.dasm - XPathTests.FunctionalTests.Location.Paths.AxesCombinationsTests:AxesCombinationsTest291(int) (FullOpts)
        -624 (-12.62 % of base) : 148658.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
        -624 (-4.30 % of base) : 167412.dasm - XPathTests.FunctionalTests.Location.Paths.AxesTests:AxesTest1206(int) (FullOpts)
        -568 (-9.03 % of base) : 91502.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          36 (34.62 % of base) : 40062.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          48 (30.77 % of base) : 35267.dasm - Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)
          28 (30.43 % of base) : 112988.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
          24 (30.00 % of base) : 162923.dasm - System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b__17_0():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
          80 (29.85 % of base) : 102442.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          80 (29.85 % of base) : 101536.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 113925.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.nested01b.nested01b.Test:Bar2(System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 113572.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.nested05c.nested05c.Test:Bar1(System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 113573.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.nested05c.nested05c.Test:Bar3(System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 108536.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04a.order04a.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 108535.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04a.order04a.Test:Bar2():System.Object (FullOpts)
          20 (29.41 % of base) : 106491.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04b.order04b.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 106490.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04b.order04b.Test:Bar2():System.Object (FullOpts)
          20 (29.41 % of base) : 111216.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05a.order05a.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 111215.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05a.order05a.Test:Bar3():System.Object (FullOpts)
          20 (29.41 % of base) : 102792.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05b.order05b.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 102791.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05b.order05b.Test:Bar3():System.Object (FullOpts)
          48 (27.27 % of base) : 151527.dasm - System.Net.Primitives.Functional.Tests.IPAddressTest:GetValidIPAddresses():System.Collections.Generic.IEnumerable`1[System.Object[]] (FullOpts)
          44 (26.83 % of base) : 176220.dasm - System.Xml.Tests.TCXMLIntegrityBase:HelperThisNameNamespace():int:this (FullOpts)
          52 (26.53 % of base) : 225432.dasm - System.Security.Cryptography.Tests.OidCollectionTests:CopyTo_NonGeneric_Throws():this (FullOpts)

Top method improvements (percentages):
         -40 (-23.81 % of base) : 11184.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 149740.dasm - System.Net.Mail.CheckCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 149725.dasm - System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 151998.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
          -8 (-20.00 % of base) : 159105.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 159487.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 159546.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 159058.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 159096.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
          -8 (-20.00 % of base) : 159086.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
          -8 (-20.00 % of base) : 159028.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
          -8 (-20.00 % of base) : 159043.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
         -40 (-17.86 % of base) : 13735.dasm - Microsoft.CodeAnalysis.Shared.Collections.IntervalTree`1+Tests`1[Microsoft.CodeAnalysis.Text.TextSpan,Microsoft.CodeAnalysis.Shared.Collections.TextSpanIntervalIntrospector]:.cctor() (FullOpts)
        -332 (-17.18 % of base) : 99601.dasm - BasicEventSourceTests.TestUtilities:CheckNoEventSourcesRunning(System.String) (FullOpts)
        -120 (-17.05 % of base) : 21247.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
         -36 (-16.36 % of base) : 176268.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
         -12 (-15.79 % of base) : 48033.dasm - Microsoft.CodeAnalysis.Options.Option2`1[int]:get_DefaultValue():int:this (FullOpts)
         -12 (-15.79 % of base) : 48209.dasm - Microsoft.CodeAnalysis.Options.Option2`1[ubyte]:get_DefaultValue():ubyte:this (FullOpts)
         -12 (-15.79 % of base) : 235469.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Metadata+PropertyVisibilityTestsContext_Metadata+<>c:<StructWithInitOnlyPropertyPropInit>b__991_0(System.Object):int:this (FullOpts)
         -12 (-15.79 % of base) : 235477.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata+<>c:<EmployeeStructPropInit>b__668_4(System.Object):System.Collections.Immutable.ImmutableArray`1[System.Text.Json.Serialization.Tests.ReferenceHandlerTests+RoleStruct]: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: 15705696 (overridden on cmd)
Total bytes of diff: 15713496 (overridden on cmd)
Total bytes of delta: 7800 (0.05 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         528 : 1261.dasm (11.68 % of base)
         420 : 20499.dasm (2.95 % of base)
         408 : 12728.dasm (7.57 % of base)
         388 : 12729.dasm (7.23 % of base)
         300 : 1494.dasm (15.96 % of base)
         284 : 1072.dasm (5.33 % of base)
         264 : 14258.dasm (2.99 % of base)
         232 : 18699.dasm (8.59 % of base)
         228 : 12730.dasm (6.96 % of base)
         208 : 31829.dasm (1.98 % of base)
         180 : 2498.dasm (2.25 % of base)
         180 : 13587.dasm (4.81 % of base)
         176 : 19150.dasm (3.11 % of base)
         176 : 21205.dasm (2.51 % of base)
         172 : 8004.dasm (1.01 % of base)
         168 : 12435.dasm (4.81 % of base)
         168 : 1529.dasm (10.66 % of base)
         156 : 19692.dasm (4.12 % of base)
         144 : 1380.dasm (2.51 % of base)
         132 : 5386.dasm (2.28 % of base)

Top file improvements (bytes):
        -924 : 30655.dasm (-0.51 % of base)
        -760 : 7046.dasm (-10.05 % of base)
        -748 : 4539.dasm (-1.99 % of base)
        -660 : 29807.dasm (-8.25 % of base)
        -632 : 12891.dasm (-4.00 % of base)
        -624 : 15516.dasm (-12.62 % of base)
        -352 : 15907.dasm (-1.06 % of base)
        -292 : 2642.dasm (-3.06 % of base)
        -264 : 30934.dasm (-3.10 % of base)
        -264 : 30090.dasm (-1.77 % of base)
        -256 : 25730.dasm (-2.43 % of base)
        -252 : 29667.dasm (-2.39 % of base)
        -244 : 32863.dasm (-4.57 % of base)
        -224 : 3262.dasm (-4.69 % of base)
        -204 : 18465.dasm (-1.60 % of base)
        -180 : 1786.dasm (-8.06 % of base)
        -164 : 31998.dasm (-11.61 % of base)
        -160 : 30308.dasm (-4.49 % of base)
        -156 : 1239.dasm (-0.90 % of base)
        -152 : 29752.dasm (-0.86 % of base)

91 total files with Code Size differences (47 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
         528 (11.68 % of base) : 1261.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CapsuleTriangleTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         420 (2.95 % of base) : 20499.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         408 (7.57 % of base) : 12728.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessBorderColumn(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
         388 (7.23 % of base) : 12729.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessBorderRow(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
         300 (15.96 % of base) : 1494.dasm - BepuPhysics.Constraints.TwoBodyTypeProcessor`7[BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.Constraints.Contact.Contact1Functions,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose]:Solve(byref,BepuPhysics.Bodies,float,float,int,int):this (FullOpts)
         284 (5.33 % of base) : 1072.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         264 (2.99 % of base) : 14258.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
         232 (8.59 % of base) : 18699.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         228 (6.96 % of base) : 12730.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessCornerTile(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
         208 (1.98 % of base) : 31829.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         180 (2.25 % of base) : 2498.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
         180 (4.81 % of base) : 13587.dasm - Microsoft.ML.Transforms.NormalizingTransformer:Train(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.IDataView,Microsoft.ML.Transforms.NormalizingEstimator+ColumnOptionsBase[]):Microsoft.ML.Transforms.NormalizingTransformer (FullOpts)
         176 (3.11 % of base) : 19150.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         176 (2.51 % of base) : 21205.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator:GetTypeAndRefKind(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator+TypeAndRefKind:this (FullOpts)
         172 (1.01 % of base) : 8004.dasm - FSharp.Compiler.CheckExpressions:TcPat(FSharp.Compiler.NameResolution+WarnOnUpperFlag,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PartialValReprInfo],FSharp.Compiler.TypedTree+ValInline,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+ArgAndRetAttribs,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],ubyte,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.Syntax.SynPat):System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+TcPatPhase2Input,FSharp.Compiler.PatternMatchCompilation+Pattern],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
         168 (10.66 % of base) : 1529.dasm - BepuPhysics.Constraints.OneBodyTypeProcessor`5[BepuPhysics.Constraints.Contact.Contact1OneBodyPrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.Constraints.Contact.Contact1OneBodyFunctions,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose]:Solve(byref,BepuPhysics.Bodies,float,float,int,int):this (FullOpts)
         168 (4.81 % of base) : 12435.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Bottom(byref,int,System.ReadOnlySpan`1[SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32]]):SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32] (FullOpts)
         156 (4.12 % of base) : 19692.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|199_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (FullOpts)
         144 (2.51 % of base) : 1380.dasm - BepuPhysics.IslandAwakener:PrepareJobs(byref,ubyte,int):System.ValueTuple`2[int,int]:this (FullOpts)
         132 (2.28 % of base) : 5386.dasm - FSharp.Compiler.TypedTreePickle:unpickleObjWithDanglingCcus[System.__Canon](System.String,FSharp.Compiler.AbstractIL.IL+ILScopeRef,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.IL+ILModuleDef],Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],FSharp.Compiler.IO.ReadOnlyByteMemory):FSharp.Compiler.TypedTreePickle+PickledDataWithReferences`1[System.__Canon] (FullOpts)

Top method improvements (bytes):
        -924 (-0.51 % of base) : 30655.dasm - System.Management.Automation.Runspaces.TypeTable:Process_Types_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
        -760 (-10.05 % of base) : 7046.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.AsciiLexer:.cctor() (FullOpts)
        -748 (-1.99 % of base) : 4539.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Lexer:.cctor() (FullOpts)
        -660 (-8.25 % of base) : 29807.dasm - System.Management.Automation.Runspaces.PSSnapInHelpers:InitializeCoreCmdletsAndProviders(System.Management.Automation.PSSnapInInfo,byref,byref,System.String) (FullOpts)
        -632 (-4.00 % of base) : 12891.dasm - Microsoft.ML.Data.Conversion.Conversions:.ctor():this (FullOpts)
        -624 (-12.62 % of base) : 15516.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
        -352 (-1.06 % of base) : 15907.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -292 (-3.06 % of base) : 2642.dasm - FSharp.Compiler.CompilerOptions:internalFlags(FSharp.Compiler.CompilerConfig+TcConfigBuilder):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOption] (FullOpts)
        -264 (-1.77 % of base) : 30090.dasm - System.Management.Automation.Language.CachedReflectionInfo:.cctor() (FullOpts)
        -264 (-3.10 % of base) : 30934.dasm - System.Management.Automation.Runspaces.TypeTable:Process_TypesV3_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
        -256 (-2.43 % of base) : 25730.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
        -252 (-2.39 % of base) : 29667.dasm - System.Management.Automation.Runspaces.InitialSessionState:.cctor() (FullOpts)
        -244 (-4.57 % of base) : 32863.dasm - System.Management.Automation.ReflectionParameterBinder:.cctor() (FullOpts)
        -224 (-4.69 % of base) : 3262.dasm - Microsoft.Build.Shared.FrameworkLocationHelper:.cctor() (FullOpts)
        -204 (-1.60 % of base) : 18465.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -180 (-8.06 % of base) : 1786.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -164 (-11.61 % of base) : 31998.dasm - System.Management.Automation.PSObject:GetPropertyCollection(int,System.Management.Automation.Runspaces.TypeTable):System.Collections.ObjectModel.Collection`1[System.Management.Automation.CollectionEntry`1[System.Management.Automation.PSPropertyInfo]] (FullOpts)
        -160 (-4.49 % of base) : 30308.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseManager:ProcessBuiltin(System.Management.Automation.Runspaces.PSSnapInTypeAndFormatErrors,Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBase,Microsoft.PowerShell.Commands.Internal.Format.PSPropertyExpressionFactory,System.Collections.Generic.List`1[Microsoft.PowerShell.Commands.Internal.Format.XmlLoaderLoggerEntry],byref):ubyte (FullOpts)
        -156 (-0.90 % of base) : 1239.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -152 (-0.86 % of base) : 29752.dasm - System.Management.Automation.Runspaces.InitialSessionState:get_BuiltInAliases():System.Management.Automation.Runspaces.SessionStateAliasEntry[] (FullOpts)

Top method regressions (percentages):
          52 (41.94 % of base) : 3263.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)
          36 (37.50 % of base) : 32490.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
          40 (25.64 % of base) : 11243.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
          32 (25.00 % of base) : 11338.dasm - BenchmarkDotNet.Characteristics.CharacteristicPresenter:.cctor() (FullOpts)
          32 (20.51 % of base) : 2467.dasm - <StartupCode$FSharp-Compiler-Service>.$Internal.Utilities.Library.Extras:.cctor() (FullOpts)
          32 (20.51 % of base) : 5410.dasm - FSharp.Compiler.AbstractIL.IL+ILAlignment:.cctor() (FullOpts)
          32 (20.51 % of base) : 2488.dasm - FSharp.Compiler.CompilerConfig+CompilerTarget:.cctor() (FullOpts)
          32 (20.51 % of base) : 4622.dasm - FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity:.cctor() (FullOpts)
          32 (20.51 % of base) : 8736.dasm - FSharp.Compiler.Infos+CallerInfo:.cctor() (FullOpts)
          32 (20.51 % of base) : 10160.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefType:.cctor() (FullOpts)
          32 (20.51 % of base) : 6868.dasm - FSharp.Compiler.Syntax.DebugPointAtSequential:.cctor() (FullOpts)
          32 (20.51 % of base) : 5712.dasm - FSharp.Compiler.TypedTree+TyconFSharpObjModelKind:.cctor() (FullOpts)
          32 (20.51 % of base) : 7923.dasm - FSharp.Compiler.TypedTree+ValBaseOrThisInfo:.cctor() (FullOpts)
          32 (20.51 % of base) : 8466.dasm - FSharp.Compiler.TypedTreeOps+Mutates:.cctor() (FullOpts)
          32 (20.51 % of base) : 28433.dasm - Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)
          32 (20.51 % of base) : 25656.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:.cctor() (FullOpts)
          32 (20.51 % of base) : 31868.dasm - System.Management.Automation.Interpreter.ThrowInstruction:.cctor() (FullOpts)
          32 (20.00 % of base) : 10612.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefExpr:.cctor() (FullOpts)
          32 (20.00 % of base) : 5732.dasm - FSharp.Compiler.TypedTree+ValUseFlag:.cctor() (FullOpts)
          52 (20.00 % of base) : 28113.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:RewriteForEachStatementAsFor(Microsoft.CodeAnalysis.CSharp.BoundForEachStatement,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (FullOpts)

Top method improvements (percentages):
         -36 (-21.95 % of base) : 27536.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
         -12 (-14.29 % of base) : 14038.dasm - Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
         -12 (-14.29 % of base) : 13459.dasm - Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]:<GetValueGetter>b__0(byref):this (FullOpts)
         -12 (-14.29 % of base) : 14032.dasm - Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]:<GetMappingGetter>b__0(byref):this (FullOpts)
        -128 (-13.50 % of base) : 30708.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -12 (-13.04 % of base) : 15676.dasm - Microsoft.ML.Transforms.Text.TextNormalizingTransformer+Mapper+<>c__DisplayClass9_0:<MakeGetterOne>b__0(byref):this (FullOpts)
        -624 (-12.62 % of base) : 15516.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
         -24 (-12.50 % of base) : 18901.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:AddToConcurrentMap(System.Collections.Concurrent.ConcurrentDictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]],System.ReadOnlyMemory`1[ushort]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (FullOpts)
        -164 (-11.61 % of base) : 31998.dasm - System.Management.Automation.PSObject:GetPropertyCollection(int,System.Management.Automation.Runspaces.TypeTable):System.Collections.ObjectModel.Collection`1[System.Management.Automation.CollectionEntry`1[System.Management.Automation.PSPropertyInfo]] (FullOpts)
         -60 (-11.45 % of base) : 12623.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifNumber:TrySetValue(System.Object):ubyte:this (FullOpts)
         -16 (-11.43 % of base) : 9273.dasm - Microsoft.FSharp.Collections.Internal+IEnumerator+map2@163[System.__Canon,System.__Canon,System.__Canon]:Dispose():this (FullOpts)
         -40 (-11.24 % of base) : 2870.dasm - Internal.Utilities.FSharpEnvironment+probePathForDotnetHost@420-1:Invoke(System.String):ubyte:this (FullOpts)
         -36 (-10.71 % of base) : 14255.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Options:set_StopWordsRemoverOptions(Microsoft.ML.Transforms.Text.IStopWordsRemoverOptions):this (FullOpts)
        -760 (-10.05 % of base) : 7046.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.AsciiLexer:.cctor() (FullOpts)
         -44 (-10.00 % of base) : 31725.dasm - System.Management.Automation.Language.PSPipeWriterBinder:.ctor():this (FullOpts)
         -12 (-10.00 % of base) : 32928.dasm - System.Management.Automation.ReflectionParameterBinder+<>c:<.cctor>b__4_23(System.Object,System.Object):this (FullOpts)
        -144 (-9.78 % of base) : 32223.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
         -28 (-9.72 % of base) : 12628.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifShort:TrySetValue(System.Object):ubyte:this (FullOpts)
         -20 (-9.26 % of base) : 31875.dasm - System.Management.Automation.Interpreter.HybridReferenceDictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this (FullOpts)
         -44 (-9.09 % of base) : 13280.dasm - Microsoft.ML.Data.BinaryClassifierScorer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.BinaryClassifierScorer+Arguments,Microsoft.ML.IDataView,Microsoft.ML.Data.ISchemaBoundMapper,Microsoft.ML.Data.RoleMappedSchema):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: 2971464 (overridden on cmd)
Total bytes of diff: 2964932 (overridden on cmd)
Total bytes of delta: -6532 (-0.22 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         308 : 17549.dasm (4.62 % of base)
         308 : 4459.dasm (4.62 % of base)
         268 : 1362.dasm (5.89 % of base)
         220 : 5830.dasm (2.57 % of base)
         128 : 2088.dasm (10.46 % of base)
         124 : 15082.dasm (6.86 % of base)
         124 : 5824.dasm (6.87 % of base)
          76 : 15084.dasm (5.62 % of base)
          76 : 5826.dasm (5.65 % of base)
          60 : 15780.dasm (4.20 % of base)
          60 : 18515.dasm (4.20 % of base)
          52 : 1671.dasm (7.83 % of base)
          48 : 17959.dasm (5.77 % of base)
          44 : 501.dasm (6.15 % of base)
          40 : 15794.dasm (5.21 % of base)
          40 : 18528.dasm (5.21 % of base)
          40 : 6933.dasm (4.10 % of base)
          40 : 16228.dasm (7.19 % of base)
          40 : 1842.dasm (6.45 % of base)
          40 : 4474.dasm (5.99 % of base)

Top file improvements (bytes):
        -368 : 18531.dasm (-4.38 % of base)
        -368 : 15793.dasm (-4.38 % of base)
        -152 : 15944.dasm (-4.43 % of base)
        -152 : 18775.dasm (-4.43 % of base)
        -112 : 15943.dasm (-4.97 % of base)
        -112 : 18774.dasm (-4.97 % of base)
        -100 : 1548.dasm (-7.55 % of base)
         -96 : 15159.dasm (-8.30 % of base)
         -96 : 6671.dasm (-13.04 % of base)
         -96 : 6679.dasm (-13.04 % of base)
         -96 : 6410.dasm (-8.33 % of base)
         -96 : 6413.dasm (-3.38 % of base)
         -88 : 5123.dasm (-6.61 % of base)
         -84 : 7102.dasm (-13.21 % of base)
         -80 : 6665.dasm (-7.38 % of base)
         -72 : 5308.dasm (-5.08 % of base)
         -68 : 5319.dasm (-4.03 % of base)
         -64 : 15162.dasm (-1.33 % of base)
         -64 : 2480.dasm (-5.90 % of base)
         -64 : 5466.dasm (-1.33 % of base)

91 total files with Code Size differences (50 improved, 41 regressed), 20 unchanged.

Top method regressions (bytes):
         308 (4.62 % of base) : 17549.dasm - ReflectionTest+TestReflectionInvoke:Run() (FullOpts)
         308 (4.62 % of base) : 4459.dasm - ReflectionTest+TestReflectionInvoke:Run() (FullOpts)
         268 (5.89 % of base) : 1362.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         220 (2.57 % of base) : 5830.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         128 (10.46 % of base) : 2088.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
         124 (6.86 % of base) : 15082.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         124 (6.87 % of base) : 5824.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
          76 (5.62 % of base) : 15084.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          76 (5.65 % of base) : 5826.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          60 (4.20 % of base) : 15780.dasm - Generics+TestDelegateToCanonMethods:Run() (FullOpts)
          60 (4.20 % of base) : 18515.dasm - Generics+TestDelegateToCanonMethods:Run() (FullOpts)
          52 (7.83 % of base) : 1671.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,System.__Canon]:Add(System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,int,System.__Canon):this (FullOpts)
          48 (5.77 % of base) : 17959.dasm - System.Uri:ParseSchemeCheckImplicitFile(System.String,byref,byref,byref):int (FullOpts)
          44 (6.15 % of base) : 501.dasm - PInvokeTests.Program:TestStringBuilder() (FullOpts)
          40 (5.21 % of base) : 15794.dasm - Interfaces+TestVariantGenericDynamicStaticVirtualMethods:Run() (FullOpts)
          40 (5.21 % of base) : 18528.dasm - Interfaces+TestVariantGenericDynamicStaticVirtualMethods:Run() (FullOpts)
          40 (5.99 % of base) : 4474.dasm - ReflectionTest+TestStackTraces:Run() (FullOpts)
          40 (7.19 % of base) : 16228.dasm - System.IO.KeyParser:Parse(ushort[],System.TerminalFormatStrings,ubyte,ubyte,byref,int):System.ConsoleKeyInfo (FullOpts)
          40 (6.45 % of base) : 1842.dasm - System.Threading.SyncTable:AssignEntry(System.Object,ulong):int (FullOpts)
          40 (4.10 % of base) : 6933.dasm - System.Type:GetEnumData(byref,byref):this (FullOpts)

Top method improvements (bytes):
        -368 (-4.38 % of base) : 18531.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
        -368 (-4.38 % of base) : 15793.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
        -152 (-4.43 % of base) : 15944.dasm - Generics+TestFieldAccess:TestStaticFields() (FullOpts)
        -152 (-4.43 % of base) : 18775.dasm - Generics+TestFieldAccess:TestStaticFields() (FullOpts)
        -112 (-4.97 % of base) : 15943.dasm - Generics+TestFieldAccess:TestInstanceFields() (FullOpts)
        -112 (-4.97 % of base) : 18774.dasm - Generics+TestFieldAccess:TestInstanceFields() (FullOpts)
        -100 (-7.55 % of base) : 1548.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetStaticRuntimeMethodHandleComponents(System.RuntimeMethodHandle,byref,byref,byref):ubyte:this (FullOpts)
         -96 (-8.30 % of base) : 15159.dasm - System.Enum:ToObject(System.Type,System.Object):System.Object (FullOpts)
         -96 (-8.33 % of base) : 6410.dasm - System.Enum:ToObject(System.Type,System.Object):System.Object (FullOpts)
         -96 (-13.04 % of base) : 6679.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Checked:Convert(System.Object):System.Object:this (FullOpts)
         -96 (-13.04 % of base) : 6671.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Unchecked:Convert(System.Object):System.Object:this (FullOpts)
         -96 (-3.38 % of base) : 6413.dasm - System.Reflection.CustomAttributeTypedArgument:ToString(ubyte):System.String:this (FullOpts)
         -88 (-6.61 % of base) : 5123.dasm - System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:GetDefaultMemberName():System.String:this (FullOpts)
         -84 (-13.21 % of base) : 7102.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -80 (-7.38 % of base) : 6665.dasm - System.Linq.Expressions.Interpreter.CastReferenceToEnumInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
         -72 (-5.08 % of base) : 5308.dasm - System.Reflection.Runtime.CustomAttributes.RuntimeCustomAttributeData:ToString():System.String:this (FullOpts)
         -68 (-4.03 % of base) : 5319.dasm - System.Reflection.CustomAttributeData:ToString():System.String:this (FullOpts)
         -64 (-5.90 % of base) : 2480.dasm - Internal.TypeSystem.TypeSystemContext+RuntimeMethodKey+RuntimeMethodKeyHashtable:CompareValueToValue(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MethodDesc):ubyte:this (FullOpts)
         -64 (-1.33 % of base) : 15162.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
         -64 (-1.33 % of base) : 5466.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)

Top method regressions (percentages):
          16 (17.39 % of base) : 4906.dasm - System.Threading.ManualResetEventSlim:get_WaitHandle():System.Threading.WaitHandle:this (FullOpts)
          12 (15.00 % of base) : 2556.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
          12 (14.29 % of base) : 3695.dasm - System.Exception:CaptureDispatchState():System.Exception+DispatchState:this (FullOpts)
          32 (14.04 % of base) : 2139.dasm - System.Threading.Lock:TryInitializeStatics():ubyte (FullOpts)
          20 (13.89 % of base) : 7346.dasm - System.Dynamic.Utils.TypeExtensions:MatchesArgumentTypes(System.Reflection.MethodInfo,System.Type[]):ubyte (FullOpts)
          12 (13.64 % of base) : 4652.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
           8 (13.33 % of base) : 3543.dasm - System.Lazy`1[System.__Canon]:PublicationOnlyWaitForOtherThreadToPublish():this (FullOpts)
          12 (13.04 % of base) : 5367.dasm - System.Linq.Expressions.ParameterExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (12.50 % of base) : 13144.dasm - System.Text.Ascii:CountNumberOfLeadingAsciiBytesFromUInt32WithSomeNonAsciiData(uint):uint (FullOpts)
          24 (12.50 % of base) : 6935.dasm - System.Type:ImplementInterface(System.Type):ubyte:this (FullOpts)
          12 (12.00 % of base) : 2053.dasm - System.Collections.ObjectModel.ReadOnlyCollection`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this (FullOpts)
           8 (11.76 % of base) : 4574.dasm - System.Linq.Expressions.ConditionalExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 5222.dasm - System.Linq.Expressions.DefaultExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 5973.dasm - System.Linq.Expressions.InvocationExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 6302.dasm - System.Linq.Expressions.LabelExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 4580.dasm - System.Linq.Expressions.MemberExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 6340.dasm - System.Linq.Expressions.SwitchExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
          12 (11.11 % of base) : 1625.dasm - System.Collections.HashHelpers:ExpandPrime(int):int (FullOpts)
           8 (11.11 % of base) : 7829.dasm - System.Threading.CancellationTokenSource+Registrations:WaitForCallbackToComplete(long):this (FullOpts)
          12 (10.71 % of base) : 6126.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[System.Threading.Tasks.VoidTaskResult,ReflectionTest+TestCompilerGeneratedCode+<ReflectionInAsync>d__6]:.ctor():this (FullOpts)

Top method improvements (percentages):
          -8 (-14.29 % of base) : 534.dasm - PInvokeTests.Program+Callback2:InvokeOpenStaticThunk():int:this (FullOpts)
          -8 (-14.29 % of base) : 539.dasm - System.Action:InvokeOpenStaticThunk():this (FullOpts)
          -8 (-14.29 % of base) : 627.dasm - System.Func`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
          -8 (-14.29 % of base) : 15657.dasm - System.Func`1[System.ValueTuple`2[int,System.__Canon]]:InvokeOpenStaticThunk():System.ValueTuple`2[int,System.__Canon]:this (FullOpts)
          -8 (-14.29 % of base) : 4784.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
         -20 (-13.51 % of base) : 2945.dasm - System.IO.StreamWriter:Dispose(ubyte):this (FullOpts)
          -8 (-13.33 % of base) : 15438.dasm - System.Random+Net5CompatDerivedImpl:Next():int:this (FullOpts)
         -84 (-13.21 % of base) : 7102.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -96 (-13.04 % of base) : 6679.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Checked:Convert(System.Object):System.Object:this (FullOpts)
         -96 (-13.04 % of base) : 6671.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Unchecked:Convert(System.Object):System.Object:this (FullOpts)
         -16 (-11.11 % of base) : 15703.dasm - System.IO.Strategies.DerivedFileStreamStrategy:get_IsClosed():ubyte:this (FullOpts)
          -8 (-11.11 % of base) : 1198.dasm - System.Text.DecoderFallbackBuffer:Reset():this (FullOpts)
         -40 (-10.99 % of base) : 17764.dasm - System.Diagnostics.Process:CreateEnvp(System.Diagnostics.ProcessStartInfo):System.String[] (FullOpts)
         -12 (-10.71 % of base) : 3338.dasm - Internal.TypeSystem.CastingHelper:IsMethodSignatureCompatibleWith(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte (FullOpts)
         -60 (-10.42 % of base) : 15721.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Read(ubyte[],int,int):int:this (FullOpts)
         -60 (-10.42 % of base) : 15711.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Write(ubyte[],int,int):this (FullOpts)
         -20 (-10.20 % of base) : 2560.dasm - Internal.TypeSystem.MethodForInstantiatedType:ToString():System.String:this (FullOpts)
         -12 (-10.00 % of base) : 2118.dasm - Internal.TypeSystem.InstantiatedMethod:get_NameAndSignature():Internal.Runtime.CompilerServices.MethodNameAndSignature:this (FullOpts)
         -12 (-10.00 % of base) : 2553.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_NameAndSignature():Internal.Runtime.CompilerServices.MethodNameAndSignature:this (FullOpts)
          -4 (-10.00 % of base) : 8195.dasm - System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)



linux x64

Diffs are based on 2,542,303 contexts (988,245 MinOpts, 1,554,058 FullOpts).

MISSED contexts: base: 177 (0.01%), diff: 1,098 (0.04%)

Overall (+2,009,297 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.linux.x64.checked.mch 12,075,262 +5,093 -2.47%
benchmarks.run_pgo.linux.x64.checked.mch 67,899,843 +15,032 -1.75%
benchmarks.run_tiered.linux.x64.checked.mch 20,398,221 -14,279 -3.42%
coreclr_tests.run.linux.x64.checked.mch 414,872,683 +518,690 -1.74%
libraries.crossgen2.linux.x64.checked.mch 44,737,894 +45,288 -0.49%
libraries.pmi.linux.x64.checked.mch 60,901,638 +160,898 -1.49%
libraries_tests.run.linux.x64.Release.mch 328,378,411 +946,848 -1.16%
librariestestsnotieredcompilation.run.linux.x64.Release.mch 132,100,449 +286,308 -1.92%
realworld.run.linux.x64.checked.mch 13,158,743 +33,481 -1.10%
smoke_tests.nativeaot.linux.x64.checked.mch 4,240,043 +11,938 -1.03%

FullOpts (+2,009,297 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.linux.x64.checked.mch 11,901,522 +5,093 -2.47%
benchmarks.run_pgo.linux.x64.checked.mch 48,116,284 +15,032 -1.75%
benchmarks.run_tiered.linux.x64.checked.mch 3,685,943 -14,279 -3.42%
coreclr_tests.run.linux.x64.checked.mch 126,925,785 +518,690 -1.74%
libraries.crossgen2.linux.x64.checked.mch 44,736,696 +45,288 -0.49%
libraries.pmi.linux.x64.checked.mch 60,788,808 +160,898 -1.49%
libraries_tests.run.linux.x64.Release.mch 145,576,425 +946,848 -1.16%
librariestestsnotieredcompilation.run.linux.x64.Release.mch 121,528,353 +286,308 -1.92%
realworld.run.linux.x64.checked.mch 12,773,258 +33,481 -1.10%
smoke_tests.nativeaot.linux.x64.checked.mch 4,239,094 +11,938 -1.03%

Example diffs

benchmarks.run.linux.x64.checked.mch

-10 (-23.26%) : 13349.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_1076(System.Object):int:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.StructRecord> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "V02.[020..024)"
+; V05 cse0 [V05,T01] ( 3, 2.25) long -> rdi "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,18 +23,17 @@ G_M21734_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rbx] ;; size=4 bbWeight=1 PerfScore 1.25 G_M21734_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rsi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.StructRecord - cmp qword ptr [rbx], rsi
+ mov rdi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.StructRecord + cmp qword ptr [rbx], rdi
je SHORT G_M21734_IG04 ;; size=15 bbWeight=1 PerfScore 4.25 G_M21734_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rsi, rbx ; gcrRegs +[rsi]
- mov rdi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.StructRecord
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rsi] ; gcr arg pop 0
- ;; size=19 bbWeight=0.25 PerfScore 0.88
+ ;; size=9 bbWeight=0.25 PerfScore 0.81
G_M21734_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbx+0x1C] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -42,7 +42,7 @@ G_M21734_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 1, PerfScore 9.88, instruction count 11, allocated bytes for code 43 (MethodHash=925eab19) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
+; Total bytes of code 33, prolog size 1, PerfScore 9.81, instruction count 10, allocated bytes for code 33 (MethodHash=925eab19) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
; ============================================================ Unwind Info:

-10 (-23.26%) : 13661.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_6010(System.Object):int:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (64) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.LargeStructWithProperties> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "V02.[040..044)"
+; V05 cse0 [V05,T01] ( 3, 2.25) long -> rdi "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,18 +23,17 @@ G_M11058_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rbx] ;; size=4 bbWeight=1 PerfScore 1.25 G_M11058_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rsi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties - cmp qword ptr [rbx], rsi
+ mov rdi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties + cmp qword ptr [rbx], rdi
je SHORT G_M11058_IG04 ;; size=15 bbWeight=1 PerfScore 4.25 G_M11058_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rsi, rbx ; gcrRegs +[rsi]
- mov rdi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rsi] ; gcr arg pop 0
- ;; size=19 bbWeight=0.25 PerfScore 0.88
+ ;; size=9 bbWeight=0.25 PerfScore 0.81
G_M11058_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbx+0x30] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -42,7 +42,7 @@ G_M11058_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 1, PerfScore 9.88, instruction count 11, allocated bytes for code 43 (MethodHash=8864d4cd) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_10(System.Object):int:this (FullOpts)
+; Total bytes of code 33, prolog size 1, PerfScore 9.81, instruction count 10, allocated bytes for code 33 (MethodHash=8864d4cd) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_10(System.Object):int:this (FullOpts)
; ============================================================ Unwind Info:

-10 (-23.26%) : 13665.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_6018(System.Object):int:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (64) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.LargeStructWithProperties> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "V02.[056..060)"
+; V05 cse0 [V05,T01] ( 3, 2.25) long -> rdi "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,18 +23,17 @@ G_M59194_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rbx] ;; size=4 bbWeight=1 PerfScore 1.25 G_M59194_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rsi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties - cmp qword ptr [rbx], rsi
+ mov rdi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties + cmp qword ptr [rbx], rdi
je SHORT G_M59194_IG04 ;; size=15 bbWeight=1 PerfScore 4.25 G_M59194_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rsi, rbx ; gcrRegs +[rsi]
- mov rdi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rsi] ; gcr arg pop 0
- ;; size=19 bbWeight=0.25 PerfScore 0.88
+ ;; size=9 bbWeight=0.25 PerfScore 0.81
G_M59194_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbx+0x40] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -42,7 +42,7 @@ G_M59194_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 1, PerfScore 9.88, instruction count 11, allocated bytes for code 43 (MethodHash=73c518c5) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_18(System.Object):int:this (FullOpts)
+; Total bytes of code 33, prolog size 1, PerfScore 9.81, instruction count 10, allocated bytes for code 33 (MethodHash=73c518c5) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_18(System.Object):int:this (FullOpts)
; ============================================================ Unwind Info:

+21 (+26.25%) : 6822.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)

@@ -11,66 +11,69 @@ ; V00 this [V00,T00] ( 7, 7 ) ref -> rbx this class-hnd single-def <System.Net.SystemNetworkCredential> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
-;* V03 tmp2 [V03,T04] ( 0, 0 ) ref -> zero-ref single-def
+;* V03 tmp2 [V03,T03] ( 0, 0 ) ref -> zero-ref single-def
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
-; V05 tmp4 [V05,T02] ( 4, 4.75) ref -> rdi single-def "CASTCLASS eval op1"
+; V05 tmp4 [V05,T01] ( 4, 4.75) ref -> rdi single-def "CASTCLASS eval op1"
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
-; V07 tmp6 [V07,T03] ( 4, 1.75) ref -> rdi class-hnd exact "Inline stloc first use temp" <<unknown class>>
+; V07 tmp6 [V07,T02] ( 4, 1.75) ref -> rdi class-hnd exact "Inline stloc first use temp" <<unknown class>>
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
-;* V09 tmp8 [V09,T05] ( 0, 0 ) ref -> zero-ref single-def
+;* V09 tmp8 [V09,T04] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
-; V11 cse0 [V11,T01] ( 5, 5 ) ref -> r15 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M45139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push r15
push rbx
+ push rax
lea rbp, [rsp+0x10] mov rbx, rdi ; gcrRegs +[rbx]
- ;; size=12 bbWeight=1 PerfScore 3.75
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M45139_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - mov gword ptr [rbx+0x10], r15 - mov gword ptr [rbx+0x10], r15 - mov rdi, gword ptr [rbx+0x18]
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
+ mov gword ptr [rbx+0x10], rdi + mov gword ptr [rbx+0x10], rdi + mov rdi, gword ptr [rbx+0x18]
test rdi, rdi je SHORT G_M45139_IG05 ;; size=27 bbWeight=1 PerfScore 5.50
-G_M45139_IG03: ; bbWeight=0.25, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M45139_IG03: ; bbWeight=0.25, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rax, 0xD1FFAB1E ; <unknown class> cmp qword ptr [rdi], rax je SHORT G_M45139_IG05 ;; size=15 bbWeight=0.25 PerfScore 1.06
-G_M45139_IG04: ; bbWeight=0.12, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M45139_IG04: ; bbWeight=0.12, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi] xor rdi, rdi ; gcrRegs +[rdi] ;; size=2 bbWeight=0.12 PerfScore 0.03
-G_M45139_IG05: ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz - mov gword ptr [rbx+0x18], r15
+G_M45139_IG05: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rbx+0x18], rax
test rdi, rdi je SHORT G_M45139_IG07
- ;; size=9 bbWeight=1 PerfScore 2.25 -G_M45139_IG06: ; bbWeight=0.50, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+ ;; size=19 bbWeight=1 PerfScore 2.50 +G_M45139_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax]
call [<unknown method>] ; gcrRegs -[rdi] ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M45139_IG07: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref - mov gword ptr [rbx+0x08], r15 - ;; size=4 bbWeight=1 PerfScore 1.00
+G_M45139_IG07: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rbx+0x08], rax + ;; size=14 bbWeight=1 PerfScore 1.25
G_M45139_IG08: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
pop rbx
- pop r15
pop rbp ret
- ;; size=5 bbWeight=1 PerfScore 2.50
+ ;; size=7 bbWeight=1 PerfScore 2.25
-; Total bytes of code 80, prolog size 9, PerfScore 17.59, instruction count 25, allocated bytes for code 80 (MethodHash=d2234fac) for method System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
+; Total bytes of code 101, prolog size 8, PerfScore 17.84, instruction count 27, allocated bytes for code 101 (MethodHash=d2234fac) for method System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -78,11 +81,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x04
+ SizeOfProlog : 0x03
CountOfUnwindCodes: 3 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
+ CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+20 (+31.25%) : 11354.dasm - System.Runtime.Serialization.XmlFormatGeneratorStatics:get_MemberNamesField():System.Reflection.FieldInfo (FullOpts)

@@ -11,16 +11,15 @@ ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.FieldInfo>
-; V03 cse0 [V03,T00] ( 4, 3.50) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M50305_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M50305_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rdi], 0
jne SHORT G_M50305_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M50305_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -32,22 +31,23 @@ G_M50305_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr call [<unknown method>] ; gcrRegs -[rsi rdi] +[rax] ; gcr arg pop 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rsi, rax ; gcrRegs +[rsi]
- mov rdi, rbx
call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi]
- ;; size=42 bbWeight=0.50 PerfScore 2.62
+ ;; size=49 bbWeight=0.50 PerfScore 2.62
G_M50305_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M50305_IG05: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 64, prolog size 1, PerfScore 11.38, instruction count 14, allocated bytes for code 64 (MethodHash=fa293b7e) for method System.Runtime.Serialization.XmlFormatGeneratorStatics:get_MemberNamesField():System.Reflection.FieldInfo (FullOpts)
+; Total bytes of code 84, prolog size 1, PerfScore 11.38, instruction count 15, allocated bytes for code 84 (MethodHash=fa293b7e) for method System.Runtime.Serialization.XmlFormatGeneratorStatics:get_MemberNamesField():System.Reflection.FieldInfo (FullOpts)
; ============================================================ Unwind Info: @@ -60,4 +60,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+13 (+46.43%) : 6223.dasm - Product:GetProductList():System.Collections.Generic.List`1[Product] (FullOpts)
@@ -8,16 +8,15 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M16238_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M16238_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rax], 0
jne SHORT G_M16238_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M16238_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -25,15 +24,16 @@ G_M16238_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcr arg pop 0 ;; size=6 bbWeight=0.50 PerfScore 1.50 G_M16238_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M16238_IG05: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 28, prolog size 1, PerfScore 10.25, instruction count 8, allocated bytes for code 28 (MethodHash=3cc1c091) for method Product:GetProductList():System.Collections.Generic.List`1[Product] (FullOpts)
+; Total bytes of code 41, prolog size 1, PerfScore 10.25, instruction count 9, allocated bytes for code 41 (MethodHash=3cc1c091) for method Product:GetProductList():System.Collections.Generic.List`1[Product] (FullOpts)
; ============================================================ Unwind Info: @@ -46,4 +46,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
benchmarks.run_pgo.linux.x64.checked.mch
-6 (-30.00%) : 33481.dasm - System.Math:Max(short,short):short (Tier1)
@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 16238 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> rdi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> rdi single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> rsi single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,16 +21,14 @@ G_M25962_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M25962_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, di movsx rcx, si
- movsx rdx, di
cmp eax, ecx
- mov eax, ecx - cmovge eax, edx - ;; size=19 bbWeight=1 PerfScore 1.50
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M25962_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 20 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
; ============================================================ Unwind Info:

-6 (-30.00%) : 48693.dasm - System.Math:Max(short,short):short (Tier1)

@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 20480 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> rdi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> rdi single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> rsi single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,16 +21,14 @@ G_M25962_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M25962_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, di movsx rcx, si
- movsx rdx, di
cmp eax, ecx
- mov eax, ecx - cmovge eax, edx - ;; size=19 bbWeight=1 PerfScore 1.50
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M25962_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 20 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
; ============================================================ Unwind Info:

-6 (-30.00%) : 58581.dasm - System.Math:Max(short,short):short (Tier1)

@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 3690 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> rdi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> rdi single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> rsi single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,16 +21,14 @@ G_M25962_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M25962_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, di movsx rcx, si
- movsx rdx, di
cmp eax, ecx
- mov eax, ecx - cmovge eax, edx - ;; size=19 bbWeight=1 PerfScore 1.50
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M25962_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 20 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
; ============================================================ Unwind Info:

+14 (+23.33%) : 96393.dasm - Microsoft.CodeAnalysis.CSharp.BoundExpressionStatement:Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)

@@ -8,26 +8,30 @@ ; Final local variable assignments ; ; V00 this [V00,T01] ( 4, 2.81) ref -> rsi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpressionStatement>
-; V01 arg1 [V01,T00] ( 6, 4.12) ref -> rax class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor>
+; V01 arg1 [V01,T00] ( 5, 3.81) ref -> rax class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref single-def "guarded devirt return temp" ;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.DiagnosticsPass>
+; V05 cse0 [V05,T02] ( 3, 2.31) long -> rbx "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M38550_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG push rbp
- mov rbp, rsp
+ push rbx + push rax + lea rbp, [rsp+0x10]
mov rax, rsi ; gcrRegs +[rax] mov rsi, rdi ; gcrRegs +[rsi]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ ;; size=14 bbWeight=1 PerfScore 4.00
G_M38550_IG02: ; bbWeight=1, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, byref, isz
+ mov rbx, qword ptr [rax]
mov rdi, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.DiagnosticsPass
- cmp qword ptr [rax], rdi
+ cmp rbx, rdi
jne SHORT G_M38550_IG05
- ;; size=15 bbWeight=1 PerfScore 4.25
+ ;; size=18 bbWeight=1 PerfScore 3.50
G_M38550_IG03: ; bbWeight=0.50, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, byref mov rsi, gword ptr [rsi+0x18] mov rdi, rax @@ -38,23 +42,26 @@ G_M38550_IG03: ; bbWeight=0.50, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 xor rax, rax ;; size=15 bbWeight=0.50 PerfScore 2.75 G_M38550_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8 + pop rbx
pop rbp ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
G_M38550_IG05: ; bbWeight=0.31, gcVars=0000000000000000 {}, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs +[rsi] mov rdi, rax ; gcrRegs +[rdi]
- mov rax, qword ptr [rax]
+ mov rax, qword ptr [rbx+0xA8]
; gcrRegs -[rax]
- mov rax, qword ptr [rax+0xA8] - ;; size=13 bbWeight=0.31 PerfScore 1.32
+ ;; size=10 bbWeight=0.31 PerfScore 0.70
G_M38550_IG06: ; bbWeight=0.31, epilog, nogc, extend
+ add rsp, 8 + pop rbx
pop rbp tail.jmp [rax+0x28]<unknown method>
- ;; size=5 bbWeight=0.31 PerfScore 0.78
+ ;; size=10 bbWeight=0.31 PerfScore 1.01
-; Total bytes of code 60, prolog size 10, PerfScore 11.59, instruction count 18, allocated bytes for code 60 (MethodHash=06726969) for method Microsoft.CodeAnalysis.CSharp.BoundExpressionStatement:Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
+; Total bytes of code 74, prolog size 14, PerfScore 13.08, instruction count 24, allocated bytes for code 74 (MethodHash=06726969) for method Microsoft.CodeAnalysis.CSharp.BoundExpressionStatement:Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
; ============================================================ Unwind Info: @@ -62,9 +69,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x03 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
+ CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+33 (+28.70%) : 116820.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.Canon]:Equals(System.Canon,System.__Canon):ubyte:this (Tier1)

@@ -10,50 +10,53 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]>
-; V01 arg1 [V01,T00] ( 7, 5.37) ref -> rdi ld-addr-op class-hnd single-def <System.__Canon> -; V02 arg2 [V02,T01] ( 8, 5.26) ref -> rsi class-hnd single-def <System.__Canon>
+; V01 arg1 [V01,T01] ( 6, 5 ) ref -> rsi ld-addr-op class-hnd single-def <System.__Canon> +; V02 arg2 [V02,T00] ( 8, 5.26) ref -> [rbp-0x10] class-hnd single-def <System.__Canon>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T02] ( 5, 3.26) int -> rax "guarded devirt return temp" ;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref single-def "guarded devirt arg temp"
-; V06 tmp3 [V06,T04] ( 4, 2.52) ref -> rdi class-hnd exact single-def "guarded devirt this exact temp" <System.String>
+; V06 tmp3 [V06,T04] ( 4, 2.52) ref -> rsi class-hnd exact single-def "guarded devirt this exact temp" <System.String>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.String>
-; V08 tmp5 [V08,T06] ( 3, 1.89) ref -> rsi class-hnd exact "Inline stloc first use temp" <System.String> -; V09 tmp6 [V09,T05] ( 2, 2.52) byref -> rdi single-def "impAppendStmt"
+; V08 tmp5 [V08,T07] ( 3, 1.89) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.String> +; V09 tmp6 [V09,T05] ( 2, 2.52) byref -> rax single-def "impAppendStmt"
;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V11 tmp8 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V14 tmp11 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V15 cse0 [V15,T07] ( 3, 1.89) int -> rdx "CSE - moderate" -; V16 cse1 [V16,T03] ( 3, 2.63) long -> rdx "CSE - aggressive"
+; V15 cse0 [V15,T06] ( 3, 2.37) long -> rbx "CSE - unknown" +; V16 cse1 [V16,T08] ( 3, 1.89) int -> rdx "CSE - unknown" +; V17 cse2 [V17,T03] ( 3, 2.63) long -> rdx "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M25421_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG push rbp
- mov rbp, rsp - mov rdi, rsi
+ push rbx + push rax + lea rbp, [rsp+0x10] + mov rdi, rdx
; gcrRegs +[rdi]
- mov rsi, rdx - ; gcrRegs +[rsi] - ;; size=10 bbWeight=1 PerfScore 1.75
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M25421_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
- test rdi, rdi - je SHORT G_M25421_IG12
+ ; gcrRegs +[rsi]
test rsi, rsi
+ je SHORT G_M25421_IG12 + test rdi, rdi
je SHORT G_M25421_IG10
+ mov rbx, qword ptr [rsi]
mov rdx, 0xD1FFAB1E ; System.String
- cmp qword ptr [rdi], rdx
+ cmp rbx, rdx
jne SHORT G_M25421_IG07
- ;; size=25 bbWeight=1 PerfScore 6.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M25421_IG03: ; bbWeight=0.63, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
- cmp rdi, rsi
+ cmp rsi, rdi
jne SHORT G_M25421_IG04 mov eax, 1 jmp SHORT G_M25421_IG08 ;; size=12 bbWeight=0.63 PerfScore 2.21 G_M25421_IG04: ; bbWeight=0.63, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
- cmp qword ptr [rsi], rdx
+ cmp qword ptr [rdi], rdx
jne SHORT G_M25421_IG05 jmp SHORT G_M25421_IG06 ;; size=7 bbWeight=0.63 PerfScore 3.78 @@ -64,53 +67,66 @@ G_M25421_IG05: ; bbWeight=0.63, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.63 PerfScore 1.42 G_M25421_IG06: ; bbWeight=0.63, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[rsi rdi]
- mov edx, dword ptr [rdi+0x08] - cmp edx, dword ptr [rsi+0x08]
+ mov edx, dword ptr [rsi+0x08] + cmp edx, dword ptr [rdi+0x08]
jne SHORT G_M25421_IG05
- add rdi, 12 - ; gcrRegs -[rdi] - ; byrRegs +[rdi] - add edx, edx
add rsi, 12 ; gcrRegs -[rsi] ; byrRegs +[rsi]
+ mov rax, rsi + ; byrRegs +[rax] + add edx, edx + lea rsi, bword ptr [rdi+0x0C] + mov rdi, rax + ; gcrRegs -[rdi] + ; byrRegs +[rdi]
call [<unknown method>]
- ; byrRegs -[rsi rdi]
+ ; byrRegs -[rax rsi rdi]
jmp SHORT G_M25421_IG08
- ;; size=26 bbWeight=0.63 PerfScore 7.40
+ ;; size=32 bbWeight=0.63 PerfScore 7.88
G_M25421_IG07: ; bbWeight=0.37, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref ; gcrRegs +[rsi rdi]
- mov rax, qword ptr [rdi] - mov rax, qword ptr [rax+0x48]
+ mov gword ptr [rbp-0x10], rdi + ; GC ptr vars +{V02} + mov rdi, rsi + mov rsi, gword ptr [rbp-0x10] + mov rax, qword ptr [rbx+0x48] + ; GC ptr vars -{V02}
call [rax+0x10]<unknown method> ; gcrRegs -[rsi rdi]
- ;; size=10 bbWeight=0.37 PerfScore 2.59
+ ;; size=18 bbWeight=0.37 PerfScore 2.68
G_M25421_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, al ;; size=3 bbWeight=1 PerfScore 0.25 G_M25421_IG09: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8 + pop rbx
pop rbp ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=7 bbWeight=1 PerfScore 2.25
G_M25421_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref xor eax, eax ;; size=2 bbWeight=0 PerfScore 0.00 G_M25421_IG11: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 8 + pop rbx
pop rbp ret
- ;; size=2 bbWeight=0 PerfScore 0.00 -G_M25421_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[rsi] - test rsi, rsi
+ ;; size=7 bbWeight=0 PerfScore 0.00 +G_M25421_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[rdi] + test rdi, rdi
jne SHORT G_M25421_IG10 mov eax, 1 ;; size=10 bbWeight=0 PerfScore 0.00 G_M25421_IG13: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 8 + pop rbx
pop rbp ret
- ;; size=2 bbWeight=0 PerfScore 0.00
+ ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 115, prolog size 4, PerfScore 27.64, instruction count 42, allocated bytes for code 115 (MethodHash=e30f9cb2) for method System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:Equals(System.__Canon,System.__Canon):ubyte:this (Tier1)
+; Total bytes of code 148, prolog size 8, PerfScore 30.21, instruction count 54, allocated bytes for code 148 (MethodHash=e30f9cb2) for method System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:Equals(System.__Canon,System.__Canon):ubyte:this (Tier1)
; ============================================================ Unwind Info: @@ -118,9 +134,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x03 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
+ CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+14 (+29.79%) : 4490.dasm - System.Type:get_IsPointer():ubyte:this (Tier1)

@@ -7,24 +7,28 @@ ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 3.96) ref -> rdi this class-hnd single-def <System.Type>
+; V00 this [V00,T00] ( 5, 3.73) ref -> rdi this class-hnd single-def <System.Type>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 2, 1 ) int -> rax "guarded devirt return temp"
+; V02 tmp1 [V02,T02] ( 2, 1 ) int -> rax "guarded devirt return temp"
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.RuntimeType> ;* V04 tmp3 [V04 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V05 cse0 [V05,T01] ( 3, 2.23) long -> rbx "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M48611_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG push rbp
- mov rbp, rsp - ;; size=4 bbWeight=1 PerfScore 1.25
+ push rbx + push rax + lea rbp, [rsp+0x10] + ;; size=8 bbWeight=1 PerfScore 3.50
G_M48611_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[rdi]
+ mov rbx, qword ptr [rdi]
mov rax, 0xD1FFAB1E ; System.RuntimeType
- cmp qword ptr [rdi], rax
+ cmp rbx, rax
jne SHORT G_M48611_IG05
- ;; size=15 bbWeight=1 PerfScore 4.25
+ ;; size=18 bbWeight=1 PerfScore 3.50
G_M48611_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref call <unknown method> ; gcrRegs -[rdi] @@ -34,20 +38,23 @@ G_M48611_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, movzx rax, al ;; size=14 bbWeight=0.50 PerfScore 1.25 G_M48611_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8 + pop rbx
pop rbp ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
G_M48611_IG05: ; bbWeight=0.23, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs +[rdi]
- mov rax, qword ptr [rdi] - mov rax, qword ptr [rax+0x60] - ;; size=7 bbWeight=0.23 PerfScore 0.92
+ mov rax, qword ptr [rbx+0x60] + ;; size=4 bbWeight=0.23 PerfScore 0.46
G_M48611_IG06: ; bbWeight=0.23, epilog, nogc, extend
+ add rsp, 8 + pop rbx
pop rbp tail.jmp [rax+0x20]<unknown method>
- ;; size=5 bbWeight=0.23 PerfScore 0.58
+ ;; size=10 bbWeight=0.23 PerfScore 0.75
-; Total bytes of code 47, prolog size 4, PerfScore 9.00, instruction count 15, allocated bytes for code 47 (MethodHash=9178421c) for method System.Type:get_IsPointer():ubyte:this (Tier1)
+; Total bytes of code 61, prolog size 8, PerfScore 10.58, instruction count 21, allocated bytes for code 61 (MethodHash=9178421c) for method System.Type:get_IsPointer():ubyte:this (Tier1)
; ============================================================ Unwind Info: @@ -55,9 +62,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x03 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
+ CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

benchmarks.run_tiered.linux.x64.checked.mch

-34 (-24.11%) : 12994.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier1-OSR)

@@ -12,63 +12,48 @@ ; V01 loc0 [V01,T01] ( 4, 13 ) int -> rbx ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V03 tmp1 [V03,T00] ( 3, 24 ) ref -> rax class-hnd exact "Single-def Box Helper" <<unknown class>>
-; V04 cse0 [V04,T03] ( 2, 4.50) long -> r14 hoist "CSE - aggressive" -; V05 cse1 [V05,T04] ( 2, 4.50) long -> r13 hoist "CSE - aggressive" -; V06 cse2 [V06,T05] ( 2, 4.50) long -> r12 hoist "CSE - aggressive" -; V07 cse3 [V07,T02] ( 3, 6 ) long -> r15 "CSE - aggressive"
; ; Lcl frame size = 8 G_M18672_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG mov rax, qword ptr [rbp] push rax
- sub rsp, 48 - mov qword ptr [rsp+0x88], r15 - mov qword ptr [rsp+0x80], r14 - mov qword ptr [rsp+0x78], r13 - mov qword ptr [rsp+0x70], r12
+ sub rsp, 16
mov qword ptr [rsp+0x68], rbx
- lea rbp, [rsp+0x30]
+ lea rbp, [rsp+0x10]
mov ebx, dword ptr [rbp+0x2C]
- ;; size=48 bbWeight=1 PerfScore 10.75
+ ;; size=22 bbWeight=1 PerfScore 6.75
G_M18672_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov r15, 0xD1FFAB1E ; static handle - cmp ebx, dword ptr [r15] - jge SHORT G_M18672_IG05 - ;; size=15 bbWeight=1 PerfScore 4.25 -G_M18672_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov r14, 0xD1FFAB1E ; <unknown class> - mov r13, 0xD1FFAB1E ; static handle - mov r12, 0xD1FFAB1E ; static handle - ;; size=30 bbWeight=0.50 PerfScore 0.38 -G_M18672_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - mov rdi, r14
+ mov rdi, 0xD1FFAB1E ; static handle + cmp ebx, dword ptr [rdi] + jge SHORT G_M18672_IG04 + ;; size=14 bbWeight=1 PerfScore 4.25 +G_M18672_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + mov rdi, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0
- mov edi, dword ptr [r13]
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov edi, dword ptr [rdi]
mov dword ptr [rax+0x08], edi
- mov rdi, r12
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] inc ebx
- cmp ebx, dword ptr [r15] - jl SHORT G_M18672_IG04 - ;; size=33 bbWeight=4 PerfScore 40.00 -G_M18672_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp ebx, dword ptr [rax] + jl SHORT G_M18672_IG03 + ;; size=64 bbWeight=4 PerfScore 42.00 +G_M18672_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
add rsp, 104 pop rbx
- pop r12 - pop r13 - pop r14 - pop r15
pop rbp ret
- ;; size=15 bbWeight=1 PerfScore 4.25
+ ;; size=7 bbWeight=1 PerfScore 2.25
-; Total bytes of code 141, prolog size 48, PerfScore 59.62, instruction count 34, allocated bytes for code 141 (MethodHash=acdcb70f) for method PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier1-OSR)
+; Total bytes of code 107, prolog size 22, PerfScore 55.25, instruction count 25, allocated bytes for code 107 (MethodHash=acdcb70f) for method PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier1-OSR)
; ============================================================ Unwind Info: @@ -76,22 +61,14 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x28 - CountOfUnwindCodes: 14
+ SizeOfProlog : 0x0E + CountOfUnwindCodes: 6
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x28 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ CodeOffset: 0x0E UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
Scaled Small Offset: 13 * 8 = 104 = 0x00068
- CodeOffset: 0x23 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r12 (12) - Scaled Small Offset: 14 * 8 = 112 = 0x00070 - CodeOffset: 0x1E UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r13 (13) - Scaled Small Offset: 15 * 8 = 120 = 0x00078 - CodeOffset: 0x19 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r14 (14) - Scaled Small Offset: 16 * 8 = 128 = 0x00080 - CodeOffset: 0x11 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r15 (15) - Scaled Small Offset: 17 * 8 = 136 = 0x00088 - CodeOffset: 0x09 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
+ CodeOffset: 0x09 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 CodeOffset: 0x00 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 10 * 8 + 8 = 88 = 0x58 CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-10 (-23.26%) : 25911.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> rbx class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> rdi "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,18 +21,17 @@ G_M10319_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rbx] ;; size=4 bbWeight=1 PerfScore 1.25 G_M10319_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rsi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.SimpleStructWithProperties - cmp qword ptr [rbx], rsi
+ mov rdi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.SimpleStructWithProperties + cmp qword ptr [rbx], rdi
je SHORT G_M10319_IG04 ;; size=15 bbWeight=1 PerfScore 4.25 G_M10319_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rsi, rbx ; gcrRegs +[rsi]
- mov rdi, 0xD1FFAB1E ; MicroBenchmarks.Serializers.SimpleStructWithProperties
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rsi] ; gcr arg pop 0
- ;; size=19 bbWeight=0.25 PerfScore 0.88
+ ;; size=9 bbWeight=0.25 PerfScore 0.81
G_M10319_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbx+0x10] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -40,7 +40,7 @@ G_M10319_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 1, PerfScore 9.88, instruction count 11, allocated bytes for code 43 (MethodHash=d4f4d7b0) for method (dynamicClass):NumGetter(System.Object):int (FullOpts)
+; Total bytes of code 33, prolog size 1, PerfScore 9.81, instruction count 10, allocated bytes for code 33 (MethodHash=d4f4d7b0) for method (dynamicClass):NumGetter(System.Object):int (FullOpts)
; ============================================================ Unwind Info:

-33 (-23.24%) : 42163.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjScalarValueType():this (Tier1-OSR)

@@ -12,63 +12,48 @@ ; V01 loc0 [V01,T01] ( 4, 13 ) int -> rbx ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V03 tmp1 [V03,T00] ( 3, 24 ) ref -> rax class-hnd exact "Single-def Box Helper" <PerfLabTests.CastingPerf2.FooSVT>
-; V04 cse0 [V04,T03] ( 2, 4.50) long -> r14 hoist "CSE - aggressive" -; V05 cse1 [V05,T04] ( 2, 4.50) long -> r13 hoist "CSE - aggressive" -; V06 cse2 [V06,T05] ( 2, 4.50) long -> r12 hoist "CSE - aggressive" -; V07 cse3 [V07,T02] ( 3, 6 ) long -> r15 "CSE - aggressive"
; ; Lcl frame size = 8 G_M11358_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG mov rax, qword ptr [rbp] push rax
- sub rsp, 48 - mov qword ptr [rsp+0x88], r15 - mov qword ptr [rsp+0x80], r14 - mov qword ptr [rsp+0x78], r13 - mov qword ptr [rsp+0x70], r12
+ sub rsp, 16
mov qword ptr [rsp+0x68], rbx
- lea rbp, [rsp+0x30]
+ lea rbp, [rsp+0x10]
mov ebx, dword ptr [rbp+0x2C]
- ;; size=48 bbWeight=1 PerfScore 10.75
+ ;; size=22 bbWeight=1 PerfScore 6.75
G_M11358_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov r15, 0xD1FFAB1E ; static handle - cmp ebx, dword ptr [r15] - jge SHORT G_M11358_IG05 - ;; size=15 bbWeight=1 PerfScore 4.25 -G_M11358_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov r14, 0xD1FFAB1E ; PerfLabTests.CastingPerf2.FooSVT - mov r13, 0xD1FFAB1E ; static handle - mov r12, 0xD1FFAB1E ; static handle - ;; size=30 bbWeight=0.50 PerfScore 0.38 -G_M11358_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - mov rdi, r14
+ mov rdi, 0xD1FFAB1E ; static handle + cmp ebx, dword ptr [rdi] + jge SHORT G_M11358_IG04 + ;; size=14 bbWeight=1 PerfScore 4.25 +G_M11358_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + mov rdi, 0xD1FFAB1E ; PerfLabTests.CastingPerf2.FooSVT
call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0
- mov rdi, qword ptr [r13]
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rdi, qword ptr [rdi]
mov qword ptr [rax+0x08], rdi
- mov rdi, r12
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rsi, rax ; gcrRegs +[rsi] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] inc ebx
- cmp ebx, dword ptr [r15] - jl SHORT G_M11358_IG04 - ;; size=34 bbWeight=4 PerfScore 40.00 -G_M11358_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp ebx, dword ptr [rax] + jl SHORT G_M11358_IG03 + ;; size=66 bbWeight=4 PerfScore 42.00 +G_M11358_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
add rsp, 104 pop rbx
- pop r12 - pop r13 - pop r14 - pop r15
pop rbp ret
- ;; size=15 bbWeight=1 PerfScore 4.25
+ ;; size=7 bbWeight=1 PerfScore 2.25
-; Total bytes of code 142, prolog size 48, PerfScore 59.62, instruction count 34, allocated bytes for code 142 (MethodHash=8b12d3a1) for method PerfLabTests.CastingPerf2.CastingPerf:ObjScalarValueType():this (Tier1-OSR)
+; Total bytes of code 109, prolog size 22, PerfScore 55.25, instruction count 25, allocated bytes for code 109 (MethodHash=8b12d3a1) for method PerfLabTests.CastingPerf2.CastingPerf:ObjScalarValueType():this (Tier1-OSR)
; ============================================================ Unwind Info: @@ -76,22 +61,14 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x28 - CountOfUnwindCodes: 14
+ SizeOfProlog : 0x0E + CountOfUnwindCodes: 6
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x28 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ CodeOffset: 0x0E UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
Scaled Small Offset: 13 * 8 = 104 = 0x00068
- CodeOffset: 0x23 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r12 (12) - Scaled Small Offset: 14 * 8 = 112 = 0x00070 - CodeOffset: 0x1E UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r13 (13) - Scaled Small Offset: 15 * 8 = 120 = 0x00078 - CodeOffset: 0x19 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r14 (14) - Scaled Small Offset: 16 * 8 = 128 = 0x00080 - CodeOffset: 0x11 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r15 (15) - Scaled Small Offset: 17 * 8 = 136 = 0x00088 - CodeOffset: 0x09 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
+ CodeOffset: 0x09 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 CodeOffset: 0x00 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 10 * 8 + 8 = 88 = 0x58 CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+18 (+19.57%) : 50539.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol:IsValidWellKnownType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):ubyte:this (Tier1)

@@ -8,21 +8,24 @@ ; Final local variable assignments ; ; V00 this [V00,T01] ( 3, 2.50) ref -> r15 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol>
-; V01 arg1 [V01,T00] ( 8, 5.50) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
+; V01 arg1 [V01,T00] ( 7, 5 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V03 cse0 [V03,T02] ( 3, 1.50) long -> r14 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M18568_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+0x10]
+ push rax + lea rbp, [rsp+0x20]
mov r15, rdi ; gcrRegs +[r15] mov rbx, rsi ; gcrRegs +[rbx]
- ;; size=15 bbWeight=1 PerfScore 4.00
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M18568_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz test rbx, rbx je SHORT G_M18568_IG04 @@ -30,8 +33,8 @@ G_M18568_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, G_M18568_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz mov rdi, rbx ; gcrRegs +[rdi]
- mov rax, qword ptr [rbx] - mov rax, qword ptr [rax+0xA8]
+ mov r14, qword ptr [rbx] + mov rax, qword ptr [r14+0xA8]
call [rax+0x18]<unknown method> ; gcrRegs -[rdi] cmp eax, 6 @@ -42,17 +45,18 @@ G_M18568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M18568_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M18568_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs +[rbx r15] mov rdi, rbx ; gcrRegs +[rdi]
- mov rax, qword ptr [rbx] - mov rax, qword ptr [rax+0x70]
+ mov rax, qword ptr [r14+0x70]
call [rax+0x10]<unknown method> ; gcrRegs -[rdi] cmp eax, 6 @@ -61,25 +65,29 @@ G_M18568_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800 ; gcrRegs +[rdi] mov rsi, r15 ; gcrRegs +[rsi]
- ;; size=24 bbWeight=0.50 PerfScore 4.50
+ ;; size=21 bbWeight=0.50 PerfScore 3.50
G_M18568_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp tail.jmp [Microsoft.CodeAnalysis.CSharp.Symbol:IsSymbolAccessible(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):ubyte]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ ;; size=16 bbWeight=0.50 PerfScore 2.12
G_M18568_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[rbx rsi rdi r15] mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M18568_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 92, prolog size 9, PerfScore 18.50, instruction count 36, allocated bytes for code 92 (MethodHash=4952b777) for method Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol:IsValidWellKnownType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):ubyte:this (Tier1)
+; Total bytes of code 110, prolog size 12, PerfScore 20.62, instruction count 43, allocated bytes for code 110 (MethodHash=4952b777) for method Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol:IsValidWellKnownType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):ubyte:this (Tier1)
; ============================================================ Unwind Info: @@ -87,11 +95,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)

+18 (+21.95%) : 51103.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass1:CanScheduleToStack(Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol):ubyte:this (Tier1)

@@ -9,27 +9,30 @@ ; Final local variable assignments ; ; V00 this [V00,T01] ( 3, 2.50) ref -> r15 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass1>
-; V01 arg1 [V01,T00] ( 6, 5 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>
+; V01 arg1 [V01,T00] ( 5, 4.50) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V04 cse0 [V04,T02] ( 3, 2.50) long -> r14 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M22398_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+0x10]
+ push rax + lea rbp, [rsp+0x20]
mov r15, rdi ; gcrRegs +[r15] mov rbx, rsi ; gcrRegs +[rbx]
- ;; size=15 bbWeight=1 PerfScore 4.00
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M22398_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz mov rdi, rbx ; gcrRegs +[rdi]
- mov rax, qword ptr [rbx] - mov rax, qword ptr [rax+0xA0]
+ mov r14, qword ptr [rbx] + mov rax, qword ptr [r14+0xA0]
call [rax]<unknown method> ; gcrRegs -[rdi] test eax, eax @@ -40,38 +43,43 @@ G_M22398_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 je SHORT G_M22398_IG05 mov rdi, rbx ; gcrRegs +[rdi]
- mov rax, qword ptr [rbx] - mov rax, qword ptr [rax+0x98]
+ mov rax, qword ptr [r14+0x98]
call [rax+0x20]<unknown method> ; gcrRegs -[rbx rdi r15] shr eax, 31
- ;; size=26 bbWeight=0.50 PerfScore 5.88
+ ;; size=23 bbWeight=0.50 PerfScore 4.88
G_M22398_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M22398_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M22398_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M22398_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M22398_IG08: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 82, prolog size 9, PerfScore 22.38, instruction count 33, allocated bytes for code 82 (MethodHash=7a8aa881) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass1:CanScheduleToStack(Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol):ubyte:this (Tier1)
+; Total bytes of code 100, prolog size 12, PerfScore 24.50, instruction count 40, allocated bytes for code 100 (MethodHash=7a8aa881) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass1:CanScheduleToStack(Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol):ubyte:this (Tier1)
; ============================================================ Unwind Info: @@ -79,11 +87,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)

+13 (+22.81%) : 5219.dasm - System.Type:get_DefaultBinder():System.Reflection.Binder (Tier1)

@@ -11,17 +11,16 @@ ;* V00 loc0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.DefaultBinder> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.DefaultBinder>
-; V03 tmp2 [V03,T01] ( 2, 2 ) ref -> rsi single-def "argument with side effect" -; V04 cse0 [V04,T00] ( 3, 3 ) long -> rbx "CSE - aggressive"
+; V03 tmp2 [V03,T00] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M33448_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M33448_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rdi], 0
jne SHORT G_M33448_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M33448_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -42,15 +41,16 @@ G_M33448_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=35 bbWeight=0.50 PerfScore 1.50 G_M33448_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax]
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M33448_IG05: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 57, prolog size 1, PerfScore 10.25, instruction count 13, allocated bytes for code 57 (MethodHash=1df57d57) for method System.Type:get_DefaultBinder():System.Reflection.Binder (Tier1)
+; Total bytes of code 70, prolog size 1, PerfScore 10.25, instruction count 14, allocated bytes for code 70 (MethodHash=1df57d57) for method System.Type:get_DefaultBinder():System.Reflection.Binder (Tier1)
; ============================================================ Unwind Info: @@ -63,4 +63,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
coreclr_tests.run.linux.x64.checked.mch
-14 (-31.82%) : 290615.dasm - FinalizeTimeout:ThreadMain() (Tier1-OSR)
@@ -10,30 +10,24 @@ ; ;* V00 loc0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T00] ( 2, 9 ) long -> rbx hoist "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
-G_M23685_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M23685_IG01: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp] push rax
- sub rsp, 16 - mov qword ptr [rsp+0x58], rbx - lea rbp, [rsp+0x10] - ;; size=19 bbWeight=1 PerfScore 4.75 -G_M23685_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov rbx, 0xD1FFAB1E ; <unknown class> - ;; size=10 bbWeight=1 PerfScore 0.25 -G_M23685_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - mov rdi, rbx
+ mov rbp, rsp + ;; size=8 bbWeight=8 PerfScore 26.00 +G_M23685_IG02: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + mov rdi, 0xD1FFAB1E ; <unknown class>
mov esi, 0x400 call CORINFO_HELP_NEWARR_1_VC ; gcrRegs +[rax] ; gcr arg pop 0
- jmp SHORT G_M23685_IG03 - ;; size=15 bbWeight=8 PerfScore 28.00
+ jmp SHORT G_M23685_IG02 + ;; size=22 bbWeight=8 PerfScore 28.00
-; Total bytes of code 44, prolog size 19, PerfScore 33.00, instruction count 10, allocated bytes for code 44 (MethodHash=5335a37a) for method FinalizeTimeout:ThreadMain() (Tier1-OSR)
+; Total bytes of code 30, prolog size 8, PerfScore 54.00, instruction count 7, allocated bytes for code 30 (MethodHash=5335a37a) for method FinalizeTimeout:ThreadMain() (Tier1-OSR)
; ============================================================ Unwind Info: @@ -41,14 +35,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x0E - CountOfUnwindCodes: 6
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x0E UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3) - Scaled Small Offset: 11 * 8 = 88 = 0x00058 - CodeOffset: 0x09 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 CodeOffset: 0x00 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-6 (-30.00%) : 45306.dasm - System.Math:Max(byte,byte):byte (Tier1)

@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 16 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) byte -> rdi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) byte -> rdi single-def
; V01 arg1 [V01,T01] ( 3, 3 ) byte -> rsi single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rax "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,16 +21,14 @@ G_M42290_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M42290_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, dil movsx rcx, sil
- movsx rdx, dil
cmp eax, ecx
- mov eax, ecx - cmovge eax, edx - ;; size=19 bbWeight=1 PerfScore 1.50
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M42290_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 20 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
; ============================================================ Unwind Info:

-6 (-30.00%) : 107762.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)

@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 1008 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rdi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rdi single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rsi single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rax "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,16 +21,14 @@ G_M34407_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M34407_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, dil movzx rcx, sil
- movzx rdx, dil
cmp eax, ecx
- mov eax, ecx - cmovge eax, edx - ;; size=19 bbWeight=1 PerfScore 1.50
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M34407_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 20 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
; ============================================================ Unwind Info:

+13 (+46.43%) : 511673.dasm - Product:GetProductList():System.Collections.Generic.List`1Product

@@ -8,16 +8,15 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M16238_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M16238_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rax], 0
jne SHORT G_M16238_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M16238_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -25,15 +24,16 @@ G_M16238_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcr arg pop 0 ;; size=6 bbWeight=0.50 PerfScore 1.50 G_M16238_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M16238_IG05: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 28, prolog size 1, PerfScore 10.25, instruction count 8, allocated bytes for code 28 (MethodHash=3cc1c091) for method Product:GetProductList():System.Collections.Generic.List`1[Product] (FullOpts)
+; Total bytes of code 41, prolog size 1, PerfScore 10.25, instruction count 9, allocated bytes for code 41 (MethodHash=3cc1c091) for method Product:GetProductList():System.Collections.Generic.List`1[Product] (FullOpts)
; ============================================================ Unwind Info: @@ -46,4 +46,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+15 (+46.88%) : 401439.dasm - Internal.JitInterface.JitConfigProvider:get_Instance():Internal.JitInterface.JitConfigProvider (Tier1)
@@ -8,29 +8,29 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M51643_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M51643_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - xor edi, edi - cmp gword ptr [rbx], 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rdi], 0
setne dil
+ movzx rdi, dil
call [<unknown method>] ; gcr arg pop 0
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=29 bbWeight=1 PerfScore 9.50
+ ;; size=41 bbWeight=1 PerfScore 9.75
G_M51643_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 32, prolog size 1, PerfScore 12.00, instruction count 9, allocated bytes for code 32 (MethodHash=610c3644) for method Internal.JitInterface.JitConfigProvider:get_Instance():Internal.JitInterface.JitConfigProvider (Tier1)
+; Total bytes of code 47, prolog size 1, PerfScore 12.00, instruction count 10, allocated bytes for code 47 (MethodHash=610c3644) for method Internal.JitInterface.JitConfigProvider:get_Instance():Internal.JitInterface.JitConfigProvider (Tier1)
; ============================================================ Unwind Info: @@ -43,4 +43,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+37 (+51.39%) : 224274.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
@@ -9,32 +9,36 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 9, 5 ) byref -> rbx single-def
+; V00 arg0 [V00,T00] ( 8, 4.57) byref -> rbx single-def
; V01 arg1 [V01,T02] ( 3, 2.57) byref -> r15 single-def ; V02 arg2 [V02,T03] ( 3, 2.57) ref -> rdx class-hnd single-def <System.Reflection.MethodBase> ; V03 arg3 [V03,T01] ( 3, 3 ) ubyte -> rcx single-def ; V04 arg4 [V04,T04] ( 3, 2.57) ubyte -> r8 single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V06 cse0 [V06,T05] ( 5, 2.43) int -> r14 multi-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M6910_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+0x10]
+ push rax + lea rbp, [rsp+0x20]
mov rbx, rdi ; byrRegs +[rbx] mov r15, rsi ; byrRegs +[r15]
- ;; size=15 bbWeight=1 PerfScore 4.00
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M6910_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx r15}, byref, isz ; gcrRegs +[rdx] test cl, cl jne SHORT G_M6910_IG07
- test byte ptr [rbx], 1
+ mov r14d, dword ptr [rbx] + test r14b, 1
je SHORT G_M6910_IG05
- ;; size=9 bbWeight=1 PerfScore 5.25
+ ;; size=13 bbWeight=1 PerfScore 4.50
G_M6910_IG03: ; bbWeight=0.57, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx r15}, byref movzx rsi, r8b mov rdi, rdx @@ -51,31 +55,41 @@ G_M6910_IG03: ; bbWeight=0.57, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx or dword ptr [rbx], 2 ;; size=27 bbWeight=0.57 PerfScore 4.55 G_M6910_IG04: ; bbWeight=0.57, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.57 PerfScore 1.42
+ ;; size=11 bbWeight=0.57 PerfScore 1.85
G_M6910_IG05: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
- or dword ptr [rbx], 1 - ;; size=3 bbWeight=0.43 PerfScore 1.29
+ or r14d, 1 + mov dword ptr [rbx], r14d + ;; size=7 bbWeight=0.43 PerfScore 0.54
G_M6910_IG06: ; bbWeight=0.43, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.43 PerfScore 1.08
+ ;; size=11 bbWeight=0.43 PerfScore 1.40
G_M6910_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
- or dword ptr [rbx], 2 - ;; size=3 bbWeight=0 PerfScore 0.00
+ mov r14d, dword ptr [rbx] + mov eax, r14d + or eax, 2 + mov dword ptr [rbx], eax + ;; size=11 bbWeight=0 PerfScore 0.00
G_M6910_IG08: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 72, prolog size 9, PerfScore 17.59, instruction count 31, allocated bytes for code 72 (MethodHash=7fd0e501) for method System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
+; Total bytes of code 109, prolog size 12, PerfScore 18.84, instruction count 44, allocated bytes for code 109 (MethodHash=7fd0e501) for method System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
; ============================================================ Unwind Info: @@ -83,11 +97,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)

libraries.crossgen2.linux.x64.checked.mch

-19 (-39.58%) : 169592.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)

@@ -9,52 +9,37 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def <System.Dynamic.DynamicMetaObject>
+; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Dynamic.DynamicMetaObject>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 3 ) ref -> rbx "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
-G_M17334_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG - push r15
+G_M17334_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbx
- push rax - mov rbx, rdi
+ ;; size=1 bbWeight=1 PerfScore 1.00 +G_M17334_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + mov rbx, gword ptr [rdi+0x08]
; gcrRegs +[rbx]
- ;; size=7 bbWeight=1 PerfScore 3.25 -G_M17334_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - mov r15, gword ptr [rbx+0x08] - ; gcrRegs +[r15]
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
+ ; gcrRegs -[rdi]
; byrRegs +[rax] ; gcr arg pop 0
- cmp r15, gword ptr [rax+0x0E48] - jne SHORT G_M17334_IG05 - ;; size=19 bbWeight=1 PerfScore 9.00 -G_M17334_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[rbx r15]
+ xor rcx, rcx + ; gcrRegs +[rcx] + cmp rbx, gword ptr [rax+0x0E48] + mov rax, rcx + ; gcrRegs +[rax]
; byrRegs -[rax]
- xor rax, rax - ; gcrRegs +[rax] - ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M17334_IG04: ; bbWeight=0.50, epilog, nogc, extend - add rsp, 8
+ cmovne rax, rbx + ;; size=26 bbWeight=1 PerfScore 8.75 +G_M17334_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbx
- pop r15
ret
- ;; size=8 bbWeight=0.50 PerfScore 1.12 -G_M17334_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[rax] +[rbx] - mov rax, gword ptr [rbx+0x08] - ; gcrRegs +[rax] - ;; size=4 bbWeight=0.50 PerfScore 1.00 -G_M17334_IG06: ; bbWeight=0.50, epilog, nogc, extend - add rsp, 8 - pop rbx - pop r15 - ret - ;; size=8 bbWeight=0.50 PerfScore 1.12
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 48, prolog size 4, PerfScore 15.62, instruction count 18, allocated bytes for code 48 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
+; Total bytes of code 29, prolog size 1, PerfScore 11.25, instruction count 9, allocated bytes for code 29 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
; ============================================================ Unwind Info: @@ -62,11 +47,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x04 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x01 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

-13 (-24.53%) : 61912.dasm - Microsoft.CodeAnalysis.CSharp.BoundLambda:WithInAnonymousFunctionConversion():Microsoft.CodeAnalysis.CSharp.BoundLambda:this (FullOpts)

@@ -12,16 +12,17 @@ ; V00 this [V00,T00] ( 5, 4 ) ref -> rdi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundLambda> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T01] ( 3, 3 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
+; V03 cse0 [V03,T02] ( 3, 2.50) long -> rbx "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M34251_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push rax
+ push rbx
;; size=1 bbWeight=1 PerfScore 1.00 G_M34251_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[rdi]
- mov rax, qword ptr [(reloc)] ; const ptr - cmp byte ptr [rdi+rax], 0
+ mov rbx, qword ptr [(reloc)] ; const ptr + cmp byte ptr [rdi+rbx], 0
je SHORT G_M34251_IG05 ;; size=13 bbWeight=1 PerfScore 6.00 G_M34251_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref @@ -29,9 +30,9 @@ G_M34251_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, ; gcrRegs +[rax] ;; size=3 bbWeight=0.50 PerfScore 0.12 G_M34251_IG04: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 8
+ pop rbx
ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
+ ;; size=2 bbWeight=0.50 PerfScore 0.75
G_M34251_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[rax] call [Microsoft.CodeAnalysis.CSharp.BoundNode:MemberwiseClone():Microsoft.CodeAnalysis.CSharp.BoundNode:this] @@ -42,15 +43,14 @@ G_M34251_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008 call [CORINFO_HELP_READYTORUN_CHKCAST] ; gcrRegs -[rdi] ; gcr arg pop 0
- mov rcx, qword ptr [(reloc)] ; const ptr - mov byte ptr [rax+rcx], 1 - ;; size=26 bbWeight=0.50 PerfScore 4.62
+ mov byte ptr [rax+rbx], 1 + ;; size=19 bbWeight=0.50 PerfScore 3.62
G_M34251_IG06: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 8
+ pop rbx
ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
+ ;; size=2 bbWeight=0.50 PerfScore 0.75
-; Total bytes of code 53, prolog size 1, PerfScore 13.00, instruction count 14, allocated bytes for code 53 (MethodHash=f0377a34) for method Microsoft.CodeAnalysis.CSharp.BoundLambda:WithInAnonymousFunctionConversion():Microsoft.CodeAnalysis.CSharp.BoundLambda:this (FullOpts)
+; Total bytes of code 40, prolog size 1, PerfScore 12.25, instruction count 13, allocated bytes for code 40 (MethodHash=f0377a34) for method Microsoft.CodeAnalysis.CSharp.BoundLambda:WithInAnonymousFunctionConversion():Microsoft.CodeAnalysis.CSharp.BoundLambda:this (FullOpts)
; ============================================================ Unwind Info: @@ -63,4 +63,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
-11 (-19.64%) : 176933.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCompilationEndAction(Microsoft.CodeAnalysis.Diagnostics.CompilationAnalyzerAction):this (FullOpts)
@@ -9,50 +9,43 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 6, 6 ) byref -> rbx this single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.CompilationAnalyzerAction> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) byref -> r15 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M7710_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15
push rbx
- push rax
mov rbx, rdi ; byrRegs +[rbx] mov rdx, rsi ; gcrRegs +[rdx]
- ;; size=10 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 1.50
G_M7710_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref cmp byte ptr [rbx], bl
- lea r15, bword ptr [rbx+0x10] - ; byrRegs +[r15] - mov rdi, r15
+ lea rdi, bword ptr [rbx+0x10]
; byrRegs +[rdi] mov rsi, qword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.CompilationAnalyzerAction] call [<unknown method>] ; gcrRegs -[rdx] +[rax] ; byrRegs -[rdi] ; gcr arg pop 0
+ lea rdi, bword ptr [rbx+0x10] + ; byrRegs +[rdi]
mov rsi, rax ; gcrRegs +[rsi]
- mov rdi, r15 - ; byrRegs +[rdi]
call [CORINFO_HELP_CHECKED_ASSIGN_REF] ; gcrRegs -[rax rsi]
- ; byrRegs -[rdi r15]
+ ; byrRegs -[rdi]
mov byte ptr [rbx+0x01], 0
- ;; size=38 bbWeight=1 PerfScore 13.25
+ ;; size=36 bbWeight=1 PerfScore 13.25
G_M7710_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
pop rbx
- pop r15
ret
- ;; size=8 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 56, prolog size 4, PerfScore 19.00, instruction count 18, allocated bytes for code 56 (MethodHash=0331e1e1) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCompilationEndAction(Microsoft.CodeAnalysis.Diagnostics.CompilationAnalyzerAction):this (FullOpts)
+; Total bytes of code 45, prolog size 1, PerfScore 16.25, instruction count 13, allocated bytes for code 45 (MethodHash=0331e1e1) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCompilationEndAction(Microsoft.CodeAnalysis.Diagnostics.CompilationAnalyzerAction):this (FullOpts)
; ============================================================ Unwind Info: @@ -60,11 +53,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x04 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x01 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

+15 (+51.72%) : 113747.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,43 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rdi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rax single-def "dup spill"
+; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rdi single-def "dup spill"
; V05 tmp2 [V05,T02] ( 3, 6 ) byref -> rbx single-def "dup spill" ; V06 tmp3 [V06,T04] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V07 cse0 [V07,T05] ( 3, 3 ) byref -> rbx "CSE - aggressive"
+; V07 cse0 [V07,T05] ( 3, 3 ) long -> r15 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M36355_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push r15
push rbx
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M36355_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref - ; gcrRegs +[rsi rdi] - cmp byte ptr [rdi], dil
+ push rax
mov rbx, rdi ; gcrRegs +[rbx]
- add rbx, bword ptr [(reloc)] ; const ptr - ; gcrRegs -[rbx] - ; byrRegs +[rbx] - mov rax, rbx - ; byrRegs +[rax] - dec dword ptr [rax]
+ ;; size=7 bbWeight=1 PerfScore 3.25 +G_M36355_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rsi] + cmp byte ptr [rbx], bl + mov r15, qword ptr [(reloc)] ; const ptr + lea rdi, bword ptr [rbx+r15] + ; byrRegs +[rdi] + dec dword ptr [rdi] + mov rdi, rbx + ; gcrRegs +[rdi] + ; byrRegs -[rdi]
call [<unknown method>] ; gcrRegs -[rsi rdi] +[rax]
- ; byrRegs -[rax]
; gcr arg pop 0
+ add rbx, r15 + ; gcrRegs -[rbx] + ; byrRegs +[rbx]
inc dword ptr [rbx]
- ;; size=26 bbWeight=1 PerfScore 15.50
+ ;; size=29 bbWeight=1 PerfScore 15.00
G_M36355_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r15
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=8 bbWeight=1 PerfScore 2.25
-; Total bytes of code 29, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 29 (MethodHash=3e3871fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 44, prolog size 4, PerfScore 20.50, instruction count 16, allocated bytes for code 44 (MethodHash=3e3871fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================ Unwind Info: @@ -52,9 +59,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 + CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

+15 (+51.72%) : 113728.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,43 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rdi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rax single-def "dup spill"
+; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rdi single-def "dup spill"
; V05 tmp2 [V05,T02] ( 3, 6 ) byref -> rbx single-def "dup spill" ; V06 tmp3 [V06,T04] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V07 cse0 [V07,T05] ( 3, 3 ) byref -> rbx "CSE - aggressive"
+; V07 cse0 [V07,T05] ( 3, 3 ) long -> r15 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28163_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push r15
push rbx
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M28163_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref - ; gcrRegs +[rsi rdi] - cmp byte ptr [rdi], dil
+ push rax
mov rbx, rdi ; gcrRegs +[rbx]
- add rbx, bword ptr [(reloc)] ; const ptr - ; gcrRegs -[rbx] - ; byrRegs +[rbx] - mov rax, rbx - ; byrRegs +[rax] - dec dword ptr [rax]
+ ;; size=7 bbWeight=1 PerfScore 3.25 +G_M28163_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rsi] + cmp byte ptr [rbx], bl + mov r15, qword ptr [(reloc)] ; const ptr + lea rdi, bword ptr [rbx+r15] + ; byrRegs +[rdi] + dec dword ptr [rdi] + mov rdi, rbx + ; gcrRegs +[rdi] + ; byrRegs -[rdi]
call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] ; gcrRegs -[rsi rdi] +[rax]
- ; byrRegs -[rax]
; gcr arg pop 0
+ add rbx, r15 + ; gcrRegs -[rbx] + ; byrRegs +[rbx]
inc dword ptr [rbx]
- ;; size=26 bbWeight=1 PerfScore 15.50
+ ;; size=29 bbWeight=1 PerfScore 15.00
G_M28163_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r15
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=8 bbWeight=1 PerfScore 2.25
-; Total bytes of code 29, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 29 (MethodHash=ce8b91fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 44, prolog size 4, PerfScore 20.50, instruction count 16, allocated bytes for code 44 (MethodHash=ce8b91fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================ Unwind Info: @@ -52,9 +59,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 + CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

+15 (+51.72%) : 113748.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,43 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rdi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rax single-def "dup spill"
+; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rdi single-def "dup spill"
; V05 tmp2 [V05,T02] ( 3, 6 ) byref -> rbx single-def "dup spill" ; V06 tmp3 [V06,T04] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V07 cse0 [V07,T05] ( 3, 3 ) byref -> rbx "CSE - aggressive"
+; V07 cse0 [V07,T05] ( 3, 3 ) long -> r15 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M26883_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push r15
push rbx
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M26883_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref - ; gcrRegs +[rsi rdi] - cmp byte ptr [rdi], dil
+ push rax
mov rbx, rdi ; gcrRegs +[rbx]
- add rbx, bword ptr [(reloc)] ; const ptr - ; gcrRegs -[rbx] - ; byrRegs +[rbx] - mov rax, rbx - ; byrRegs +[rax] - dec dword ptr [rax]
+ ;; size=7 bbWeight=1 PerfScore 3.25 +G_M26883_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rsi] + cmp byte ptr [rbx], bl + mov r15, qword ptr [(reloc)] ; const ptr + lea rdi, bword ptr [rbx+r15] + ; byrRegs +[rdi] + dec dword ptr [rdi] + mov rdi, rbx + ; gcrRegs +[rdi] + ; byrRegs -[rdi]
call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] ; gcrRegs -[rsi rdi] +[rax]
- ; byrRegs -[rax]
; gcr arg pop 0
+ add rbx, r15 + ; gcrRegs -[rbx] + ; byrRegs +[rbx]
inc dword ptr [rbx]
- ;; size=26 bbWeight=1 PerfScore 15.50
+ ;; size=29 bbWeight=1 PerfScore 15.00
G_M26883_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r15
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=8 bbWeight=1 PerfScore 2.25
-; Total bytes of code 29, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 29 (MethodHash=71d896fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 44, prolog size 4, PerfScore 20.50, instruction count 16, allocated bytes for code 44 (MethodHash=71d896fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================ Unwind Info: @@ -52,9 +59,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 + CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

libraries.pmi.linux.x64.checked.mch

-10 (-41.67%) : 299839.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rdi single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rsi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rdi single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,17 +22,14 @@ G_M13207_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M13207_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, dil movzx rcx, sil
- movzx rdx, dil - movzx rdi, sil
cmp eax, ecx
- mov eax, edi - cmovge eax, edx - ;; size=23 bbWeight=1 PerfScore 1.75
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M13207_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 24 (MethodHash=6935cc68) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=6935cc68) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================ Unwind Info:

-10 (-41.67%) : 299843.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> rdi single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> rsi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> rdi single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) short -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) short -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rcx "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rax "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,17 +22,14 @@ G_M47351_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M47351_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, di movsx rcx, si
- movsx rdx, di - movsx rdi, si
cmp eax, ecx
- mov eax, edi - cmovge eax, edx - ;; size=23 bbWeight=1 PerfScore 1.75
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M47351_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 24 (MethodHash=8d024708) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=8d024708) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================ Unwind Info:

-10 (-41.67%) : 299847.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rdi single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rsi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rdi single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,17 +22,14 @@ G_M48945_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M48945_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, dil movzx rcx, sil
- movzx rdx, dil - movzx rdi, sil
cmp eax, ecx
- mov eax, edi - cmovge eax, edx - ;; size=23 bbWeight=1 PerfScore 1.75
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M48945_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 24 (MethodHash=247f40ce) for method System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=247f40ce) for method System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================ Unwind Info:

+20 (+41.67%) : 229157.dasm - Microsoft.Build.Collections.ReadOnlyEmptyCollection1[ubyte]:get_Instance():Microsoft.Build.Collections.ReadOnlyEmptyCollection1ubyte

@@ -10,16 +10,15 @@ ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.Build.Collections.ReadOnlyEmptyCollection`1[ubyte]>
-; V02 cse0 [V02,T00] ( 4, 3.50) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M42619_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M42619_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rdi], 0
jne SHORT G_M42619_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M42619_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -27,22 +26,23 @@ G_M42619_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rsi, rax ; gcrRegs +[rsi]
- mov rdi, rbx
call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi]
- ;; size=26 bbWeight=0.50 PerfScore 1.38
+ ;; size=33 bbWeight=0.50 PerfScore 1.38
G_M42619_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M42619_IG05: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 48, prolog size 1, PerfScore 10.12, instruction count 12, allocated bytes for code 48 (MethodHash=c9695984) for method Microsoft.Build.Collections.ReadOnlyEmptyCollection`1[ubyte]:get_Instance():Microsoft.Build.Collections.ReadOnlyEmptyCollection`1[ubyte] (FullOpts)
+; Total bytes of code 68, prolog size 1, PerfScore 10.12, instruction count 13, allocated bytes for code 68 (MethodHash=c9695984) for method Microsoft.Build.Collections.ReadOnlyEmptyCollection`1[ubyte]:get_Instance():Microsoft.Build.Collections.ReadOnlyEmptyCollection`1[ubyte] (FullOpts)
; ============================================================ Unwind Info: @@ -55,4 +55,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+10 (+43.48%) : 128858.dasm - Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
@@ -7,39 +7,43 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 4 ) ref -> rdi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter>
+; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rax single-def "dup spill"
+; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rdi single-def "dup spill"
; V05 tmp2 [V05,T02] ( 3, 6 ) byref -> rbx single-def "dup spill" ; V06 tmp3 [V06,T04] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.VisualBasic.BoundNode>
-; V07 cse0 [V07,T05] ( 3, 3 ) byref -> rbx "CSE - aggressive"
; ; Lcl frame size = 0 G_M21660_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbx
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M21660_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref - ; gcrRegs +[rsi rdi] - lea rbx, bword ptr [rdi+0xB0] - ; byrRegs +[rbx] - mov rax, rbx - ; byrRegs +[rax] - inc dword ptr [rax]
+ mov rbx, rdi + ; gcrRegs +[rbx] + ;; size=4 bbWeight=1 PerfScore 1.25 +G_M21660_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rsi] + lea rdi, bword ptr [rbx+0xB0] + ; byrRegs +[rdi] + inc dword ptr [rdi] + mov rdi, rbx + ; gcrRegs +[rdi] + ; byrRegs -[rdi]
call [<unknown method>] ; gcrRegs -[rsi rdi] +[rax]
- ; byrRegs -[rax]
; gcr arg pop 0
+ add rbx, 176 + ; gcrRegs -[rbx] + ; byrRegs +[rbx]
dec dword ptr [rbx]
- ;; size=20 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 10.00
G_M21660_IG03: ; bbWeight=1, epilog, nogc, extend pop rbx ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 23, prolog size 1, PerfScore 12.25, instruction count 8, allocated bytes for code 23 (MethodHash=db99ab63) for method Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
+; Total bytes of code 33, prolog size 1, PerfScore 12.75, instruction count 10, allocated bytes for code 33 (MethodHash=db99ab63) for method Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
; ============================================================ Unwind Info:

+15 (+46.88%) : 220951.dasm - Internal.JitInterface.JitConfigProvider:get_Instance():Internal.JitInterface.JitConfigProvider (FullOpts)

@@ -8,29 +8,29 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M51643_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M51643_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - xor edi, edi - cmp gword ptr [rbx], 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rdi], 0
setne dil
+ movzx rdi, dil
call [<unknown method>] ; gcr arg pop 0
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=29 bbWeight=1 PerfScore 9.50
+ ;; size=41 bbWeight=1 PerfScore 9.75
G_M51643_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 32, prolog size 1, PerfScore 12.00, instruction count 9, allocated bytes for code 32 (MethodHash=610c3644) for method Internal.JitInterface.JitConfigProvider:get_Instance():Internal.JitInterface.JitConfigProvider (FullOpts)
+; Total bytes of code 47, prolog size 1, PerfScore 12.00, instruction count 10, allocated bytes for code 47 (MethodHash=610c3644) for method Internal.JitInterface.JitConfigProvider:get_Instance():Internal.JitInterface.JitConfigProvider (FullOpts)
; ============================================================ Unwind Info: @@ -43,4 +43,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
libraries_tests.run.linux.x64.Release.mch
-10 (-41.67%) : 420469.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
@@ -9,10 +9,12 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]>
-; V01 arg1 [V01,T00] ( 4, 4 ) short -> rsi single-def -; V02 arg2 [V02,T01] ( 4, 4 ) short -> rdx single-def
+; V01 arg1 [V01,T00] ( 3, 3 ) short -> rsi single-def +; V02 arg2 [V02,T01] ( 3, 3 ) short -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 2, 2 ) short -> rax "Inline return value spill temp"
+; V04 tmp1 [V04,T04] ( 2, 2 ) short -> rax "Inline return value spill temp" +; V05 cse0 [V05,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V06 cse1 [V06,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -21,17 +23,14 @@ G_M9496_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M9496_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, si movsx rcx, dx
- movsx rdi, si - movsx rdx, dx
cmp eax, ecx
- mov eax, edx - cmovle eax, edi - ;; size=23 bbWeight=1 PerfScore 1.75
+ cmovg eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M9496_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 24 (MethodHash=422ddae7) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=422ddae7) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
; ============================================================ Unwind Info:

-10 (-41.67%) : 419950.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> rdi single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> rsi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> rdi single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) short -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) short -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,17 +22,14 @@ G_M43536_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M43536_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, di movsx rcx, si
- movsx rdx, di - movsx rdi, si
cmp eax, ecx
- mov eax, edi - cmovle eax, edx - ;; size=23 bbWeight=1 PerfScore 1.75
+ cmovg eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M43536_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 24 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Instrumented Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Instrumented Tier1)
; ============================================================ Unwind Info:

-10 (-41.67%) : 428966.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rdi single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rsi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rdi single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,17 +22,14 @@ G_M10845_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M10845_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, dil movzx rcx, sil
- movzx rdx, dil - movzx rdi, sil
cmp eax, ecx
- mov eax, edi - cmovge eax, edx - ;; size=23 bbWeight=1 PerfScore 1.75
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M10845_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 24 (MethodHash=2beed5a2) for method System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=2beed5a2) for method System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
; ============================================================ Unwind Info:

+37 (+51.39%) : 322648.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)

@@ -9,32 +9,36 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 9, 5.00) byref -> rbx single-def
+; V00 arg0 [V00,T00] ( 8, 4.58) byref -> rbx single-def
; V01 arg1 [V01,T02] ( 3, 2.58) byref -> r15 single-def ; V02 arg2 [V02,T03] ( 3, 2.58) ref -> rdx class-hnd single-def <System.Reflection.MethodBase> ; V03 arg3 [V03,T01] ( 3, 3 ) ubyte -> rcx single-def ; V04 arg4 [V04,T04] ( 3, 2.58) ubyte -> r8 single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V06 cse0 [V06,T05] ( 5, 2.42) int -> r14 multi-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M6910_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+0x10]
+ push rax + lea rbp, [rsp+0x20]
mov rbx, rdi ; byrRegs +[rbx] mov r15, rsi ; byrRegs +[r15]
- ;; size=15 bbWeight=1 PerfScore 4.00
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M6910_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx r15}, byref, isz ; gcrRegs +[rdx] test cl, cl jne SHORT G_M6910_IG07
- test byte ptr [rbx], 1
+ mov r14d, dword ptr [rbx] + test r14b, 1
je SHORT G_M6910_IG05
- ;; size=9 bbWeight=1 PerfScore 5.25
+ ;; size=13 bbWeight=1 PerfScore 4.50
G_M6910_IG03: ; bbWeight=0.58, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx r15}, byref movzx rsi, r8b mov rdi, rdx @@ -51,31 +55,41 @@ G_M6910_IG03: ; bbWeight=0.58, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx or dword ptr [rbx], 2 ;; size=27 bbWeight=0.58 PerfScore 4.67 G_M6910_IG04: ; bbWeight=0.58, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.58 PerfScore 1.46
+ ;; size=11 bbWeight=0.58 PerfScore 1.90
G_M6910_IG05: ; bbWeight=0.42, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
- or dword ptr [rbx], 1 - ;; size=3 bbWeight=0.42 PerfScore 1.25
+ or r14d, 1 + mov dword ptr [rbx], r14d + ;; size=7 bbWeight=0.42 PerfScore 0.52
G_M6910_IG06: ; bbWeight=0.42, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.42 PerfScore 1.04
+ ;; size=11 bbWeight=0.42 PerfScore 1.35
G_M6910_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
- or dword ptr [rbx], 2 - ;; size=3 bbWeight=0 PerfScore 0.00
+ mov r14d, dword ptr [rbx] + mov eax, r14d + or eax, 2 + mov dword ptr [rbx], eax + ;; size=11 bbWeight=0 PerfScore 0.00
G_M6910_IG08: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 72, prolog size 9, PerfScore 17.67, instruction count 31, allocated bytes for code 72 (MethodHash=7fd0e501) for method System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
+; Total bytes of code 109, prolog size 12, PerfScore 18.94, instruction count 44, allocated bytes for code 109 (MethodHash=7fd0e501) for method System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
; ============================================================ Unwind Info: @@ -83,11 +97,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)

+37 (+51.39%) : 331608.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)

@@ -9,32 +9,36 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 9, 5.00) byref -> rbx single-def
+; V00 arg0 [V00,T00] ( 8, 4.57) byref -> rbx single-def
; V01 arg1 [V01,T02] ( 3, 2.57) byref -> r15 single-def ; V02 arg2 [V02,T03] ( 3, 2.57) ref -> rdx class-hnd single-def <System.Reflection.MethodBase> ; V03 arg3 [V03,T01] ( 3, 3 ) ubyte -> rcx single-def ; V04 arg4 [V04,T04] ( 3, 2.57) ubyte -> r8 single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V06 cse0 [V06,T05] ( 5, 2.43) int -> r14 multi-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M6910_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+0x10]
+ push rax + lea rbp, [rsp+0x20]
mov rbx, rdi ; byrRegs +[rbx] mov r15, rsi ; byrRegs +[r15]
- ;; size=15 bbWeight=1 PerfScore 4.00
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M6910_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx r15}, byref, isz ; gcrRegs +[rdx] test cl, cl jne SHORT G_M6910_IG07
- test byte ptr [rbx], 1
+ mov r14d, dword ptr [rbx] + test r14b, 1
je SHORT G_M6910_IG05
- ;; size=9 bbWeight=1 PerfScore 5.25
+ ;; size=13 bbWeight=1 PerfScore 4.50
G_M6910_IG03: ; bbWeight=0.57, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx r15}, byref movzx rsi, r8b mov rdi, rdx @@ -51,31 +55,41 @@ G_M6910_IG03: ; bbWeight=0.57, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx or dword ptr [rbx], 2 ;; size=27 bbWeight=0.57 PerfScore 4.57 G_M6910_IG04: ; bbWeight=0.57, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.57 PerfScore 1.43
+ ;; size=11 bbWeight=0.57 PerfScore 1.86
G_M6910_IG05: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
- or dword ptr [rbx], 1 - ;; size=3 bbWeight=0.43 PerfScore 1.29
+ or r14d, 1 + mov dword ptr [rbx], r14d + ;; size=7 bbWeight=0.43 PerfScore 0.54
G_M6910_IG06: ; bbWeight=0.43, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.43 PerfScore 1.07
+ ;; size=11 bbWeight=0.43 PerfScore 1.39
G_M6910_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
- or dword ptr [rbx], 2 - ;; size=3 bbWeight=0 PerfScore 0.00
+ mov r14d, dword ptr [rbx] + mov eax, r14d + or eax, 2 + mov dword ptr [rbx], eax + ;; size=11 bbWeight=0 PerfScore 0.00
G_M6910_IG08: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 72, prolog size 9, PerfScore 17.61, instruction count 31, allocated bytes for code 72 (MethodHash=7fd0e501) for method System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
+; Total bytes of code 109, prolog size 12, PerfScore 18.86, instruction count 44, allocated bytes for code 109 (MethodHash=7fd0e501) for method System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
; ============================================================ Unwind Info: @@ -83,11 +97,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)

+37 (+51.39%) : 341412.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)

@@ -9,32 +9,36 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 9, 5.00) byref -> rbx single-def
+; V00 arg0 [V00,T00] ( 8, 4.67) byref -> rbx single-def
; V01 arg1 [V01,T02] ( 3, 2.67) byref -> r15 single-def ; V02 arg2 [V02,T03] ( 3, 2.67) ref -> rdx class-hnd single-def <System.Reflection.MethodBase> ; V03 arg3 [V03,T01] ( 3, 3 ) ubyte -> rcx single-def ; V04 arg4 [V04,T04] ( 3, 2.67) ubyte -> r8 single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V06 cse0 [V06,T05] ( 5, 2.33) int -> r14 multi-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M6910_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+0x10]
+ push rax + lea rbp, [rsp+0x20]
mov rbx, rdi ; byrRegs +[rbx] mov r15, rsi ; byrRegs +[r15]
- ;; size=15 bbWeight=1 PerfScore 4.00
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M6910_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx r15}, byref, isz ; gcrRegs +[rdx] test cl, cl jne SHORT G_M6910_IG07
- test byte ptr [rbx], 1
+ mov r14d, dword ptr [rbx] + test r14b, 1
je SHORT G_M6910_IG05
- ;; size=9 bbWeight=1 PerfScore 5.25
+ ;; size=13 bbWeight=1 PerfScore 4.50
G_M6910_IG03: ; bbWeight=0.67, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx r15}, byref movzx rsi, r8b mov rdi, rdx @@ -51,31 +55,41 @@ G_M6910_IG03: ; bbWeight=0.67, gcrefRegs=0004 {rdx}, byrefRegs=8008 {rbx or dword ptr [rbx], 2 ;; size=27 bbWeight=0.67 PerfScore 5.33 G_M6910_IG04: ; bbWeight=0.67, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.67 PerfScore 1.67
+ ;; size=11 bbWeight=0.67 PerfScore 2.17
G_M6910_IG05: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
- or dword ptr [rbx], 1 - ;; size=3 bbWeight=0.33 PerfScore 1.00
+ or r14d, 1 + mov dword ptr [rbx], r14d + ;; size=7 bbWeight=0.33 PerfScore 0.42
G_M6910_IG06: ; bbWeight=0.33, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.33 PerfScore 0.83
+ ;; size=11 bbWeight=0.33 PerfScore 1.08
G_M6910_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
- or dword ptr [rbx], 2 - ;; size=3 bbWeight=0 PerfScore 0.00
+ mov r14d, dword ptr [rbx] + mov eax, r14d + or eax, 2 + mov dword ptr [rbx], eax + ;; size=11 bbWeight=0 PerfScore 0.00
G_M6910_IG08: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 72, prolog size 9, PerfScore 18.08, instruction count 31, allocated bytes for code 72 (MethodHash=7fd0e501) for method System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
+; Total bytes of code 109, prolog size 12, PerfScore 19.50, instruction count 44, allocated bytes for code 109 (MethodHash=7fd0e501) for method System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
; ============================================================ Unwind Info: @@ -83,11 +97,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

-10 (-41.67%) : 160533.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)

@@ -9,10 +9,12 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]>
-; V01 arg1 [V01,T00] ( 4, 4 ) short -> rsi single-def -; V02 arg2 [V02,T01] ( 4, 4 ) short -> rdx single-def
+; V01 arg1 [V01,T00] ( 3, 3 ) short -> rsi single-def +; V02 arg2 [V02,T01] ( 3, 3 ) short -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 2, 2 ) short -> rax "Inline return value spill temp"
+; V04 tmp1 [V04,T04] ( 2, 2 ) short -> rax "Inline return value spill temp" +; V05 cse0 [V05,T02] ( 3, 3 ) int -> rcx "CSE - unknown" +; V06 cse1 [V06,T03] ( 3, 3 ) int -> rax "CSE - unknown"
; ; Lcl frame size = 0 @@ -21,17 +23,14 @@ G_M57734_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M57734_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, si movsx rcx, dx
- movsx rdi, si - movsx rdx, dx
cmp eax, ecx
- mov eax, edx - cmovge eax, edi - ;; size=23 bbWeight=1 PerfScore 1.75
+ cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M57734_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 24 (MethodHash=eced1e79) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=eced1e79) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
; ============================================================ Unwind Info:

-10 (-41.67%) : 160523.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)

@@ -9,10 +9,12 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]>
-; V01 arg1 [V01,T00] ( 4, 4 ) short -> rsi single-def -; V02 arg2 [V02,T01] ( 4, 4 ) short -> rdx single-def
+; V01 arg1 [V01,T00] ( 3, 3 ) short -> rsi single-def +; V02 arg2 [V02,T01] ( 3, 3 ) short -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 2, 2 ) short -> rax "Inline return value spill temp"
+; V04 tmp1 [V04,T04] ( 2, 2 ) short -> rax "Inline return value spill temp" +; V05 cse0 [V05,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V06 cse1 [V06,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -21,17 +23,14 @@ G_M9496_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M9496_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, si movsx rcx, dx
- movsx rdi, si - movsx rdx, dx
cmp eax, ecx
- mov eax, edx - cmovle eax, edi - ;; size=23 bbWeight=1 PerfScore 1.75
+ cmovg eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M9496_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 24 (MethodHash=422ddae7) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=422ddae7) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
; ============================================================ Unwind Info:

-9 (-40.91%) : 160409.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)

@@ -9,10 +9,12 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]>
-; V01 arg1 [V01,T00] ( 4, 4 ) ubyte -> rsi single-def -; V02 arg2 [V02,T01] ( 4, 4 ) ubyte -> rdx single-def
+; V01 arg1 [V01,T00] ( 3, 3 ) ubyte -> rsi single-def +; V02 arg2 [V02,T01] ( 3, 3 ) ubyte -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V04 tmp1 [V04,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V05 cse0 [V05,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V06 cse1 [V06,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -21,17 +23,14 @@ G_M7178_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M7178_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, sil movzx rcx, dl
- movzx rdi, sil - movzx rdx, dl
cmp eax, ecx
- mov eax, edx - cmovge eax, edi - ;; size=21 bbWeight=1 PerfScore 1.75
+ cmovl eax, ecx + ;; size=12 bbWeight=1 PerfScore 1.00
G_M7178_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 22 (MethodHash=1571e3f5) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 13, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 13 (MethodHash=1571e3f5) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
; ============================================================ Unwind Info:

+13 (+46.43%) : 17580.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (FullOpts)

@@ -8,16 +8,15 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M57825_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M57825_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rax], 0
jne SHORT G_M57825_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M57825_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -25,15 +24,16 @@ G_M57825_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcr arg pop 0 ;; size=6 bbWeight=0.50 PerfScore 1.50 G_M57825_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M57825_IG05: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 28, prolog size 1, PerfScore 10.25, instruction count 8, allocated bytes for code 28 (MethodHash=e3591e1e) for method Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (FullOpts)
+; Total bytes of code 41, prolog size 1, PerfScore 10.25, instruction count 9, allocated bytes for code 41 (MethodHash=e3591e1e) for method Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (FullOpts)
; ============================================================ Unwind Info: @@ -46,4 +46,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+20 (+47.62%) : 65471.dasm - System.CodeDom.Tests.TempFileCollectionTests:TempDirectory():System.String (FullOpts)
@@ -11,16 +11,15 @@ ;* V00 loc0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.IO.DirectoryInfo>
-; V03 cse0 [V03,T00] ( 4, 3.50) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M38716_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M38716_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rdi], 0
jne SHORT G_M38716_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M38716_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -31,20 +30,21 @@ G_M38716_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov rsi, gword ptr [rax+0x08] ; gcrRegs +[rsi]
- mov rdi, rbx
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi]
- ;; size=20 bbWeight=0.50 PerfScore 3.25
+ ;; size=27 bbWeight=0.50 PerfScore 3.25
G_M38716_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M38716_IG05: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 42, prolog size 1, PerfScore 12.00, instruction count 12, allocated bytes for code 42 (MethodHash=7a0b68c3) for method System.CodeDom.Tests.TempFileCollectionTests:TempDirectory():System.String (FullOpts)
+; Total bytes of code 62, prolog size 1, PerfScore 12.00, instruction count 13, allocated bytes for code 62 (MethodHash=7a0b68c3) for method System.CodeDom.Tests.TempFileCollectionTests:TempDirectory():System.String (FullOpts)
; ============================================================ Unwind Info: @@ -57,4 +57,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+20 (+51.28%) : 175954.dasm - System.Xml.RwFactoryWriterTests.CModCmdLine:get_CmdLine():OLEDB.Test.ModuleCore.MyDict`2[System.String,System.String] (FullOpts)
@@ -8,38 +8,38 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 4, 3.50) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M40017_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M40017_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rax], 0
jne SHORT G_M40017_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M40017_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [OLEDB.Test.ModuleCore.CModInfo:get_Options():OLEDB.Test.ModuleCore.MyDict`2[System.String,System.String]] ; gcrRegs +[rax] ; gcr arg pop 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rsi, rax ; gcrRegs +[rsi]
- mov rdi, rbx
call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi]
- ;; size=17 bbWeight=0.50 PerfScore 2.25
+ ;; size=24 bbWeight=0.50 PerfScore 2.25
G_M40017_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M40017_IG05: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 39, prolog size 1, PerfScore 11.00, instruction count 11, allocated bytes for code 39 (MethodHash=8f0763ae) for method System.Xml.RwFactoryWriterTests.CModCmdLine:get_CmdLine():OLEDB.Test.ModuleCore.MyDict`2[System.String,System.String] (FullOpts)
+; Total bytes of code 59, prolog size 1, PerfScore 11.00, instruction count 12, allocated bytes for code 59 (MethodHash=8f0763ae) for method System.Xml.RwFactoryWriterTests.CModCmdLine:get_CmdLine():OLEDB.Test.ModuleCore.MyDict`2[System.String,System.String] (FullOpts)
; ============================================================ Unwind Info: @@ -52,4 +52,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
realworld.run.linux.x64.checked.mch
-11 (-17.19%) : 13173.dasm - Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]:b__0(byref):this (FullOpts)
@@ -7,33 +7,28 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]>
; V01 arg1 [V01,T03] ( 3, 3 ) byref -> r15 single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T04] ( 3, 3 ) byref -> r14 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 3, 6 ) ref -> rax "delegate invoke call" -; V05 rat1 [V05,T02] ( 3, 6 ) ref -> rax "delegate invoke call"
+; V03 rat0 [V03,T01] ( 3, 6 ) ref -> rax "delegate invoke call" +; V04 rat1 [V04,T02] ( 3, 6 ) ref -> rax "delegate invoke call"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M3149_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp push r15
- push r14
push rbx
- push rax - lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x10]
mov rbx, rdi ; gcrRegs +[rbx] mov r15, rsi ; byrRegs +[r15]
- ;; size=18 bbWeight=1 PerfScore 6.00
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M3149_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref mov rax, gword ptr [rbx+0x08] ; gcrRegs +[rax]
- lea r14, bword ptr [rbx+0x18] - ; byrRegs +[r14] - mov rsi, r14
+ lea rsi, bword ptr [rbx+0x18]
; byrRegs +[rsi] mov rdi, gword ptr [rax+0x08] ; gcrRegs +[rdi] @@ -42,23 +37,21 @@ G_M3149_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, b ; byrRegs -[rsi] mov rax, gword ptr [rbx+0x10] ; gcrRegs +[rax]
- mov rsi, r14
+ lea rsi, bword ptr [rbx+0x18]
; byrRegs +[rsi] mov rdx, r15 ; byrRegs +[rdx] mov rdi, gword ptr [rax+0x08] ; gcrRegs +[rdi]
- ;; size=32 bbWeight=1 PerfScore 12.25
+ ;; size=30 bbWeight=1 PerfScore 12.25
G_M3149_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
pop rbx
- pop r14
pop r15 pop rbp tail.jmp [rax+0x18]<unknown method>
- ;; size=14 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 64, prolog size 12, PerfScore 22.50, instruction count 23, allocated bytes for code 64 (MethodHash=ab8bf3b2) for method Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]:<GetMappingGetter>b__0(byref):this (FullOpts)
+; Total bytes of code 53, prolog size 9, PerfScore 19.75, instruction count 18, allocated bytes for code 53 (MethodHash=ab8bf3b2) for method Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]:<GetMappingGetter>b__0(byref):this (FullOpts)
; ============================================================ Unwind Info: @@ -66,13 +59,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ CodeOffset: 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)

-11 (-17.19%) : 13249.dasm - Microsoft.ML.Data.RowCursorUtils+<>cDisplayClass4_0`2[uint,ulong]:b0(byref):this (FullOpts)

@@ -7,33 +7,28 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]>
; V01 arg1 [V01,T03] ( 3, 3 ) byref -> r15 single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T04] ( 3, 3 ) byref -> r14 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 3, 6 ) ref -> rax "delegate invoke call" -; V05 rat1 [V05,T02] ( 3, 6 ) ref -> rax "delegate invoke call"
+; V03 rat0 [V03,T01] ( 3, 6 ) ref -> rax "delegate invoke call" +; V04 rat1 [V04,T02] ( 3, 6 ) ref -> rax "delegate invoke call"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M39893_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp push r15
- push r14
push rbx
- push rax - lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x10]
mov rbx, rdi ; gcrRegs +[rbx] mov r15, rsi ; byrRegs +[r15]
- ;; size=18 bbWeight=1 PerfScore 6.00
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M39893_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref mov rax, gword ptr [rbx+0x08] ; gcrRegs +[rax]
- lea r14, bword ptr [rbx+0x18] - ; byrRegs +[r14] - mov rsi, r14
+ lea rsi, bword ptr [rbx+0x18]
; byrRegs +[rsi] mov rdi, gword ptr [rax+0x08] ; gcrRegs +[rdi] @@ -42,23 +37,21 @@ G_M39893_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, ; byrRegs -[rsi] mov rax, gword ptr [rbx+0x10] ; gcrRegs +[rax]
- mov rsi, r14
+ lea rsi, bword ptr [rbx+0x18]
; byrRegs +[rsi] mov rdx, r15 ; byrRegs +[rdx] mov rdi, gword ptr [rax+0x08] ; gcrRegs +[rdi]
- ;; size=32 bbWeight=1 PerfScore 12.25
+ ;; size=30 bbWeight=1 PerfScore 12.25
G_M39893_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
pop rbx
- pop r14
pop r15 pop rbp tail.jmp [rax+0x18]<unknown method>
- ;; size=14 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 64, prolog size 12, PerfScore 22.50, instruction count 23, allocated bytes for code 64 (MethodHash=04d9642a) for method Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
+; Total bytes of code 53, prolog size 9, PerfScore 19.75, instruction count 18, allocated bytes for code 53 (MethodHash=04d9642a) for method Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
; ============================================================ Unwind Info: @@ -66,13 +59,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ CodeOffset: 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)

-11 (-17.19%) : 13575.dasm - Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>cDisplayClass18_02[Microsoft.ML.Data.VBuffer1[float],Microsoft.ML.Data.VBuffer`1[float]]:b0(byref):this (FullOpts)

@@ -7,33 +7,28 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],Microsoft.ML.Data.VBuffer`1[float]]>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],Microsoft.ML.Data.VBuffer`1[float]]>
; V01 arg1 [V01,T03] ( 3, 3 ) byref -> r15 single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T04] ( 3, 3 ) byref -> r14 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 3, 6 ) ref -> rax "delegate invoke call" -; V05 rat1 [V05,T02] ( 3, 6 ) ref -> rax "delegate invoke call"
+; V03 rat0 [V03,T01] ( 3, 6 ) ref -> rax "delegate invoke call" +; V04 rat1 [V04,T02] ( 3, 6 ) ref -> rax "delegate invoke call"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M37368_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp push r15
- push r14
push rbx
- push rax - lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x10]
mov rbx, rdi ; gcrRegs +[rbx] mov r15, rsi ; byrRegs +[r15]
- ;; size=18 bbWeight=1 PerfScore 6.00
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M37368_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref mov rax, gword ptr [rbx+0x08] ; gcrRegs +[rax]
- lea r14, bword ptr [rbx+0x18] - ; byrRegs +[r14] - mov rsi, r14
+ lea rsi, bword ptr [rbx+0x18]
; byrRegs +[rsi] mov rdi, gword ptr [rax+0x08] ; gcrRegs +[rdi] @@ -42,23 +37,21 @@ G_M37368_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, ; byrRegs -[rsi] mov rax, gword ptr [rbx+0x10] ; gcrRegs +[rax]
- mov rsi, r14
+ lea rsi, bword ptr [rbx+0x18]
; byrRegs +[rsi] mov rdx, r15 ; byrRegs +[rdx] mov rdi, gword ptr [rax+0x08] ; gcrRegs +[rdi]
- ;; size=32 bbWeight=1 PerfScore 12.25
+ ;; size=30 bbWeight=1 PerfScore 12.25
G_M37368_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
pop rbx
- pop r14
pop r15 pop rbp tail.jmp [rax+0x18]<unknown method>
- ;; size=14 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 64, prolog size 12, PerfScore 22.50, instruction count 23, allocated bytes for code 64 (MethodHash=61be6e07) for method Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],Microsoft.ML.Data.VBuffer`1[float]]:<GetValueGetter>b__0(byref):this (FullOpts)
+; Total bytes of code 53, prolog size 9, PerfScore 19.75, instruction count 18, allocated bytes for code 53 (MethodHash=61be6e07) for method Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],Microsoft.ML.Data.VBuffer`1[float]]:<GetValueGetter>b__0(byref):this (FullOpts)
; ============================================================ Unwind Info: @@ -66,13 +59,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ CodeOffset: 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)

+13 (+22.81%) : 15492.dasm - Microsoft.ML.Data.R4Adder:get_Instance():Microsoft.ML.Data.R4Adder (FullOpts)

@@ -10,17 +10,16 @@ ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.ML.Data.R4Adder>
-; V02 tmp2 [V02,T01] ( 2, 2 ) ref -> rsi single-def "argument with side effect" -; V03 cse0 [V03,T00] ( 3, 3 ) long -> rbx "CSE - aggressive"
+; V02 tmp2 [V02,T00] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M41979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
+ push rax
;; size=1 bbWeight=1 PerfScore 1.00 G_M41979_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rdi], 0
jne SHORT G_M41979_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M41979_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -41,15 +40,16 @@ G_M41979_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=35 bbWeight=0.50 PerfScore 1.50 G_M41979_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax]
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M41979_IG05: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 57, prolog size 1, PerfScore 10.25, instruction count 13, allocated bytes for code 57 (MethodHash=00705c04) for method Microsoft.ML.Data.R4Adder:get_Instance():Microsoft.ML.Data.R4Adder (FullOpts)
+; Total bytes of code 70, prolog size 1, PerfScore 10.25, instruction count 14, allocated bytes for code 70 (MethodHash=00705c04) for method Microsoft.ML.Data.R4Adder:get_Instance():Microsoft.ML.Data.R4Adder (FullOpts)
; ============================================================ Unwind Info: @@ -62,4 +62,4 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+21 (+26.25%) : 14009.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
@@ -11,66 +11,69 @@ ; V00 this [V00,T00] ( 7, 7 ) ref -> rbx this class-hnd single-def <System.Net.SystemNetworkCredential> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
-;* V03 tmp2 [V03,T04] ( 0, 0 ) ref -> zero-ref single-def
+;* V03 tmp2 [V03,T03] ( 0, 0 ) ref -> zero-ref single-def
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
-; V05 tmp4 [V05,T02] ( 4, 4.75) ref -> rdi single-def "CASTCLASS eval op1"
+; V05 tmp4 [V05,T01] ( 4, 4.75) ref -> rdi single-def "CASTCLASS eval op1"
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
-; V07 tmp6 [V07,T03] ( 4, 1.75) ref -> rdi class-hnd exact "Inline stloc first use temp" <<unknown class>>
+; V07 tmp6 [V07,T02] ( 4, 1.75) ref -> rdi class-hnd exact "Inline stloc first use temp" <<unknown class>>
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
-;* V09 tmp8 [V09,T05] ( 0, 0 ) ref -> zero-ref single-def
+;* V09 tmp8 [V09,T04] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
-; V11 cse0 [V11,T01] ( 5, 5 ) ref -> r15 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M45139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push r15
push rbx
+ push rax
lea rbp, [rsp+0x10] mov rbx, rdi ; gcrRegs +[rbx]
- ;; size=12 bbWeight=1 PerfScore 3.75
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M45139_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - mov gword ptr [rbx+0x10], r15 - mov gword ptr [rbx+0x10], r15 - mov rdi, gword ptr [rbx+0x18]
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
+ mov gword ptr [rbx+0x10], rdi + mov gword ptr [rbx+0x10], rdi + mov rdi, gword ptr [rbx+0x18]
test rdi, rdi je SHORT G_M45139_IG05 ;; size=27 bbWeight=1 PerfScore 5.50
-G_M45139_IG03: ; bbWeight=0.25, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M45139_IG03: ; bbWeight=0.25, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rax, 0xD1FFAB1E ; <unknown class> cmp qword ptr [rdi], rax je SHORT G_M45139_IG05 ;; size=15 bbWeight=0.25 PerfScore 1.06
-G_M45139_IG04: ; bbWeight=0.12, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M45139_IG04: ; bbWeight=0.12, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi] xor rdi, rdi ; gcrRegs +[rdi] ;; size=2 bbWeight=0.12 PerfScore 0.03
-G_M45139_IG05: ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz - mov gword ptr [rbx+0x18], r15
+G_M45139_IG05: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rbx+0x18], rax
test rdi, rdi je SHORT G_M45139_IG07
- ;; size=9 bbWeight=1 PerfScore 2.25 -G_M45139_IG06: ; bbWeight=0.50, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+ ;; size=19 bbWeight=1 PerfScore 2.50 +G_M45139_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax]
call [<unknown method>] ; gcrRegs -[rdi] ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M45139_IG07: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref - mov gword ptr [rbx+0x08], r15 - ;; size=4 bbWeight=1 PerfScore 1.00
+G_M45139_IG07: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rbx+0x08], rax + ;; size=14 bbWeight=1 PerfScore 1.25
G_M45139_IG08: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
pop rbx
- pop r15
pop rbp ret
- ;; size=5 bbWeight=1 PerfScore 2.50
+ ;; size=7 bbWeight=1 PerfScore 2.25
-; Total bytes of code 80, prolog size 9, PerfScore 17.59, instruction count 25, allocated bytes for code 80 (MethodHash=d2234fac) for method System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
+; Total bytes of code 101, prolog size 8, PerfScore 17.84, instruction count 27, allocated bytes for code 101 (MethodHash=d2234fac) for method System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -78,11 +81,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x04
+ SizeOfProlog : 0x03
CountOfUnwindCodes: 3 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
+ CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+31 (+37.80%) : 3268.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)

@@ -15,15 +15,14 @@ ;* V04 tmp4 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Runtime.InteropServices.OSPlatform> ;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String> ;* V06 tmp6 [V06 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V07 tmp7 [V07,T01] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V07 tmp7 [V07,T00] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V08 tmp8 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V09 tmp9 [V09 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V10 tmp10 [V10 ] ( 0, 0 ) ref -> zero-ref "field V01.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V11 tmp11 [V11,T04] ( 0, 0 ) ubyte -> zero-ref "field V02.hasValue (fldOffset=0x0)" P-INDEP -;* V12 tmp12 [V12,T05] ( 0, 0 ) ubyte -> zero-ref "field V02.value (fldOffset=0x1)" P-INDEP -;* V13 tmp13 [V13,T03] ( 0, 0 ) ref -> zero-ref single-def "field V04.<Name>k__BackingField (fldOffset=0x0)" P-INDEP -;* V14 cse0 [V14,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V15 cse1 [V15,T00] ( 4, 3.50) long -> rax "CSE - aggressive"
+;* V11 tmp11 [V11,T03] ( 0, 0 ) ubyte -> zero-ref "field V02.hasValue (fldOffset=0x0)" P-INDEP +;* V12 tmp12 [V12,T04] ( 0, 0 ) ubyte -> zero-ref "field V02.value (fldOffset=0x1)" P-INDEP +;* V13 tmp13 [V13,T02] ( 0, 0 ) ref -> zero-ref single-def "field V04.<Name>k__BackingField (fldOffset=0x0)" P-INDEP +;* V14 cse0 [V14,T01] ( 0, 0 ) long -> zero-ref "CSE - unknown"
; ; Lcl frame size = 0 @@ -41,14 +40,18 @@ G_M15369_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, jne SHORT G_M15369_IG05 ;; size=15 bbWeight=1 PerfScore 4.25 G_M15369_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov word ptr [rax], 1 - ;; size=5 bbWeight=0.50 PerfScore 0.50
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov byte ptr [rax], 1 + mov rax, 0xD1FFAB1E + mov byte ptr [rax], 0 + ;; size=26 bbWeight=0.50 PerfScore 1.25
G_M15369_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ mov rax, 0xD1FFAB1E ; static handle
cmp byte ptr [rax], 0 je SHORT G_M15369_IG08 mov rax, 0xD1FFAB1E movzx rax, byte ptr [rax]
- ;; size=18 bbWeight=1 PerfScore 6.25
+ ;; size=28 bbWeight=1 PerfScore 6.50
G_M15369_IG06: ; bbWeight=1, epilog, nogc, extend pop rbp ret @@ -64,7 +67,7 @@ G_M15369_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref int3 ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 82, prolog size 4, PerfScore 17.75, instruction count 20, allocated bytes for code 82 (MethodHash=8d23c3f6) for method Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)
+; Total bytes of code 113, prolog size 4, PerfScore 18.75, instruction count 24, allocated bytes for code 113 (MethodHash=8d23c3f6) for method Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)
; ============================================================ Unwind Info:

smoke_tests.nativeaot.linux.x64.checked.mch

-25 (-14.12%) : 12916.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryEnqueue(System.Net.Sockets.SocketAsyncEngine+SocketIOEvent):ubyte:this (FullOpts)

@@ -10,14 +10,18 @@ ; V00 this [V00,T01] ( 6, 23 ) ref -> rdi this class-hnd exact single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]> ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Net.Sockets.SocketAsyncEngine+SocketIOEvent> ; V02 loc0 [V02,T04] ( 5, 18 ) ref -> r15 class-hnd exact single-def <<unknown class>>
-; V03 loc1 [V03,T00] ( 7, 36.50) int -> r14 -; V04 loc2 [V04,T02] ( 5, 25 ) int -> r13
+; V03 loc1 [V03,T00] ( 6, 36 ) int -> [rbp-0x2C] spill-single-def +; V04 loc2 [V04,T02] ( 3, 24 ) int -> rcx
;* V05 loc3 [V05 ] ( 0, 0 ) int -> zero-ref ; V06 loc4 [V06,T03] ( 3, 20 ) int -> rcx ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T05] ( 2, 1.50) ref -> rsi single-def "field V01.<Context>k__BackingField (fldOffset=0x0)" P-INDEP -; V09 tmp2 [V09,T06] ( 2, 1.50) int -> rbx single-def "field V01.<Events>k__BackingField (fldOffset=0x8)" P-INDEP -; V10 tmp3 [V10,T07] ( 3, 3 ) byref -> r12 single-def "BlockOp address local"
+; V08 tmp1 [V08,T09] ( 2, 1.50) ref -> rsi single-def "field V01.<Context>k__BackingField (fldOffset=0x0)" P-INDEP +; V09 tmp2 [V09,T10] ( 2, 1.50) int -> rbx single-def "field V01.<Events>k__BackingField (fldOffset=0x8)" P-INDEP +; V10 tmp3 [V10,T11] ( 3, 3 ) byref -> r12 single-def "BlockOp address local" +; V11 cse0 [V11,T06] ( 2, 16 ) int -> rdx "CSE - unknown" +; V12 cse1 [V12,T07] ( 2, 16 ) long -> rcx "CSE - unknown" +; V13 cse2 [V13,T05] ( 4, 17 ) long -> r14 "CSE - unknown" +; V14 cse3 [V14,T08] ( 3, 8.50) int -> r13 "CSE - unknown"
; ; Lcl frame size = 8 @@ -38,27 +42,27 @@ G_M38678_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, ; gcrRegs +[r15] ;; size=4 bbWeight=1 PerfScore 2.00 G_M38678_IG03: ; bbWeight=8, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref, isz
- mov r14d, dword ptr [rdi+0xA0] - mov r13d, r14d - and r13d, dword ptr [rdi+0x18] - cmp r13d, dword ptr [r15+0x08] - jae G_M38678_IG11 - mov eax, r13d - lea rax, [rax+2*rax] - mov ecx, dword ptr [r15+8*rax+0x10] - sub ecx, r14d
+ mov eax, dword ptr [rdi+0xA0] + mov dword ptr [rbp-0x2C], eax + mov ecx, eax + and ecx, dword ptr [rdi+0x18] + mov edx, dword ptr [r15+0x08] + cmp ecx, edx + jae SHORT G_M38678_IG11 + lea r14, [rcx+2*rcx] + mov ecx, dword ptr [r15+8*r14+0x10] + sub ecx, eax
jne SHORT G_M38678_IG06
- ;; size=41 bbWeight=8 PerfScore 106.00
+ ;; size=35 bbWeight=8 PerfScore 106.00
G_M38678_IG04: ; bbWeight=4, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref, isz lea rcx, bword ptr [rdi+0xA0] ; byrRegs +[rcx]
- lea edx, [r14+0x01] - mov eax, r14d
+ lea r13d, [rax+0x01]
lock
- cmpxchg dword ptr [rcx], edx - cmp eax, r14d
+ cmpxchg dword ptr [rcx], r13d + cmp eax, dword ptr [rbp-0x2C]
jne SHORT G_M38678_IG03
- ;; size=23 bbWeight=4 PerfScore 82.00
+ ;; size=21 bbWeight=4 PerfScore 88.00
G_M38678_IG05: ; bbWeight=0.50, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[rdi] ; byrRegs -[rcx] @@ -85,9 +89,7 @@ G_M38678_IG08: ; bbWeight=0.50, epilog, nogc, extend ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M38678_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs +[rsi r15]
- mov edi, r13d - lea rdi, [rdi+2*rdi] - lea r12, bword ptr [r15+8*rdi+0x10]
+ lea r12, bword ptr [r15+8*r14+0x10]
; byrRegs +[r12] lea rdi, bword ptr [r12+0x08] ; byrRegs +[rdi] @@ -95,12 +97,9 @@ G_M38678_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=804 ; gcrRegs -[rsi] ; byrRegs -[rdi] mov dword ptr [r12+0x10], ebx
- mov eax, r13d - lea rax, [rax+2*rax] - inc r14d - mov dword ptr [r15+8*rax+0x10], r14d
+ mov dword ptr [r15+8*r14+0x10], r13d
mov eax, 1
- ;; size=47 bbWeight=0.50 PerfScore 3.25
+ ;; size=30 bbWeight=0.50 PerfScore 2.38
G_M38678_IG10: ; bbWeight=0.50, epilog, nogc, extend add rsp, 8 pop rbx @@ -119,7 +118,7 @@ G_M38678_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 177, prolog size 18, PerfScore 211.38, instruction count 60, allocated bytes for code 177 (MethodHash=f8ef68e9) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryEnqueue(System.Net.Sockets.SocketAsyncEngine+SocketIOEvent):ubyte:this (FullOpts)
+; Total bytes of code 152, prolog size 18, PerfScore 216.50, instruction count 55, allocated bytes for code 152 (MethodHash=f8ef68e9) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryEnqueue(System.Net.Sockets.SocketAsyncEngine+SocketIOEvent):ubyte:this (FullOpts)
; ============================================================ Cfi Info:

-10 (-11.76%) : 10378.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:InitializeInstance():Internal.Runtime.TypeLoader.TypeLoaderEnvironment (FullOpts)

@@ -12,15 +12,16 @@ ; V02 tmp1 [V02,T00] ( 4, 7 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <Internal.Runtime.TypeLoader.TypeLoaderEnvironment> ;* V03 tmp2 [V03 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V04 tmp3 [V04 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V05 cse0 [V05,T01] ( 3, 2.50) long -> r15 "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M17242_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG push rbp
+ push r15
push rbx
- push rax
lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ ;; size=9 bbWeight=1 PerfScore 3.50
G_M17242_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz lea rdi, [(reloc)] ; Internal.Runtime.TypeLoader.TypeLoaderEnvironment call CORINFO_HELP_NEWSFAST @@ -31,8 +32,8 @@ G_M17242_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rdi] call <unknown method> ; gcrRegs -[rax rdi]
- mov rdi, qword ptr [(reloc)] - add rdi, 8
+ mov r15, qword ptr [(reloc)] + lea rdi, [r15+0x08]
mov rsi, rbx ; gcrRegs +[rsi] xor rdx, rdx @@ -41,32 +42,31 @@ G_M17242_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs -[rdx rsi] +[rax] test rax, rax jne SHORT G_M17242_IG05
- ;; size=49 bbWeight=1 PerfScore 8.00
+ ;; size=49 bbWeight=1 PerfScore 8.25
G_M17242_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref ; gcrRegs -[rax] mov rax, rbx ; gcrRegs +[rax] ;; size=3 bbWeight=0.50 PerfScore 0.12 G_M17242_IG04: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 8
pop rbx
+ pop r15
pop rbp ret
- ;; size=7 bbWeight=0.50 PerfScore 1.12
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
G_M17242_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[rax rbx]
- mov rax, qword ptr [(reloc)] - mov rax, gword ptr [rax+0x08]
+ mov rax, gword ptr [r15+0x08]
; gcrRegs +[rax]
- ;; size=11 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 1.00
G_M17242_IG06: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 8
pop rbx
+ pop r15
pop rbp ret
- ;; size=7 bbWeight=0.50 PerfScore 1.12
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 85, prolog size 8, PerfScore 15.88, instruction count 27, allocated bytes for code 85 (MethodHash=43ffbca5) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:InitializeInstance():Internal.Runtime.TypeLoader.TypeLoaderEnvironment (FullOpts)
+; Total bytes of code 75, prolog size 9, PerfScore 15.38, instruction count 26, allocated bytes for code 75 (MethodHash=43ffbca5) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:InitializeInstance():Internal.Runtime.TypeLoader.TypeLoaderEnvironment (FullOpts)
; ============================================================ Cfi Info: @@ -74,6 +74,7 @@ Cfi Info: >> End offset : 0xd1ffab1e CodeOffset: 0x01 Op: AdjustCfaOffset Offset:0x8 CodeOffset: 0x01 Op: RelOffset DwarfReg:0x6 Offset:0x0
- CodeOffset: 0x02 Op: AdjustCfaOffset Offset:0x8 - CodeOffset: 0x02 Op: RelOffset DwarfReg:0x3 Offset:0x0
CodeOffset: 0x03 Op: AdjustCfaOffset Offset:0x8
+ CodeOffset: 0x03 Op: RelOffset DwarfReg:0xf Offset:0x0 + CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x8 + CodeOffset: 0x04 Op: RelOffset DwarfReg:0x3 Offset:0x0

-4 (-11.43%) : 6509.dasm - System.Action:InvokeOpenStaticThunk():this (FullOpts)

@@ -7,37 +7,39 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 3.60) ref -> rax this class-hnd exact single-def <System.Action>
+; V00 this [V00,T00] ( 5, 3.50) ref -> rdi this class-hnd exact single-def <System.Action>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 5, 1.10) long -> rax multi-def "CSE - unknown"
; ; Lcl frame size = 0 G_M62520_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG push rbp mov rbp, rsp
- mov rax, rdi - ; gcrRegs +[rax] - ;; size=7 bbWeight=1 PerfScore 1.50 -G_M62520_IG02: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz - test byte ptr [rax+0x18], 2 - jne SHORT G_M62520_IG04
+ ;; size=4 bbWeight=1 PerfScore 1.25 +G_M62520_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rdi] + test byte ptr [rdi+0x18], 2 + jne SHORT G_M62520_IG05
;; size=6 bbWeight=1 PerfScore 4.00
-G_M62520_IG03: ; bbWeight=0.40, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M62520_IG03: ; bbWeight=0.40, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + mov rax, qword ptr [rdi+0x18] + ;; size=4 bbWeight=0.40 PerfScore 0.80 +G_M62520_IG04: ; bbWeight=0.40, epilog, nogc, extend
pop rbp
- tail.jmp [rax+0x18] - ;; size=5 bbWeight=0.40 PerfScore 1.00 -G_M62520_IG04: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref - mov rdi, qword ptr [rax+0x18] - mov rdi, qword ptr [rdi+0x06] - mov rax, qword ptr [rax+0x18] - ; gcrRegs -[rax] - ;; size=12 bbWeight=0.10 PerfScore 0.60 -G_M62520_IG05: ; bbWeight=0.10, epilog, nogc, extend
+ tail.jmp rax + ;; size=4 bbWeight=0.40 PerfScore 1.00 +G_M62520_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref + mov rax, qword ptr [rdi+0x18] + mov rdi, qword ptr [rax+0x06] + ; gcrRegs -[rdi] + ;; size=8 bbWeight=0.10 PerfScore 0.40 +G_M62520_IG06: ; bbWeight=0.10, epilog, nogc, extend
pop rbp tail.jmp [rax-0x02] ;; size=5 bbWeight=0.10 PerfScore 0.25
-; Total bytes of code 35, prolog size 7, PerfScore 7.35, instruction count 12, allocated bytes for code 35 (MethodHash=f9b70bc7) for method System.Action:InvokeOpenStaticThunk():this (FullOpts)
+; Total bytes of code 31, prolog size 4, PerfScore 7.70, instruction count 11, allocated bytes for code 31 (MethodHash=f9b70bc7) for method System.Action:InvokeOpenStaticThunk():this (FullOpts)
; ============================================================ Cfi Info:

+30 (+20.55%) : 25428.dasm - Internal.Metadata.NativeFormat.ScopeDefinitionHandle:Equals(System.Object):ubyte:this (FullOpts)

@@ -8,41 +8,46 @@ ; Final local variable assignments ; ; V00 this [V00,T01] ( 4, 3 ) byref -> rdi this single-def
-; V01 arg1 [V01,T00] ( 13, 7 ) ref -> rbx class-hnd single-def <System.Object>
+; V01 arg1 [V01,T00] ( 12, 6.75) ref -> rbx class-hnd single-def <System.Object>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 tmp1 [V03,T04] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling QMark2" <Internal.Metadata.NativeFormat.ScopeDefinitionHandle> -;* V04 tmp2 [V04,T05] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling QMark2" <<unknown class>> -; V05 tmp3 [V05,T02] ( 2, 2 ) int -> r15 "impAppendStmt" -; V06 tmp4 [V06,T03] ( 2, 2 ) int -> r15 "impAppendStmt"
+;* V03 tmp1 [V03,T05] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling QMark2" <Internal.Metadata.NativeFormat.ScopeDefinitionHandle> +;* V04 tmp2 [V04,T06] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling QMark2" <<unknown class>> +; V05 tmp3 [V05,T03] ( 2, 2 ) int -> r14 "impAppendStmt" +; V06 tmp4 [V06,T04] ( 2, 2 ) int -> r14 "impAppendStmt" +; V07 cse0 [V07,T02] ( 7, 2.75) long -> r15 multi-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M46666_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+0x10]
+ push rax + lea rbp, [rsp+0x20]
mov rbx, rsi ; gcrRegs +[rbx]
- ;; size=12 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 5.75
G_M46666_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz ; byrRegs +[rdi] test rbx, rbx je SHORT G_M46666_IG04 ;; size=5 bbWeight=1 PerfScore 1.25 G_M46666_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz
+ mov r15, qword ptr [rbx]
lea rsi, [(reloc)] ; Internal.Metadata.NativeFormat.ScopeDefinitionHandle
- cmp qword ptr [rbx], rsi
+ cmp r15, rsi
jne SHORT G_M46666_IG08
- ;; size=12 bbWeight=0.25 PerfScore 1.12
+ ;; size=15 bbWeight=0.25 PerfScore 0.94
G_M46666_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz test rbx, rbx je SHORT G_M46666_IG09
- mov r15d, dword ptr [rdi]
+ mov r14d, dword ptr [rdi] + mov r15, qword ptr [rbx]
lea rsi, [(reloc)] ; Internal.Metadata.NativeFormat.ScopeDefinitionHandle
- cmp qword ptr [rbx], rsi
+ cmp r15, rsi
je SHORT G_M46666_IG06
- ;; size=20 bbWeight=0.50 PerfScore 3.88
+ ;; size=23 bbWeight=0.50 PerfScore 3.50
G_M46666_IG05: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref ; byrRegs -[rdi] mov rsi, rbx @@ -53,29 +58,32 @@ G_M46666_IG05: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ;; size=15 bbWeight=0.25 PerfScore 0.44 G_M46666_IG06: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref xor eax, eax
- cmp r15d, dword ptr [rbx+0x08]
+ cmp r14d, dword ptr [rbx+0x08]
sete al ;; size=9 bbWeight=0.50 PerfScore 2.12 G_M46666_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M46666_IG08: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, gcvars, byref, isz ; byrRegs +[rdi] lea rsi, [(reloc)] ; <unknown class>
- cmp qword ptr [rbx], rsi
+ cmp r15, rsi
jne SHORT G_M46666_IG13
- ;; size=12 bbWeight=0.25 PerfScore 1.12
+ ;; size=12 bbWeight=0.25 PerfScore 0.44
G_M46666_IG09: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz test rbx, rbx je SHORT G_M46666_IG13
- mov r15d, dword ptr [rdi]
+ mov r14d, dword ptr [rdi] + mov r15, qword ptr [rbx]
lea rsi, [(reloc)] ; <unknown class>
- cmp qword ptr [rbx], rsi
+ cmp r15, rsi
je SHORT G_M46666_IG11
- ;; size=20 bbWeight=0.50 PerfScore 3.88
+ ;; size=23 bbWeight=0.50 PerfScore 3.50
G_M46666_IG10: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref ; byrRegs -[rdi] mov rsi, rbx @@ -86,27 +94,31 @@ G_M46666_IG10: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ;; size=15 bbWeight=0.25 PerfScore 0.44 G_M46666_IG11: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref xor eax, eax
- cmp r15d, dword ptr [rbx+0x08]
+ cmp r14d, dword ptr [rbx+0x08]
sete al ;; size=9 bbWeight=0.50 PerfScore 2.12 G_M46666_IG12: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M46666_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[rbx] xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M46666_IG14: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 146, prolog size 9, PerfScore 24.00, instruction count 50, allocated bytes for code 146 (MethodHash=c80d49b5) for method Internal.Metadata.NativeFormat.ScopeDefinitionHandle:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 176, prolog size 12, PerfScore 25.50, instruction count 61, allocated bytes for code 176 (MethodHash=c80d49b5) for method Internal.Metadata.NativeFormat.ScopeDefinitionHandle:Equals(System.Object):ubyte:this (FullOpts)
; ============================================================ Cfi Info: @@ -116,5 +128,8 @@ Cfi Info: CodeOffset: 0x01 Op: RelOffset DwarfReg:0x6 Offset:0x0 CodeOffset: 0x03 Op: AdjustCfaOffset Offset:0x8 CodeOffset: 0x03 Op: RelOffset DwarfReg:0xf Offset:0x0
- CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x8 - CodeOffset: 0x04 Op: RelOffset DwarfReg:0x3 Offset:0x0
+ CodeOffset: 0x05 Op: AdjustCfaOffset Offset:0x8 + CodeOffset: 0x05 Op: RelOffset DwarfReg:0xe Offset:0x0 + CodeOffset: 0x06 Op: AdjustCfaOffset Offset:0x8 + CodeOffset: 0x06 Op: RelOffset DwarfReg:0x3 Offset:0x0 + CodeOffset: 0x07 Op: AdjustCfaOffset Offset:0x8

+30 (+20.55%) : 25468.dasm - Internal.Metadata.NativeFormat.ConstantStringArrayHandle:Equals(System.Object):ubyte:this (FullOpts)

@@ -8,41 +8,46 @@ ; Final local variable assignments ; ; V00 this [V00,T01] ( 4, 3 ) byref -> rdi this single-def
-; V01 arg1 [V01,T00] ( 13, 7 ) ref -> rbx class-hnd single-def <System.Object>
+; V01 arg1 [V01,T00] ( 12, 6.75) ref -> rbx class-hnd single-def <System.Object>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 tmp1 [V03,T04] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling QMark2" <Internal.Metadata.NativeFormat.ConstantStringArrayHandle> -;* V04 tmp2 [V04,T05] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling QMark2" <<unknown class>> -; V05 tmp3 [V05,T02] ( 2, 2 ) int -> r15 "impAppendStmt" -; V06 tmp4 [V06,T03] ( 2, 2 ) int -> r15 "impAppendStmt"
+;* V03 tmp1 [V03,T05] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling QMark2" <Internal.Metadata.NativeFormat.ConstantStringArrayHandle> +;* V04 tmp2 [V04,T06] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling QMark2" <<unknown class>> +; V05 tmp3 [V05,T03] ( 2, 2 ) int -> r14 "impAppendStmt" +; V06 tmp4 [V06,T04] ( 2, 2 ) int -> r14 "impAppendStmt" +; V07 cse0 [V07,T02] ( 7, 2.75) long -> r15 multi-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M37767_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+0x10]
+ push rax + lea rbp, [rsp+0x20]
mov rbx, rsi ; gcrRegs +[rbx]
- ;; size=12 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 5.75
G_M37767_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz ; byrRegs +[rdi] test rbx, rbx je SHORT G_M37767_IG04 ;; size=5 bbWeight=1 PerfScore 1.25 G_M37767_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz
+ mov r15, qword ptr [rbx]
lea rsi, [(reloc)] ; Internal.Metadata.NativeFormat.ConstantStringArrayHandle
- cmp qword ptr [rbx], rsi
+ cmp r15, rsi
jne SHORT G_M37767_IG08
- ;; size=12 bbWeight=0.25 PerfScore 1.12
+ ;; size=15 bbWeight=0.25 PerfScore 0.94
G_M37767_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz test rbx, rbx je SHORT G_M37767_IG09
- mov r15d, dword ptr [rdi]
+ mov r14d, dword ptr [rdi] + mov r15, qword ptr [rbx]
lea rsi, [(reloc)] ; Internal.Metadata.NativeFormat.ConstantStringArrayHandle
- cmp qword ptr [rbx], rsi
+ cmp r15, rsi
je SHORT G_M37767_IG06
- ;; size=20 bbWeight=0.50 PerfScore 3.88
+ ;; size=23 bbWeight=0.50 PerfScore 3.50
G_M37767_IG05: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref ; byrRegs -[rdi] mov rsi, rbx @@ -53,29 +58,32 @@ G_M37767_IG05: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ;; size=15 bbWeight=0.25 PerfScore 0.44 G_M37767_IG06: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref xor eax, eax
- cmp r15d, dword ptr [rbx+0x08]
+ cmp r14d, dword ptr [rbx+0x08]
sete al ;; size=9 bbWeight=0.50 PerfScore 2.12 G_M37767_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M37767_IG08: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, gcvars, byref, isz ; byrRegs +[rdi] lea rsi, [(reloc)] ; <unknown class>
- cmp qword ptr [rbx], rsi
+ cmp r15, rsi
jne SHORT G_M37767_IG13
- ;; size=12 bbWeight=0.25 PerfScore 1.12
+ ;; size=12 bbWeight=0.25 PerfScore 0.44
G_M37767_IG09: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz test rbx, rbx je SHORT G_M37767_IG13
- mov r15d, dword ptr [rdi]
+ mov r14d, dword ptr [rdi] + mov r15, qword ptr [rbx]
lea rsi, [(reloc)] ; <unknown class>
- cmp qword ptr [rbx], rsi
+ cmp r15, rsi
je SHORT G_M37767_IG11
- ;; size=20 bbWeight=0.50 PerfScore 3.88
+ ;; size=23 bbWeight=0.50 PerfScore 3.50
G_M37767_IG10: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref ; byrRegs -[rdi] mov rsi, rbx @@ -86,27 +94,31 @@ G_M37767_IG10: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ;; size=15 bbWeight=0.25 PerfScore 0.44 G_M37767_IG11: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref xor eax, eax
- cmp r15d, dword ptr [rbx+0x08]
+ cmp r14d, dword ptr [rbx+0x08]
sete al ;; size=9 bbWeight=0.50 PerfScore 2.12 G_M37767_IG12: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M37767_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[rbx] xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M37767_IG14: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 146, prolog size 9, PerfScore 24.00, instruction count 50, allocated bytes for code 146 (MethodHash=38bb6c78) for method Internal.Metadata.NativeFormat.ConstantStringArrayHandle:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 176, prolog size 12, PerfScore 25.50, instruction count 61, allocated bytes for code 176 (MethodHash=38bb6c78) for method Internal.Metadata.NativeFormat.ConstantStringArrayHandle:Equals(System.Object):ubyte:this (FullOpts)
; ============================================================ Cfi Info: @@ -116,5 +128,8 @@ Cfi Info: CodeOffset: 0x01 Op: RelOffset DwarfReg:0x6 Offset:0x0 CodeOffset: 0x03 Op: AdjustCfaOffset Offset:0x8 CodeOffset: 0x03 Op: RelOffset DwarfReg:0xf Offset:0x0
- CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x8 - CodeOffset: 0x04 Op: RelOffset DwarfReg:0x3 Offset:0x0
+ CodeOffset: 0x05 Op: AdjustCfaOffset Offset:0x8 + CodeOffset: 0x05 Op: RelOffset DwarfReg:0xe Offset:0x0 + CodeOffset: 0x06 Op: AdjustCfaOffset Offset:0x8 + CodeOffset: 0x06 Op: RelOffset DwarfReg:0x3 Offset:0x0 + CodeOffset: 0x07 Op: AdjustCfaOffset Offset:0x8

+22 (+22.22%) : 17527.dasm - System.Dynamic.Utils.TypeUtils:AreReferenceAssignable(System.Type,System.Type):ubyte (FullOpts)

@@ -7,22 +7,25 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 7, 5 ) ref -> rbx class-hnd single-def <System.Type>
+; V00 arg0 [V00,T00] ( 6, 4.50) ref -> rbx class-hnd single-def <System.Type>
; V01 arg1 [V01,T01] ( 6, 4.50) ref -> r15 class-hnd single-def <System.Type> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V03 cse0 [V03,T02] ( 3, 1.50) long -> r14 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M56504_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+0x10]
+ push rax + lea rbp, [rsp+0x20]
mov rbx, rdi ; gcrRegs +[rbx] mov r15, rsi ; gcrRegs +[r15]
- ;; size=15 bbWeight=1 PerfScore 4.00
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M56504_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz mov rdi, rbx ; gcrRegs +[rdi] @@ -38,17 +41,19 @@ G_M56504_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M56504_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M56504_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs +[rbx r15] mov rdi, rbx ; gcrRegs +[rdi]
- mov rax, qword ptr [rbx] - call [rax+0x170]<unknown method>
+ mov r14, qword ptr [rbx] + call [r14+0x170]<unknown method>
; gcrRegs -[rdi] test eax, eax jne SHORT G_M56504_IG07 @@ -63,26 +68,30 @@ G_M56504_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800 ; gcrRegs +[rdi] mov rsi, r15 ; gcrRegs +[rsi]
- mov rax, qword ptr [rbx] - ;; size=41 bbWeight=0.50 PerfScore 7.75
+ mov rax, r14 + ;; size=42 bbWeight=0.50 PerfScore 6.88
G_M56504_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp tail.jmp [rax+0x288]<unknown method>
- ;; size=11 bbWeight=0.50 PerfScore 1.75
+ ;; size=17 bbWeight=0.50 PerfScore 2.12
G_M56504_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[rbx rsi rdi r15] xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M56504_IG08: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15 pop rbp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 99, prolog size 9, PerfScore 19.00, instruction count 38, allocated bytes for code 99 (MethodHash=986e2347) for method System.Dynamic.Utils.TypeUtils:AreReferenceAssignable(System.Type,System.Type):ubyte (FullOpts)
+; Total bytes of code 121, prolog size 12, PerfScore 21.25, instruction count 46, allocated bytes for code 121 (MethodHash=986e2347) for method System.Dynamic.Utils.TypeUtils:AreReferenceAssignable(System.Type,System.Type):ubyte (FullOpts)
; ============================================================ Cfi Info: @@ -92,5 +101,8 @@ Cfi Info: CodeOffset: 0x01 Op: RelOffset DwarfReg:0x6 Offset:0x0 CodeOffset: 0x03 Op: AdjustCfaOffset Offset:0x8 CodeOffset: 0x03 Op: RelOffset DwarfReg:0xf Offset:0x0
- CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x8 - CodeOffset: 0x04 Op: RelOffset DwarfReg:0x3 Offset:0x0
+ CodeOffset: 0x05 Op: AdjustCfaOffset Offset:0x8 + CodeOffset: 0x05 Op: RelOffset DwarfReg:0xe Offset:0x0 + CodeOffset: 0x06 Op: AdjustCfaOffset Offset:0x8 + CodeOffset: 0x06 Op: RelOffset DwarfReg:0x3 Offset:0x0 + CodeOffset: 0x07 Op: AdjustCfaOffset Offset:0x8

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.linux.x64.checked.mch 5,801 2,925 2,608 268 -36,317 +41,410 -0.4876%
benchmarks.run_pgo.linux.x64.checked.mch 33,603 19,067 12,407 2,129 -166,223 +181,255 -0.6051%
benchmarks.run_tiered.linux.x64.checked.mch 2,692 1,782 810 100 -25,912 +11,633 -0.6204%
coreclr_tests.run.linux.x64.checked.mch 112,061 29,966 74,920 7,175 -541,695 +1,060,385 -0.7933%
libraries.crossgen2.linux.x64.checked.mch 19,656 9,439 8,782 1,435 -69,810 +115,098 -0.0360%
libraries.pmi.linux.x64.checked.mch 30,995 13,970 15,396 1,629 -116,503 +277,401 -0.1537%
libraries_tests.run.linux.x64.Release.mch 74,769 27,262 41,625 5,882 -282,582 +1,229,430 -0.3436%
librariestestsnotieredcompilation.run.linux.x64.Release.mch 64,177 28,961 32,626 2,590 -309,827 +596,135 -0.4373%
realworld.run.linux.x64.checked.mch 5,795 2,325 3,167 303 -25,749 +59,230 -0.1934%
smoke_tests.nativeaot.linux.x64.checked.mch 2,528 884 1,428 216 -5,512 +17,450 -0.0954%
352,077 136,581 193,769 21,727 -1,580,130 +3,589,427

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 31,780 2,071 29,709 6 (0.02%) 20 (0.06%)
benchmarks.run_pgo.linux.x64.checked.mch 156,239 58,375 97,864 4 (0.00%) 4 (0.00%)
benchmarks.run_tiered.linux.x64.checked.mch 64,164 49,119 15,045 4 (0.01%) 4 (0.01%)
coreclr_tests.run.linux.x64.checked.mch 609,138 362,858 246,280 7 (0.00%) 44 (0.01%)
libraries.crossgen2.linux.x64.checked.mch 266,352 15 266,337 1 (0.00%) 47 (0.02%)
libraries.pmi.linux.x64.checked.mch 301,914 6 301,908 14 (0.00%) 121 (0.04%)
libraries_tests.run.linux.x64.Release.mch 746,615 493,849 252,766 23 (0.00%) 459 (0.06%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 305,499 21,933 283,566 115 (0.04%) 380 (0.12%)
realworld.run.linux.x64.checked.mch 33,126 9 33,117 2 (0.01%) 14 (0.04%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,476 10 27,466 1 (0.00%) 5 (0.02%)
2,542,303 988,245 1,554,058 177 (0.01%) 1,098 (0.04%)

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: 12075262 (overridden on cmd)
Total bytes of diff: 12080355 (overridden on cmd)
Total bytes of delta: 5093 (0.04 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         803 : 2193.dasm (7.47 % of base)
         608 : 6850.dasm (5.08 % of base)
         590 : 19775.dasm (3.59 % of base)
         387 : 8828.dasm (3.01 % of base)
         337 : 20094.dasm (6.31 % of base)
         262 : 8419.dasm (2.64 % of base)
         251 : 2356.dasm (6.05 % of base)
         246 : 11086.dasm (4.42 % of base)
         240 : 11003.dasm (8.78 % of base)
         235 : 2657.dasm (5.69 % of base)
         235 : 11744.dasm (4.93 % of base)
         226 : 20640.dasm (5.25 % of base)
         206 : 8765.dasm (1.84 % of base)
         203 : 11006.dasm (4.46 % of base)
         194 : 21272.dasm (4.53 % of base)
         179 : 4635.dasm (12.05 % of base)
         174 : 7510.dasm (2.46 % of base)
         170 : 19795.dasm (3.77 % of base)
         160 : 14221.dasm (4.54 % of base)
         158 : 2506.dasm (3.71 % of base)

Top file improvements (bytes):
        -282 : 4747.dasm (-6.08 % of base)
        -186 : 6224.dasm (-2.03 % of base)
        -170 : 21028.dasm (-13.85 % of base)
        -159 : 23254.dasm (-7.45 % of base)
        -131 : 4237.dasm (-7.33 % of base)
        -124 : 22186.dasm (-6.88 % of base)
        -121 : 7591.dasm (-6.78 % of base)
        -120 : 4421.dasm (-13.51 % of base)
        -117 : 23251.dasm (-3.55 % of base)
        -114 : 7465.dasm (-5.93 % of base)
        -111 : 5979.dasm (-3.90 % of base)
        -104 : 28127.dasm (-16.51 % of base)
        -100 : 5635.dasm (-17.99 % of base)
        -100 : 12466.dasm (-2.17 % of base)
         -91 : 13452.dasm (-5.91 % of base)
         -88 : 4867.dasm (-4.80 % of base)
         -84 : 10765.dasm (-7.27 % of base)
         -84 : 20693.dasm (-5.27 % of base)
         -82 : 13595.dasm (-4.36 % of base)
         -81 : 955.dasm (-8.97 % of base)

98 total files with Code Size differences (49 improved, 49 regressed), 20 unchanged.

Top method regressions (bytes):
         803 (7.47 % of base) : 2193.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
         608 (5.08 % of base) : 6850.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
         590 (3.59 % of base) : 19775.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (FullOpts)
         387 (3.01 % of base) : 8828.dasm - MessagePack.MessagePackBinary:.cctor() (FullOpts)
         337 (6.31 % of base) : 20094.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         262 (2.64 % of base) : 8419.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
         251 (6.05 % of base) : 2356.dasm - Utf8Json.Internal.Emit.MetaType:.ctor(System.Type,System.Func`2[System.String,System.String],ubyte):this (FullOpts)
         246 (4.42 % of base) : 11086.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
         240 (8.78 % of base) : 11003.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
         235 (4.93 % of base) : 11744.dasm - System.Runtime.Serialization.Json.JsonFormatWriterGenerator+CriticalHelper:WriteCollection(System.Runtime.Serialization.DataContracts.CollectionDataContract):this (FullOpts)
         235 (5.69 % of base) : 2657.dasm - Utf8Json.Internal.AutomataDictionary+AutomataNode:EmitSearchNextCore(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder,System.Action`1[System.Collections.Generic.KeyValuePair`2[System.String,int]],System.Action,Utf8Json.Internal.AutomataDictionary+AutomataNode[],int) (FullOpts)
         226 (5.25 % of base) : 20640.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause]]:this (FullOpts)
         206 (1.84 % of base) : 8765.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (FullOpts)
         203 (4.46 % of base) : 11006.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this (FullOpts)
         194 (4.53 % of base) : 21272.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         179 (12.05 % of base) : 4635.dasm - ProtoBuf.Meta.MetaType:ResolveTupleConstructor(System.Type,byref):System.Reflection.ConstructorInfo (FullOpts)
         174 (2.46 % of base) : 7510.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         170 (3.77 % of base) : 19795.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
         160 (4.54 % of base) : 14221.dasm - System.Runtime.Serialization.Json.JsonFormatReaderGenerator+CriticalHelper:ReadValue(System.Type,System.String):System.Reflection.Emit.LocalBuilder:this (FullOpts)
         158 (3.71 % of base) : 2506.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+EmitInfo:.cctor() (FullOpts)

Top method improvements (bytes):
        -282 (-6.08 % of base) : 4747.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
        -186 (-2.03 % of base) : 6224.dasm - Product:CreateLists() (FullOpts)
        -170 (-13.85 % of base) : 21028.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -159 (-7.45 % of base) : 23254.dasm - System.Threading.ReaderWriterLockSlim:TryEnterWriteLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (FullOpts)
        -131 (-7.33 % of base) : 4237.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilitiesBenchmark:SetUp():this (FullOpts)
        -124 (-6.88 % of base) : 22186.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (FullOpts)
        -121 (-6.78 % of base) : 7591.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -120 (-13.51 % of base) : 4421.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
        -117 (-3.55 % of base) : 23251.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxExtensions:VisitRankSpecifiers[System.ValueTuple`2[System.__Canon,System.__Canon]](Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,System.Action`2[System.__Canon,System.ValueTuple`2[System.__Canon,System.__Canon]],byref) (FullOpts)
        -114 (-5.93 % of base) : 7465.dasm - System.Text.Json.Utf8JsonReader:GetNextSpan():ubyte:this (FullOpts)
        -111 (-3.90 % of base) : 5979.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -104 (-16.51 % of base) : 28127.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
        -100 (-17.99 % of base) : 5635.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
        -100 (-2.17 % of base) : 12466.dasm - Sigil.Emit`1[System.__Canon]:LoadElement(System.Type):Sigil.Emit`1[System.__Canon]:this (FullOpts)
         -91 (-5.91 % of base) : 13452.dasm - AssignJagged:second_assignments(int[][],short[][]) (FullOpts)
         -88 (-4.80 % of base) : 4867.dasm - ProtoBuf.Internal.Serializers.DefaultValueDecorator:EmitBranchIfDefaultValue(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.CodeLabel):this (FullOpts)
         -84 (-5.27 % of base) : 20693.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:MethodChecks(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (FullOpts)
         -84 (-7.27 % of base) : 10765.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (FullOpts)
         -82 (-4.36 % of base) : 13595.dasm - System.Xml.Serialization.XmlCustomFormatter:.cctor() (FullOpts)
         -81 (-8.97 % of base) : 955.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (FullOpts)

Top method regressions (percentages):
          13 (46.43 % of base) : 6223.dasm - Product:GetProductList():System.Collections.Generic.List`1[Product] (FullOpts)
          20 (31.25 % of base) : 11354.dasm - System.Runtime.Serialization.XmlFormatGeneratorStatics:get_MemberNamesField():System.Reflection.FieldInfo (FullOpts)
          21 (26.25 % of base) : 6822.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
          13 (22.81 % of base) : 2196.dasm - System.Type:get_DefaultBinder():System.Reflection.Binder (FullOpts)
          18 (21.95 % of base) : 21327.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass1:CanScheduleToStack(Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol):ubyte:this (FullOpts)
          13 (20.31 % of base) : 1107.dasm - System.AppDomain:get_CurrentDomain():System.AppDomain (FullOpts)
          20 (19.80 % of base) : 14267.dasm - System.Runtime.Serialization.JsonFormatGeneratorStatics:get_SerializationExceptionCtor():System.Reflection.ConstructorInfo (FullOpts)
          18 (19.57 % of base) : 20032.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol:IsValidWellKnownType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):ubyte:this (FullOpts)
          21 (18.10 % of base) : 15042.dasm - System.Xml.XmlElement:WriteTo(System.Xml.XmlWriter):this (FullOpts)
          19 (17.92 % of base) : 2486.dasm - System.Reflection.Emit.TypeNameBuilder:Append(System.String):this (FullOpts)
          31 (17.82 % of base) : 7729.dasm - Interop+OpenSsl:get_DisableTlsResume():ubyte (FullOpts)
          18 (17.65 % of base) : 13801.dasm - System.Runtime.Serialization.XmlFormatGeneratorStatics:get_GetItemContractMethod():System.Reflection.MethodInfo (FullOpts)
          18 (16.67 % of base) : 11778.dasm - System.Runtime.Serialization.JsonFormatGeneratorStatics:get_GetItemContractMethod():System.Reflection.MethodInfo (FullOpts)
          66 (16.58 % of base) : 4460.dasm - System.Linq.Expressions.Compiler.ILGen:EmitLoadElement(System.Reflection.Emit.ILGenerator,System.Type) (FullOpts)
          25 (16.34 % of base) : 15649.dasm - System.Text.RegularExpressions.Symbolic.UnicodeCategoryConditions:WordLetterForAnchors(System.Text.RegularExpressions.Symbolic.CharSetSolver):System.Text.RegularExpressions.Symbolic.BDD (FullOpts)
          12 (16.22 % of base) : 2210.dasm - System.Type:get_GenericTypeArguments():System.Type[]:this (FullOpts)
          22 (16.18 % of base) : 6688.dasm - System.Security.Cryptography.X509Certificates.OpenSslPkcs12Reader:GetPrivateKey(System.Security.Cryptography.AsymmetricAlgorithm):System.Security.Cryptography.SafeEvpPKeyHandle (FullOpts)
          18 (16.07 % of base) : 9739.dasm - System.SpanHelpers:Reverse[System.__Canon](byref,ulong) (FullOpts)
          28 (16.00 % of base) : 20843.dasm - Microsoft.CodeAnalysis.SymbolEqualityComparer:.cctor() (FullOpts)
          18 (15.52 % of base) : 14356.dasm - System.Runtime.Serialization.XmlFormatGeneratorStatics:get_NodeTypeProperty():System.Reflection.PropertyInfo (FullOpts)

Top method improvements (percentages):
         -10 (-23.26 % of base) : 10247.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
         -10 (-23.26 % of base) : 13661.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_10(System.Object):int:this (FullOpts)
         -10 (-23.26 % of base) : 13662.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
         -10 (-23.26 % of base) : 13663.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_14(System.Object):int:this (FullOpts)
         -10 (-23.26 % of base) : 13664.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_16(System.Object):int:this (FullOpts)
         -10 (-23.26 % of base) : 13665.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_18(System.Object):int:this (FullOpts)
         -10 (-23.26 % of base) : 10776.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_0(System.Object):int:this (FullOpts)
         -10 (-23.26 % of base) : 13346.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_0(System.Object):int:this (FullOpts)
         -10 (-23.26 % of base) : 13349.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
         -10 (-22.73 % of base) : 13038.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -10 (-22.73 % of base) : 10248.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
         -10 (-22.73 % of base) : 13656.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_0(System.Object):System.String:this (FullOpts)
         -10 (-22.73 % of base) : 13657.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
         -10 (-22.73 % of base) : 13658.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_4(System.Object):System.String:this (FullOpts)
         -10 (-22.73 % of base) : 13659.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_6(System.Object):System.String:this (FullOpts)
         -10 (-22.73 % of base) : 10777.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_2(System.Object):System.String:this (FullOpts)
         -10 (-22.73 % of base) : 13351.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_10(System.Object):System.String:this (FullOpts)
         -10 (-22.73 % of base) : 13347.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_2(System.Object):ubyte:this (FullOpts)
         -10 (-22.73 % of base) : 13348.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_4(System.Object):System.String:this (FullOpts)
         -10 (-22.73 % of base) : 13350.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_8(System.Object):ubyte:this (FullOpts)


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: 67899843 (overridden on cmd)
Total bytes of diff: 67914875 (overridden on cmd)
Total bytes of delta: 15032 (0.02 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         846 : 96646.dasm (9.59 % of base)
         500 : 127706.dasm (11.53 % of base)
         484 : 55329.dasm (11.18 % of base)
         484 : 60737.dasm (11.18 % of base)
         459 : 53077.dasm (10.24 % of base)
         457 : 49757.dasm (10.31 % of base)
         454 : 129015.dasm (10.48 % of base)
         447 : 148916.dasm (27.71 % of base)
         436 : 148906.dasm (27.06 % of base)
         429 : 137151.dasm (6.45 % of base)
         366 : 155521.dasm (12.02 % of base)
         315 : 137170.dasm (3.88 % of base)
         315 : 119230.dasm (5.39 % of base)
         309 : 115076.dasm (5.30 % of base)
         296 : 155520.dasm (7.98 % of base)
         295 : 134863.dasm (3.64 % of base)
         270 : 47026.dasm (7.74 % of base)
         267 : 39748.dasm (7.64 % of base)
         246 : 65657.dasm (5.77 % of base)
         238 : 133231.dasm (3.36 % of base)

Top file improvements (bytes):
        -211 : 103004.dasm (-12.29 % of base)
        -144 : 125270.dasm (-3.19 % of base)
        -120 : 55655.dasm (-7.08 % of base)
        -116 : 49584.dasm (-2.65 % of base)
        -102 : 128881.dasm (-0.92 % of base)
         -95 : 104212.dasm (-12.34 % of base)
         -95 : 107180.dasm (-12.34 % of base)
         -95 : 141542.dasm (-12.34 % of base)
         -95 : 142940.dasm (-12.34 % of base)
         -89 : 97641.dasm (-6.88 % of base)
         -85 : 128880.dasm (-0.87 % of base)
         -85 : 15017.dasm (-2.86 % of base)
         -84 : 98296.dasm (-1.03 % of base)
         -79 : 97777.dasm (-4.40 % of base)
         -78 : 150696.dasm (-5.49 % of base)
         -76 : 41666.dasm (-9.50 % of base)
         -75 : 33646.dasm (-5.66 % of base)
         -75 : 4205.dasm (-0.90 % of base)
         -75 : 8154.dasm (-3.61 % of base)
         -74 : 104129.dasm (-1.08 % of base)

98 total files with Code Size differences (40 improved, 58 regressed), 20 unchanged.

Top method regressions (bytes):
         846 (9.59 % of base) : 96646.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IMethodReference):this (Tier1)
         500 (11.53 % of base) : 127706.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         484 (11.18 % of base) : 55329.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         484 (11.18 % of base) : 60737.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         459 (10.24 % of base) : 53077.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         457 (10.31 % of base) : 49757.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         454 (10.48 % of base) : 129015.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         447 (27.71 % of base) : 148916.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier1-OSR)
         436 (27.06 % of base) : 148906.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier1-OSR)
         429 (6.45 % of base) : 137151.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
         366 (12.02 % of base) : 155521.dasm - StringSort:DoStringSortIteration(System.String[][],int,int):int (Tier1)
         315 (3.88 % of base) : 137170.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:.ctor(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,System.Text.RegularExpressions.RegexFindOptimizations,System.TimeSpan):this (Tier1)
         315 (5.39 % of base) : 119230.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (Tier1)
         309 (5.30 % of base) : 115076.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (Tier1)
         296 (7.98 % of base) : 155520.dasm - StringSort:Run():double:this (Tier1)
         295 (3.64 % of base) : 134863.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:.ctor(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,System.Text.RegularExpressions.RegexFindOptimizations,System.TimeSpan):this (Tier1)
         270 (7.74 % of base) : 47026.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         267 (7.64 % of base) : 39748.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         246 (5.77 % of base) : 65657.dasm - NeuralJagged:read_data_file():this (Tier1)
         238 (3.36 % of base) : 133231.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:IntroSort(System.Span`1[System.__Canon],int,System.Comparison`1[System.__Canon]) (Tier1)

Top method improvements (bytes):
        -211 (-12.29 % of base) : 103004.dasm - System.Threading.ReaderWriterLockSlim:TryEnterReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Tier1)
        -144 (-3.19 % of base) : 125270.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -120 (-7.08 % of base) : 55655.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1)
        -116 (-2.65 % of base) : 49584.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -102 (-0.92 % of base) : 128881.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
         -95 (-12.34 % of base) : 107180.dasm - System.Collections.Sort`1[System.__Canon]:LinqOrderByExtension():int:this (Tier1)
         -95 (-12.34 % of base) : 142940.dasm - System.Collections.Sort`1[System.__Canon]:LinqOrderByExtension():int:this (Tier1)
         -95 (-12.34 % of base) : 104212.dasm - System.Collections.Sort`1[System.__Canon]:LinqQuery():int:this (Tier1)
         -95 (-12.34 % of base) : 141542.dasm - System.Collections.Sort`1[System.__Canon]:LinqQuery():int:this (Tier1)
         -89 (-6.88 % of base) : 97641.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.ITypeDefinition):this (Tier1)
         -85 (-0.87 % of base) : 128880.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1)
         -85 (-2.86 % of base) : 15017.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -84 (-1.03 % of base) : 98296.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1)
         -79 (-4.40 % of base) : 97777.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Reflection.Metadata.StringHandle]]:IntroSort(System.Span`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Reflection.Metadata.StringHandle]],int,System.Comparison`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Reflection.Metadata.StringHandle]]) (Tier1)
         -78 (-5.49 % of base) : 150696.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (Tier1)
         -76 (-9.50 % of base) : 41666.dasm - System.Threading.PortableThreadPool:AdjustMaxWorkersActive():this (Tier1)
         -75 (-3.61 % of base) : 8154.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:Init(System.String,int,int,int,int,long,byref,byref):ubyte:this (Tier1)
         -75 (-0.90 % of base) : 4205.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
         -75 (-5.66 % of base) : 33646.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (Tier1)
         -74 (-1.08 % of base) : 104129.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:ToDictionary[System.ReadOnlyMemory`1[ushort]](System.Func`2[System.__Canon,System.ReadOnlyMemory`1[ushort]],System.Collections.Generic.IEqualityComparer`1[System.ReadOnlyMemory`1[ushort]]):System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (Tier1)

Top method regressions (percentages):
          14 (29.79 % of base) : 4490.dasm - System.Type:get_IsPointer():ubyte:this (Tier1)
          33 (28.70 % of base) : 116820.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:Equals(System.__Canon,System.__Canon):ubyte:this (Tier1)
         447 (27.71 % of base) : 148916.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier1-OSR)
         436 (27.06 % of base) : 148906.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier1-OSR)
          14 (23.33 % of base) : 96393.dasm - Microsoft.CodeAnalysis.CSharp.BoundExpressionStatement:Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
          14 (22.22 % of base) : 95606.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:get_IsValueType():ubyte:this (Tier1)
          14 (21.88 % of base) : 103083.dasm - Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody:Accept(Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
          14 (21.54 % of base) : 96391.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:get_IsReferenceType():ubyte:this (Tier1)
          19 (21.11 % of base) : 95599.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:IsNullableType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Tier1)
           9 (20.00 % of base) : 97189.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
           9 (20.00 % of base) : 97188.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitReturnStatement(Microsoft.CodeAnalysis.CSharp.BoundReturnStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
          18 (19.78 % of base) : 103969.dasm - Microsoft.CodeAnalysis.CSharp.Binder:WithAdditionalFlags(uint):Microsoft.CodeAnalysis.CSharp.Binder:this (Tier1)
          19 (19.19 % of base) : 95916.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (Tier1)
          21 (18.42 % of base) : 91558.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:Equals(System.__Canon,System.__Canon):ubyte:this (Tier1)
           9 (18.37 % of base) : 96884.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:Microsoft.Cci.INamespaceTypeReference.get_NamespaceName():System.String:this (Tier1)
          27 (16.88 % of base) : 97206.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:VisitWithStackGuard(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
          21 (16.67 % of base) : 103425.dasm - Microsoft.CodeAnalysis.CachingIdentityFactory`2[System.__Canon,ushort]:GetOrMakeValue(System.__Canon):ushort:this (Tier1)
         135 (16.32 % of base) : 53450.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon]:FindValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]):byref:this (Tier1)
          43 (15.93 % of base) : 96568.dasm - Microsoft.Cci.ITypeReferenceExtensions:IsTypeSpecification(Microsoft.Cci.ITypeReference):ubyte (Tier1)
          32 (14.95 % of base) : 103063.dasm - Microsoft.CodeAnalysis.CSharp.EmptyStructTypeCache:IsTrackableStructType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Tier1)

Top method improvements (percentages):
          -6 (-30.00 % of base) : 25890.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 33481.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 48693.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 58581.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 109949.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 113301.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 114013.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 125829.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 129509.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 130577.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 140349.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 145377.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 153629.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 75509.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 76853.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 83685.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 62157.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 77473.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 99633.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 113777.dasm - System.Math:Min(short,short):short (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: 20398221 (overridden on cmd)
Total bytes of diff: 20383942 (overridden on cmd)
Total bytes of delta: -14279 (-0.07 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         337 : 51366.dasm (6.31 % of base)
         262 : 59654.dasm (2.65 % of base)
         236 : 43457.dasm (2.71 % of base)
         148 : 17570.dasm (1.77 % of base)
         142 : 18221.dasm (9.07 % of base)
         136 : 33253.dasm (9.96 % of base)
         136 : 50528.dasm (3.30 % of base)
         123 : 5220.dasm (7.70 % of base)
         122 : 4876.dasm (11.97 % of base)
         110 : 43658.dasm (3.42 % of base)
         107 : 53431.dasm (5.29 % of base)
          99 : 38073.dasm (3.86 % of base)
          96 : 4831.dasm (9.60 % of base)
          95 : 36145.dasm (2.65 % of base)
          94 : 3361.dasm (1.45 % of base)
          93 : 53152.dasm (1.74 % of base)
          89 : 17555.dasm (1.63 % of base)
          79 : 39381.dasm (3.32 % of base)
          71 : 30536.dasm (2.29 % of base)
          70 : 34790.dasm (5.02 % of base)

Top file improvements (bytes):
        -170 : 50962.dasm (-14.55 % of base)
        -119 : 53135.dasm (-3.58 % of base)
        -111 : 15074.dasm (-3.90 % of base)
         -91 : 30726.dasm (-5.91 % of base)
         -84 : 59759.dasm (-7.41 % of base)
         -81 : 37782.dasm (-8.97 % of base)
         -75 : 4613.dasm (-0.90 % of base)
         -73 : 57556.dasm (-0.75 % of base)
         -73 : 59683.dasm (-4.36 % of base)
         -72 : 43660.dasm (-0.89 % of base)
         -69 : 28745.dasm (-7.31 % of base)
         -54 : 30724.dasm (-3.01 % of base)
         -51 : 8982.dasm (-6.98 % of base)
         -48 : 39093.dasm (-4.28 % of base)
         -44 : 17425.dasm (-3.64 % of base)
         -43 : 55529.dasm (-3.75 % of base)
         -43 : 26447.dasm (-3.07 % of base)
         -42 : 4668.dasm (-2.74 % of base)
         -40 : 33952.dasm (-0.90 % of base)
         -39 : 6146.dasm (-9.47 % of base)

93 total files with Code Size differences (46 improved, 47 regressed), 20 unchanged.

Top method regressions (bytes):
         337 (6.31 % of base) : 51366.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         262 (2.65 % of base) : 59654.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
         236 (2.71 % of base) : 43457.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1-OSR)
         148 (1.77 % of base) : 17570.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
         142 (9.07 % of base) : 18221.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:.ctor(System.String):this (Tier0-FullOpts)
         136 (9.96 % of base) : 33253.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier1-OSR)
         136 (3.30 % of base) : 50528.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetWellKnownType(int):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         123 (7.70 % of base) : 5220.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
         122 (11.97 % of base) : 4876.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Resize(int,ubyte):this (Tier1)
         110 (3.42 % of base) : 43658.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
         107 (5.29 % of base) : 53431.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:AssignImpl(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,ubyte):this (Tier1)
          99 (3.86 % of base) : 38073.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:BuildCertsWithKeys(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.Asn1.Pkcs12.CertBagAsn[],System.Security.Cryptography.Asn1.AttributeAsn[][],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey[],int,System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn[],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+RentedSubjectPublicKeyInfo[],System.Security.Cryptography.AsymmetricAlgorithm[],int):this (Tier1)
          96 (9.60 % of base) : 4831.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Resize(int,ubyte):this (Tier1)
          95 (2.65 % of base) : 36145.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1)
          94 (1.45 % of base) : 3361.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
          93 (1.74 % of base) : 53152.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
          89 (1.63 % of base) : 17555.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
          79 (3.32 % of base) : 39381.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (Tier1)
          71 (2.29 % of base) : 30536.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (Tier0-FullOpts)
          70 (5.02 % of base) : 34790.dasm - Utility:sscanf(System.String,System.String,System.Object[]):int (Tier1)

Top method improvements (bytes):
        -170 (-14.55 % of base) : 50962.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (Tier1)
        -119 (-3.58 % of base) : 53135.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxExtensions:VisitRankSpecifiers[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]](Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,System.Action`2[System.__Canon,System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]],byref) (Tier1)
        -111 (-3.90 % of base) : 15074.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -91 (-5.91 % of base) : 30726.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1)
         -84 (-7.41 % of base) : 59759.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (Tier1)
         -81 (-8.97 % of base) : 37782.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (Tier1)
         -75 (-0.90 % of base) : 4613.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
         -73 (-0.75 % of base) : 57556.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1)
         -73 (-4.36 % of base) : 59683.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:.ctor(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,System.Text.RegularExpressions.RegexFindOptimizations,System.TimeSpan):this (Tier1)
         -72 (-0.89 % of base) : 43660.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1)
         -69 (-7.31 % of base) : 28745.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
         -54 (-3.01 % of base) : 30724.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1-OSR)
         -51 (-6.98 % of base) : 8982.dasm - System.Threading.LowLevelLifoSemaphore:Wait(int,ubyte):ubyte:this (Tier1)
         -48 (-4.28 % of base) : 39093.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1)
         -44 (-3.64 % of base) : 17425.dasm - System.Text.RegularExpressions.RegexParser:CountCaptures(byref):this (Tier1)
         -43 (-3.75 % of base) : 55529.dasm - BenchmarksGame.FannkuchRedux_9:Run(int,int) (Tier0-FullOpts)
         -43 (-3.07 % of base) : 26447.dasm - System.Reflection.AssemblyNameParser:Parse():System.Reflection.AssemblyNameParser+AssemblyNameParts:this (Tier1)
         -42 (-2.74 % of base) : 4668.dasm - System.IO.Path:Combine(System.String[]):System.String (Tier0-FullOpts)
         -40 (-0.90 % of base) : 33952.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -39 (-9.47 % of base) : 6146.dasm - System.Number:Dragon4Double(double,int,ubyte,byref) (Tier1)

Top method regressions (percentages):
          13 (22.81 % of base) : 5219.dasm - System.Type:get_DefaultBinder():System.Reflection.Binder (Tier1)
          18 (21.95 % of base) : 51103.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass1:CanScheduleToStack(Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol):ubyte:this (Tier1)
          18 (19.57 % of base) : 50539.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol:IsValidWellKnownType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):ubyte:this (Tier1)
          12 (16.22 % of base) : 5253.dasm - System.Type:get_GenericTypeArguments():System.Type[]:this (Tier1)
          22 (16.18 % of base) : 38076.dasm - System.Security.Cryptography.X509Certificates.OpenSslPkcs12Reader:GetPrivateKey(System.Security.Cryptography.AsymmetricAlgorithm):System.Security.Cryptography.SafeEvpPKeyHandle (Tier1)
          23 (14.84 % of base) : 53281.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Unsplit():this (Tier1)
          23 (14.74 % of base) : 4030.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this (Tier1)
          37 (14.29 % of base) : 9100.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)
          12 (13.95 % of base) : 51534.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:Microsoft.Cci.IMethodReference.get_AsSpecializedMethodReference():Microsoft.Cci.ISpecializedMethodReference:this (Tier1)
          15 (13.51 % of base) : 9029.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
          12 (13.19 % of base) : 50849.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:ShouldCheckRequiredMembers(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):ubyte (Tier1)
          52 (12.97 % of base) : 50757.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:AddToMultiValueDictionaryBuilder[System.ReadOnlyMemory`1[ushort],System.__Canon](System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Object],System.ReadOnlyMemory`1[ushort],System.__Canon) (Tier1)
          15 (12.71 % of base) : 46898.dasm - Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxNodeCache:AllChildrenInCache(Microsoft.CodeAnalysis.GreenNode):ubyte (Tier1)
           6 (12.50 % of base) : 3781.dasm - System.Text.Ascii:CountNumberOfLeadingAsciiBytesFromUInt32WithSomeNonAsciiData(uint):uint (Tier1)
          20 (12.05 % of base) : 30907.dasm - Interop+Crypto:EvpSha1():long (Tier1)
          20 (12.05 % of base) : 38011.dasm - Interop+Crypto:EvpSha256():long (Tier1)
         122 (11.97 % of base) : 4876.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Resize(int,ubyte):this (Tier1)
          23 (11.79 % of base) : 37781.dasm - System.Array:Resize[ubyte](byref,int) (Tier1)
          18 (11.46 % of base) : 38376.dasm - System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (Tier1)
          18 (11.04 % of base) : 34784.dasm - NeuralJagged:check_out_error():int (Tier1)

Top method improvements (percentages):
         -34 (-24.11 % of base) : 12994.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier1-OSR)
         -10 (-23.26 % of base) : 25911.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
         -33 (-23.24 % of base) : 42163.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjScalarValueType():this (Tier1-OSR)
         -10 (-22.73 % of base) : 30638.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -10 (-22.73 % of base) : 25912.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
         -10 (-20.83 % of base) : 6028.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:GetValue[int](BenchmarkDotNet.Characteristics.Characteristic`1[int]):int:this (Tier1)
         -10 (-17.86 % of base) : 25917.dasm - (dynamicClass):NumSetter(System.Object,int) (FullOpts)
         -10 (-17.86 % of base) : 32366.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
         -10 (-16.67 % of base) : 6027.dasm - BenchmarkDotNet.Characteristics.Characteristic`1[int]:get_Item(BenchmarkDotNet.Characteristics.CharacteristicObject):int:this (Tier1)
         -10 (-15.38 % of base) : 25918.dasm - (dynamicClass):TextSetter(System.Object,System.String) (FullOpts)
         -23 (-14.65 % of base) : 32886.dasm - Span.Sorting:TestBubbleSortArray(int[]) (Tier1)
        -170 (-14.55 % of base) : 50962.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (Tier1)
         -25 (-14.12 % of base) : 38519.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryEnqueue(System.Net.Sockets.SocketAsyncEngine+SocketIOEvent):ubyte:this (Tier1)
         -23 (-14.11 % of base) : 59932.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjObjrefValueType():this (Tier1-OSR)
         -10 (-13.33 % of base) : 14159.dasm - System.Threading.AsyncLocal`1[ubyte]:get_Value():ubyte:this (Tier1)
         -28 (-12.12 % of base) : 60748.dasm - Benchstone.BenchI.Array1:Quick(int,int,int[]) (Tier1-OSR)
         -23 (-11.92 % of base) : 63790.dasm - Benchstone.BenchI.BubbleSort:SortArray(int[],int) (Tier1-OSR)
         -23 (-11.79 % of base) : 32884.dasm - Span.Sorting:TestBubbleSortArray(int[]) (Tier1-OSR)
         -18 (-11.76 % of base) : 62780.dasm - PerfLabTests.LowLevelPerf:NewDelegateClassEmptyInstanceFn():this (Tier1-OSR)
         -10 (-10.10 % of base) : 5223.dasm - System.Reflection.MetadataImport:Equals(System.Object):ubyte:this (Tier1)


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: 414872683 (overridden on cmd)
Total bytes of diff: 415391373 (overridden on cmd)
Total bytes of delta: 518690 (0.13 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        5506 : 539269.dasm (3.41 % of base)
        5506 : 539274.dasm (3.41 % of base)
        2407 : 539792.dasm (10.67 % of base)
        2407 : 545386.dasm (10.67 % of base)
        2243 : 545371.dasm (11.40 % of base)
        1909 : 545363.dasm (10.39 % of base)
        1864 : 539729.dasm (9.48 % of base)
        1739 : 539777.dasm (9.98 % of base)
        1739 : 545380.dasm (9.98 % of base)
        1719 : 539734.dasm (10.09 % of base)
        1693 : 545368.dasm (9.13 % of base)
        1595 : 545374.dasm (9.39 % of base)
        1589 : 564947.dasm (13.53 % of base)
        1575 : 539724.dasm (8.47 % of base)
        1554 : 539782.dasm (8.64 % of base)
        1554 : 545382.dasm (8.64 % of base)
        1510 : 539787.dasm (8.28 % of base)
        1510 : 545384.dasm (8.28 % of base)
        1372 : 545388.dasm (7.66 % of base)
        1372 : 539797.dasm (7.66 % of base)

Top file improvements (bytes):
       -2046 : 540105.dasm (-2.10 % of base)
       -1453 : 539456.dasm (-1.59 % of base)
       -1347 : 539770.dasm (-1.46 % of base)
       -1317 : 539706.dasm (-1.41 % of base)
        -658 : 567326.dasm (-5.72 % of base)
        -597 : 562498.dasm (-4.61 % of base)
        -597 : 560717.dasm (-4.18 % of base)
        -588 : 589727.dasm (-4.48 % of base)
        -567 : 589805.dasm (-4.35 % of base)
        -562 : 589845.dasm (-4.01 % of base)
        -555 : 570479.dasm (-4.41 % of base)
        -550 : 551818.dasm (-3.06 % of base)
        -549 : 590480.dasm (-4.10 % of base)
        -547 : 591101.dasm (-3.10 % of base)
        -536 : 590806.dasm (-5.94 % of base)
        -536 : 561237.dasm (-3.71 % of base)
        -530 : 570388.dasm (-4.25 % of base)
        -504 : 590508.dasm (-3.57 % of base)
        -503 : 560667.dasm (-3.57 % of base)
        -497 : 562002.dasm (-6.25 % of base)

87 total files with Code Size differences (45 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
        5506 (3.41 % of base) : 539269.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
        5506 (3.41 % of base) : 539274.dasm - decimalrem:TestEntryPoint():int (FullOpts)
        2407 (10.67 % of base) : 539792.dasm - r8NaNrem:TestEntryPoint():int (FullOpts)
        2407 (10.67 % of base) : 545386.dasm - r8NaNrem:TestEntryPoint():int (FullOpts)
        2243 (11.40 % of base) : 545371.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)
        1909 (10.39 % of base) : 545363.dasm - r4NaNadd:TestEntryPoint():int (FullOpts)
        1864 (9.48 % of base) : 539729.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)
        1739 (9.98 % of base) : 539777.dasm - r8NaNadd:TestEntryPoint():int (FullOpts)
        1739 (9.98 % of base) : 545380.dasm - r8NaNadd:TestEntryPoint():int (FullOpts)
        1719 (10.09 % of base) : 539734.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
        1693 (9.13 % of base) : 545368.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
        1595 (9.39 % of base) : 545374.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
        1589 (13.53 % of base) : 564947.dasm - Generated1161:MethodCallingTest() (FullOpts)
        1575 (8.47 % of base) : 539724.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
        1554 (8.64 % of base) : 539782.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        1554 (8.64 % of base) : 545382.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        1510 (8.28 % of base) : 539787.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
        1510 (8.28 % of base) : 545384.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
        1372 (7.66 % of base) : 545388.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
        1372 (7.66 % of base) : 539797.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)

Top method improvements (bytes):
       -2046 (-2.10 % of base) : 540105.dasm - u4rem:TestEntryPoint():int (FullOpts)
       -1453 (-1.59 % of base) : 539456.dasm - i4div:TestEntryPoint():int (FullOpts)
       -1347 (-1.46 % of base) : 539770.dasm - r8div:TestEntryPoint():int (FullOpts)
       -1317 (-1.41 % of base) : 539706.dasm - r4div:TestEntryPoint():int (FullOpts)
        -658 (-5.72 % of base) : 567326.dasm - Generated1231:CalliTest() (FullOpts)
        -597 (-4.18 % of base) : 560717.dasm - Generated1050:MethodCallingTest() (FullOpts)
        -597 (-4.61 % of base) : 562498.dasm - Generated1093:CalliTest() (FullOpts)
        -588 (-4.48 % of base) : 589727.dasm - Generated922:MethodCallingTest() (FullOpts)
        -567 (-4.35 % of base) : 589805.dasm - Generated924:MethodCallingTest() (FullOpts)
        -562 (-4.01 % of base) : 589845.dasm - Generated924:CalliTest() (FullOpts)
        -555 (-4.41 % of base) : 570479.dasm - Generated1334:CalliTest() (FullOpts)
        -550 (-3.06 % of base) : 551818.dasm - System.Xml.Xsl.IlGen.XmlILMethods:.cctor() (FullOpts)
        -549 (-4.10 % of base) : 590480.dasm - Generated944:MethodCallingTest() (FullOpts)
        -547 (-3.10 % of base) : 591101.dasm - Generated963:MethodCallingTest() (FullOpts)
        -536 (-3.71 % of base) : 561237.dasm - Generated1062:MethodCallingTest() (FullOpts)
        -536 (-5.94 % of base) : 590806.dasm - Generated953:CalliTest() (FullOpts)
        -530 (-4.25 % of base) : 570388.dasm - Generated1331:CalliTest() (FullOpts)
        -504 (-3.57 % of base) : 590508.dasm - Generated944:CalliTest() (FullOpts)
        -503 (-3.57 % of base) : 560667.dasm - Generated1049:MethodCallingTest() (FullOpts)
        -497 (-6.25 % of base) : 562002.dasm - Generated1080:CalliTest() (FullOpts)

Top method regressions (percentages):
          37 (51.39 % of base) : 224274.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
         573 (49.78 % of base) : 608485.dasm - Value0:CheckValues():ubyte:this (FullOpts)
         573 (47.75 % of base) : 608487.dasm - Value1:CheckValues():ubyte:this (FullOpts)
         573 (47.75 % of base) : 608489.dasm - Value2:CheckValues():ubyte:this (FullOpts)
         573 (47.75 % of base) : 608491.dasm - Value3:CheckValues():ubyte:this (FullOpts)
         573 (47.75 % of base) : 608495.dasm - Value5:CheckValues():ubyte:this (FullOpts)
         573 (47.20 % of base) : 608493.dasm - Value4:CheckValues():ubyte:this (FullOpts)
          15 (46.88 % of base) : 401439.dasm - Internal.JitInterface.JitConfigProvider:get_Instance():Internal.JitInterface.JitConfigProvider (Tier1)
          13 (46.43 % of base) : 511673.dasm - Product:GetProductList():System.Collections.Generic.List`1[Product] (FullOpts)
          12 (38.71 % of base) : 294428.dasm - System.Globalization.TextInfo:ToLowerAsciiInvariant(ushort):ushort (FullOpts)
          13 (37.14 % of base) : 538969.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():ulong (FullOpts)
          13 (36.11 % of base) : 552312.dasm - N.C:TestEntryPoint():int (FullOpts)
         156 (35.14 % of base) : 542691.dasm - JitTest_s_ldsfld_mulovf_signed_il.Test:Main():int (FullOpts)
          13 (35.14 % of base) : 540694.dasm - Test_switch11:Main():int (FullOpts)
         156 (34.98 % of base) : 542695.dasm - JitTest_s_ldsfld_mul_signed_il.Test:Main():int (FullOpts)
          44 (34.65 % of base) : 546543.dasm - SideEffects:main():int (FullOpts)
         153 (34.23 % of base) : 539959.dasm - JitTest_s_ldsfld_mulovf_signed_cs.Test:TestEntryPoint():int (FullOpts)
         153 (34.08 % of base) : 539962.dasm - JitTest_s_ldsfld_mul_signed_cs.Test:TestEntryPoint():int (FullOpts)
          99 (32.25 % of base) : 538581.dasm - Test_10w5d.testout1:Func_0_2_3_4():double (FullOpts)
          99 (32.25 % of base) : 544829.dasm - Test_10w5d.testout1:Func_0_2_3_4():double (FullOpts)

Top method improvements (percentages):
         -14 (-31.82 % of base) : 290615.dasm - FinalizeTimeout:ThreadMain() (Tier1-OSR)
         -69 (-31.36 % of base) : 1416.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Instrumented Tier1)
          -6 (-30.00 % of base) : 95835.dasm - System.Math:Max(byte,byte):byte (Tier1)
          -6 (-30.00 % of base) : 45306.dasm - System.Math:Max(byte,byte):byte (Tier1)
          -6 (-30.00 % of base) : 170140.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -6 (-30.00 % of base) : 45175.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -6 (-30.00 % of base) : 107762.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -6 (-30.00 % of base) : 185515.dasm - System.Math:Min(short,short):short (Tier1)
          -6 (-30.00 % of base) : 170240.dasm - System.Math:Min(short,short):short (Tier1)
          -6 (-30.00 % of base) : 185496.dasm - System.Math:Min(ubyte,ubyte):ubyte (Tier1)
          -5 (-29.41 % of base) : 170321.dasm - System.Math:Min(ushort,ushort):ushort (Tier1)
          -5 (-29.41 % of base) : 189644.dasm - System.Math:Min(ushort,ushort):ushort (Tier1)
         -10 (-26.32 % of base) : 608948.dasm - Tracing.Tests.EventListenerThreadPool+<>c:<TestEntryPoint>b__0_0(System.Object,ubyte):this (FullOpts)
         -10 (-23.81 % of base) : 502452.dasm - BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
          -4 (-22.22 % of base) : 189549.dasm - System.Math:Max(byte,byte):byte (Tier1)
          -4 (-22.22 % of base) : 239692.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -4 (-22.22 % of base) : 189624.dasm - System.Math:Min(byte,byte):byte (Tier1)
          -7 (-21.21 % of base) : 545737.dasm - FinalizeTimeout:ThreadMain() (FullOpts)
         -10 (-20.41 % of base) : 602749.dasm - NullableTest:BoxUnboxToNQ(System.IComparable):ubyte (FullOpts)
         -10 (-20.41 % of base) : 602745.dasm - NullableTest:BoxUnboxToNQ(System.IComparable):ubyte (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: 44737894 (overridden on cmd)
Total bytes of diff: 44783182 (overridden on cmd)
Total bytes of delta: 45288 (0.10 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1004 : 65422.dasm (8.26 % of base)
         928 : 7316.dasm (10.29 % of base)
         847 : 147304.dasm (12.98 % of base)
         608 : 38745.dasm (12.95 % of base)
         492 : 155083.dasm (1.95 % of base)
         336 : 41587.dasm (0.45 % of base)
         293 : 133702.dasm (4.43 % of base)
         293 : 69362.dasm (4.43 % of base)
         284 : 250884.dasm (12.65 % of base)
         280 : 156060.dasm (7.85 % of base)
         263 : 29734.dasm (0.37 % of base)
         245 : 116428.dasm (14.73 % of base)
         241 : 228852.dasm (10.40 % of base)
         240 : 5101.dasm (7.13 % of base)
         225 : 189283.dasm (4.32 % of base)
         224 : 94364.dasm (4.63 % of base)
         220 : 85197.dasm (5.73 % of base)
         217 : 130254.dasm (7.24 % of base)
         215 : 65501.dasm (4.70 % of base)
         214 : 5059.dasm (6.35 % of base)

Top file improvements (bytes):
       -1134 : 102921.dasm (-3.69 % of base)
       -1128 : 128384.dasm (-4.23 % of base)
       -1128 : 63167.dasm (-4.23 % of base)
        -339 : 158295.dasm (-3.65 % of base)
        -289 : 229650.dasm (-6.12 % of base)
        -158 : 21650.dasm (-8.95 % of base)
        -148 : 3960.dasm (-3.34 % of base)
        -144 : 185895.dasm (-4.23 % of base)
        -140 : 100439.dasm (-2.32 % of base)
        -140 : 22191.dasm (-6.12 % of base)
        -135 : 228998.dasm (-2.11 % of base)
        -133 : 132557.dasm (-11.56 % of base)
        -133 : 67878.dasm (-11.56 % of base)
        -127 : 27254.dasm (-5.51 % of base)
        -126 : 185127.dasm (-9.92 % of base)
        -123 : 217292.dasm (-5.54 % of base)
        -122 : 65334.dasm (-8.04 % of base)
        -120 : 226615.dasm (-6.25 % of base)
        -119 : 208750.dasm (-8.17 % of base)
        -119 : 3949.dasm (-9.80 % of base)

97 total files with Code Size differences (46 improved, 51 regressed), 20 unchanged.

Top method regressions (bytes):
        1004 (8.26 % of base) : 65422.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
         928 (10.29 % of base) : 7316.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         847 (12.98 % of base) : 147304.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedReadOnlyListTypeSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol,System.String,int,ubyte):this (FullOpts)
         608 (12.95 % of base) : 38745.dasm - Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer:GenerateThreadTimeStacks(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceEvents):this (FullOpts)
         492 (1.95 % of base) : 155083.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)
         336 (0.45 % of base) : 41587.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         293 (4.43 % of base) : 133702.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDeclarationComputer:ComputeDeclarations(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.SyntaxNode,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Nullable`1[int],ubyte],ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Nullable`1[int],System.Threading.CancellationToken) (FullOpts)
         293 (4.43 % of base) : 69362.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDeclarationComputer:ComputeDeclarations(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.SyntaxNode,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Nullable`1[int],ubyte],ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Nullable`1[int],System.Threading.CancellationToken) (FullOpts)
         284 (12.65 % of base) : 250884.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteArray(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo):this (FullOpts)
         280 (7.85 % of base) : 156060.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         263 (0.37 % of base) : 29734.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
         245 (14.73 % of base) : 116428.dasm - Microsoft.CodeAnalysis.VisualBasic.UseTwiceRewriter:UseTwiceLateInvocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundLateInvocation,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedLocal]):Microsoft.CodeAnalysis.VisualBasic.UseTwiceRewriter+Result (FullOpts)
         241 (10.40 % of base) : 228852.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
         240 (7.13 % of base) : 5101.dasm - System.Data.RBTree`1[int]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)
         225 (4.32 % of base) : 189283.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
         224 (4.63 % of base) : 94364.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         220 (5.73 % of base) : 85197.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedReadOnlyListTypeSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol,System.String,ubyte):this (FullOpts)
         217 (7.24 % of base) : 130254.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalAccess(Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess,byref):this (FullOpts)
         215 (4.70 % of base) : 65501.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|232_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         214 (6.35 % of base) : 5059.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)

Top method improvements (bytes):
       -1134 (-3.69 % of base) : 102921.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
       -1128 (-4.23 % of base) : 128384.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
       -1128 (-4.23 % of base) : 63167.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -339 (-3.65 % of base) : 158295.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        -289 (-6.12 % of base) : 229650.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this (FullOpts)
        -158 (-8.95 % of base) : 21650.dasm - System.Threading.ReaderWriterLockSlim:TryEnterWriteLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (FullOpts)
        -148 (-3.34 % of base) : 3960.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -144 (-4.23 % of base) : 185895.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -140 (-2.32 % of base) : 100439.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedEventAccessorSymbol:ConstructFieldLikeEventAccessorBody_Regular(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceEventSymbol,ubyte,Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundBlock (FullOpts)
        -140 (-6.12 % of base) : 22191.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
        -135 (-2.11 % of base) : 228998.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteElements(System.String,System.String,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte):this (FullOpts)
        -133 (-11.56 % of base) : 132557.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -133 (-11.56 % of base) : 67878.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -127 (-5.51 % of base) : 27254.dasm - System.Diagnostics.Tracing.EventProvider:EncodeObject(byref,byref,byref,byref):System.Object (FullOpts)
        -126 (-9.92 % of base) : 185127.dasm - Newtonsoft.Json.JsonConvert:ToString(System.Object):System.String (FullOpts)
        -123 (-5.54 % of base) : 217292.dasm - System.Runtime.Serialization.ExtensionDataReader:MoveToText(System.Type,System.Runtime.Serialization.IDataNode,ubyte):ubyte:this (FullOpts)
        -122 (-8.04 % of base) : 65334.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitImplicitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
        -120 (-6.25 % of base) : 226615.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -119 (-9.80 % of base) : 3949.dasm - System.Data.Common.SqlConvert:ConvertToSqlDouble(System.Object):System.Data.SqlTypes.SqlDouble (FullOpts)
        -119 (-8.17 % of base) : 208750.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(byref,System.Object) (FullOpts)

Top method regressions (percentages):
          15 (51.72 % of base) : 113747.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          15 (51.72 % of base) : 113729.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          15 (51.72 % of base) : 113728.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          15 (51.72 % of base) : 113748.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          19 (47.50 % of base) : 124701.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
          19 (47.50 % of base) : 58976.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
          10 (43.48 % of base) : 121728.dasm - Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
          17 (25.00 % of base) : 261245.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.__Canon[],int,int) (FullOpts)
          23 (24.47 % of base) : 125533.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<GetUniqueSignatureFromMethodGroup_CSharp10>g__isCandidateUnique|531_0(byref,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):ubyte (FullOpts)
          23 (24.47 % of base) : 59870.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<GetUniqueSignatureFromMethodGroup>g__isCandidateUnique|530_0(byref,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):ubyte (FullOpts)
          23 (24.47 % of base) : 125534.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<GetUniqueSignatureFromMethodGroup>g__isCandidateUnique|532_0(byref,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):ubyte (FullOpts)
          13 (24.07 % of base) : 120055.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEPropertySymbol+_Closure$__:_Lambda$__19-0(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol]):ubyte:this (FullOpts)
          34 (23.29 % of base) : 47765.dasm - Microsoft.Diagnostics.Tracing.Parsers.MicrosoftWindowsTCPIP.TcpAutoTuningBeginArgs:PayloadValue(int):System.Object:this (FullOpts)
          34 (23.29 % of base) : 47907.dasm - Microsoft.Diagnostics.Tracing.Parsers.MicrosoftWindowsTCPIP.TcpConnectTcbSkipRateLimitArgs:PayloadValue(int):System.Object:this (FullOpts)
          17 (22.08 % of base) : 250136.dasm - Microsoft.NET.StringTools.WeakStringCache+StringWeakHandle:SetString(System.String):this (FullOpts)
          39 (21.55 % of base) : 27551.dasm - System.Array+SorterObjectArray:Swap(int,int):this (FullOpts)
          54 (21.09 % of base) : 234145.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientKeyIdentifier:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts)
          12 (19.67 % of base) : 18106.dasm - System.ReadOnlySpan`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon]):ubyte:this (FullOpts)
          12 (19.67 % of base) : 18131.dasm - System.Span`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon]):ubyte:this (FullOpts)
          16 (19.28 % of base) : 39314.dasm - Microsoft.Diagnostics.Tracing.Etlx.TraceLog:GetContainerID(ulong):System.String:this (FullOpts)

Top method improvements (percentages):
         -19 (-39.58 % of base) : 169592.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
         -13 (-24.53 % of base) : 61912.dasm - Microsoft.CodeAnalysis.CSharp.BoundLambda:WithInAnonymousFunctionConversion():Microsoft.CodeAnalysis.CSharp.BoundLambda:this (FullOpts)
         -11 (-19.64 % of base) : 195883.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddAdditionalFileAction(Microsoft.CodeAnalysis.Diagnostics.AdditionalFileAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176942.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCodeBlockAction(Microsoft.CodeAnalysis.Diagnostics.CodeBlockAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 195889.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCodeBlockAction(Microsoft.CodeAnalysis.Diagnostics.CodeBlockAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176941.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCodeBlockEndAction(Microsoft.CodeAnalysis.Diagnostics.CodeBlockAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176934.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCompilationAction(Microsoft.CodeAnalysis.Diagnostics.CompilationAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 195881.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCompilationAction(Microsoft.CodeAnalysis.Diagnostics.CompilationAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176933.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCompilationEndAction(Microsoft.CodeAnalysis.Diagnostics.CompilationAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 195879.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddCompilationStartAction(Microsoft.CodeAnalysis.Diagnostics.CompilationStartAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176945.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddOperationBlockEndAction(Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176943.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddOperationBlockStartAction(Microsoft.CodeAnalysis.Diagnostics.OperationBlockStartAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 195890.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddOperationBlockStartAction(Microsoft.CodeAnalysis.Diagnostics.OperationBlockStartAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176937.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddSemanticModelAction(Microsoft.CodeAnalysis.Diagnostics.SemanticModelAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176938.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddSymbolAction(Microsoft.CodeAnalysis.Diagnostics.SymbolAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 195885.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddSymbolAction(Microsoft.CodeAnalysis.Diagnostics.SymbolAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176939.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddSymbolStartAction(Microsoft.CodeAnalysis.Diagnostics.SymbolStartAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 195886.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddSymbolStartAction(Microsoft.CodeAnalysis.Diagnostics.SymbolStartAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 176935.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddSyntaxTreeAction(Microsoft.CodeAnalysis.Diagnostics.SyntaxTreeAnalyzerAction):this (FullOpts)
         -11 (-19.64 % of base) : 195882.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddSyntaxTreeAction(Microsoft.CodeAnalysis.Diagnostics.SyntaxTreeAnalyzerAction):this (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: 60901638 (overridden on cmd)
Total bytes of diff: 61062536 (overridden on cmd)
Total bytes of delta: 160898 (0.26 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1263 : 239747.dasm (10.54 % of base)
        1032 : 148685.dasm (4.43 % of base)
        1018 : 146718.dasm (11.43 % of base)
         803 : 36016.dasm (7.47 % of base)
         795 : 100613.dasm (5.42 % of base)
         677 : 40775.dasm (2.84 % of base)
         666 : 202368.dasm (3.46 % of base)
         666 : 161073.dasm (3.46 % of base)
         630 : 178512.dasm (22.56 % of base)
         616 : 176557.dasm (2.17 % of base)
         608 : 133094.dasm (5.08 % of base)
         590 : 162650.dasm (3.59 % of base)
         590 : 203888.dasm (3.59 % of base)
         580 : 41096.dasm (2.60 % of base)
         555 : 138056.dasm (8.69 % of base)
         532 : 18529.dasm (24.74 % of base)
         466 : 226108.dasm (4.80 % of base)
         410 : 105045.dasm (6.56 % of base)
         369 : 216866.dasm (9.65 % of base)
         364 : 127866.dasm (7.82 % of base)

Top file improvements (bytes):
       -1694 : 107923.dasm (-4.93 % of base)
        -496 : 192811.dasm (-4.84 % of base)
        -447 : 154449.dasm (-9.05 % of base)
        -421 : 3520.dasm (-15.79 % of base)
        -364 : 152156.dasm (-1.68 % of base)
        -344 : 22095.dasm (-4.24 % of base)
        -340 : 186086.dasm (-9.21 % of base)
        -208 : 85468.dasm (-6.67 % of base)
        -200 : 40506.dasm (-0.25 % of base)
        -196 : 154613.dasm (-2.72 % of base)
        -196 : 92702.dasm (-8.80 % of base)
        -186 : 22094.dasm (-3.72 % of base)
        -180 : 185274.dasm (-9.56 % of base)
        -175 : 100700.dasm (-1.79 % of base)
        -170 : 202283.dasm (-13.05 % of base)
        -170 : 22081.dasm (-8.56 % of base)
        -169 : 85516.dasm (-4.92 % of base)
        -169 : 209316.dasm (-4.46 % of base)
        -168 : 244080.dasm (-14.97 % of base)
        -164 : 196211.dasm (-5.27 % of base)

93 total files with Code Size differences (43 improved, 50 regressed), 20 unchanged.

Top method regressions (bytes):
        1263 (10.54 % of base) : 239747.dasm - R2RTest.R2RTestRootCommand:.ctor():this (FullOpts)
        1032 (4.43 % of base) : 148685.dasm - System.Xml.Schema.XsdBuilder:.cctor() (FullOpts)
        1018 (11.43 % of base) : 146718.dasm - System.Xml.Schema.DatatypeImplementation:.cctor() (FullOpts)
         803 (7.47 % of base) : 36016.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
         795 (5.42 % of base) : 100613.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindFieldAndPropertyInitializers(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.FieldOrPropertyInitializer]],Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundInitializer] (FullOpts)
         677 (2.84 % of base) : 40775.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrPrivateTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         666 (3.46 % of base) : 202368.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
         666 (3.46 % of base) : 161073.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
         630 (22.56 % of base) : 178512.dasm - System.Data.Common.MultipartIdentifier:ParseMultipartIdentifier(System.String,System.String,System.String,ushort,int,ubyte,System.String,ubyte):System.String[] (FullOpts)
         616 (2.17 % of base) : 176557.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)
         608 (5.08 % of base) : 133094.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
         590 (3.59 % of base) : 162650.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (FullOpts)
         590 (3.59 % of base) : 203888.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (FullOpts)
         580 (2.60 % of base) : 41096.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         555 (8.69 % of base) : 138056.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
         532 (24.74 % of base) : 18529.dasm - System.Data.DataTable:ParseSortString(System.String):System.Data.IndexField[]:this (FullOpts)
         466 (4.80 % of base) : 226108.dasm - Microsoft.Build.Evaluation.Preprocessor:CloneChildrenResolvingImports(System.Xml.XmlNode,System.Xml.XmlNode):this (FullOpts)
         410 (6.56 % of base) : 105045.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:CheckDeclarationNameAndTypeParameters(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):this (FullOpts)
         369 (9.65 % of base) : 216866.dasm - System.Linq.Expressions.Expression:ValidateNewArgs(System.Reflection.ConstructorInfo,byref,byref) (FullOpts)
         364 (7.82 % of base) : 127866.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+ReferenceManager:SetupReferencesForRetargetingAssembly(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,Microsoft.CodeAnalysis.VisualBasic.Symbols.AssemblySymbol][],int,byref,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol) (FullOpts)

Top method improvements (bytes):
       -1694 (-4.93 % of base) : 107923.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -496 (-4.84 % of base) : 192811.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        -447 (-9.05 % of base) : 154449.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this (FullOpts)
        -421 (-15.79 % of base) : 3520.dasm - <StartupCode$FSharp-Core>.$QueryExtensions:.cctor() (FullOpts)
        -364 (-1.68 % of base) : 152156.dasm - System.Xml.Xsl.IlGen.XmlILMethods:.cctor() (FullOpts)
        -344 (-4.24 % of base) : 22095.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -340 (-9.21 % of base) : 186086.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -208 (-6.67 % of base) : 85468.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteCustomModifiers(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]:this (FullOpts)
        -200 (-0.25 % of base) : 40506.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -196 (-8.80 % of base) : 92702.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+IsPatternExpressionGeneralLocalRewriter:LowerGeneralIsPattern(Microsoft.CodeAnalysis.CSharp.BoundIsPatternExpression,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -196 (-2.72 % of base) : 154613.dasm - System.Xml.Serialization.XmlSerializationWriter:WriteTypedPrimitive(System.String,System.String,System.Object,ubyte):this (FullOpts)
        -186 (-3.72 % of base) : 22094.dasm - System.Data.Common.SqlConvert:ChangeType2(System.Object,int,System.Type,System.IFormatProvider):System.Object (FullOpts)
        -180 (-9.56 % of base) : 185274.dasm - Newtonsoft.Json.JsonConvert:ToString(System.Object):System.String (FullOpts)
        -175 (-1.79 % of base) : 100700.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindObjectCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BoundObjectInitializerExpressionBase,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
        -170 (-13.05 % of base) : 202283.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -170 (-8.56 % of base) : 22081.dasm - System.Data.Common.SqlConvert:ConvertToSqlDouble(System.Object):System.Data.SqlTypes.SqlDouble (FullOpts)
        -169 (-4.92 % of base) : 85516.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbolFromSyntax:ResolveAliasTarget(Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:this (FullOpts)
        -169 (-4.46 % of base) : 209316.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],byref,byref):this (FullOpts)
        -168 (-14.97 % of base) : 244080.dasm - System.Runtime.Caching.UsageBucket:UpdateCacheEntry(System.Runtime.Caching.MemoryCacheEntry):this (FullOpts)
        -164 (-5.27 % of base) : 196211.dasm - System.Runtime.Serialization.ExtensionDataReader:MoveToText(System.Type,System.Runtime.Serialization.IDataNode,ubyte):ubyte:this (FullOpts)

Top method regressions (percentages):
          15 (46.88 % of base) : 220951.dasm - Internal.JitInterface.JitConfigProvider:get_Instance():Internal.JitInterface.JitConfigProvider (FullOpts)
          10 (43.48 % of base) : 128858.dasm - Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
          20 (41.67 % of base) : 229157.dasm - Microsoft.Build.Collections.ReadOnlyEmptyCollection`1[ubyte]:get_Instance():Microsoft.Build.Collections.ReadOnlyEmptyCollection`1[ubyte] (FullOpts)
          20 (40.82 % of base) : 103692.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.EmbeddedResources:get_Embedded():System.String (FullOpts)
          20 (40.82 % of base) : 103693.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.EmbeddedResources:get_InternalXmlHelper():System.String (FullOpts)
          20 (40.82 % of base) : 103694.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.EmbeddedResources:get_VbCoreSourceText():System.String (FullOpts)
          20 (40.82 % of base) : 103695.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.EmbeddedResources:get_VbMyTemplateText():System.String (FullOpts)
          20 (39.22 % of base) : 37160.dasm - Microsoft.Diagnostics.Symbols.SymbolPath:get_MicrosoftSymbolServerPath():System.String (FullOpts)
          28 (35.00 % of base) : 227880.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
           7 (35.00 % of base) : 120613.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           7 (35.00 % of base) : 120595.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           7 (35.00 % of base) : 120594.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           7 (35.00 % of base) : 120614.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          18 (33.96 % of base) : 229892.dasm - Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
          48 (33.10 % of base) : 135951.dasm - System.ComponentModel.ReflectPropertyDescriptor:.cctor() (FullOpts)
          41 (31.54 % of base) : 227894.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:GetTaskHostNameFromHostContext(int):System.String (FullOpts)
          20 (31.25 % of base) : 246475.dasm - System.Net.CookieParser:get_IsQuotedDomainField():System.Reflection.FieldInfo (FullOpts)
          20 (31.25 % of base) : 301704.dasm - System.Net.CookieParser:get_IsQuotedDomainField():System.Reflection.FieldInfo (FullOpts)
          20 (31.25 % of base) : 246476.dasm - System.Net.CookieParser:get_IsQuotedVersionField():System.Reflection.FieldInfo (FullOpts)
          20 (31.25 % of base) : 196595.dasm - System.Runtime.Serialization.XmlFormatGeneratorStatics:get_MemberNamesField():System.Reflection.FieldInfo (FullOpts)

Top method improvements (percentages):
         -10 (-41.67 % of base) : 299847.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-41.67 % of base) : 299843.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-41.67 % of base) : 299839.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-41.67 % of base) : 299900.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-34.48 % of base) : 299791.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-34.48 % of base) : 299784.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-34.48 % of base) : 299880.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[short]:Invoke(short,short):short (FullOpts)
          -6 (-30.00 % of base) : 33918.dasm - System.Diagnostics.Tracing.Statics:Combine(int,ubyte):ubyte (FullOpts)
         -10 (-23.26 % of base) : 15053.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[int](System.Object):int (FullOpts)
         -10 (-23.26 % of base) : 245958.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[int]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):int:this (FullOpts)
         -10 (-23.26 % of base) : 33083.dasm - System.Runtime.CompilerServices.Unsafe:Unbox[ubyte](System.Object):byref (FullOpts)
         -10 (-23.26 % of base) : 152246.dasm - System.Xml.Xsl.IlGen.StorageDescriptor:get_ParameterLocation():int:this (FullOpts)
         -10 (-22.73 % of base) : 288313.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[int]:<Cast>b__0():int:this (FullOpts)
         -10 (-22.73 % of base) : 15056.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[long](System.Object):long (FullOpts)
         -10 (-22.73 % of base) : 15051.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[ubyte](System.Object):ubyte (FullOpts)
         -10 (-22.73 % of base) : 245961.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[long]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):long:this (FullOpts)
         -10 (-22.73 % of base) : 245952.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[ubyte]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):ubyte:this (FullOpts)
         -10 (-22.73 % of base) : 151872.dasm - System.Xml.Xsl.Qil.QilLiteral:op_Implicit(System.Xml.Xsl.Qil.QilLiteral):int (FullOpts)
         -10 (-22.22 % of base) : 15054.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[double](System.Object):double (FullOpts)
         -10 (-22.22 % of base) : 15052.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[short](System.Object):short (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: 328378411 (overridden on cmd)
Total bytes of diff: 329325259 (overridden on cmd)
Total bytes of delta: 946848 (0.29 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        5913 : 60283.dasm (41.45 % of base)
        5804 : 74606.dasm (54.78 % of base)
        5694 : 70669.dasm (54.19 % of base)
        3088 : 38942.dasm (30.19 % of base)
        2693 : 699748.dasm (13.84 % of base)
        2301 : 22688.dasm (23.54 % of base)
        1804 : 712431.dasm (17.38 % of base)
        1789 : 90683.dasm (9.66 % of base)
        1679 : 699737.dasm (8.96 % of base)
        1623 : 89309.dasm (6.60 % of base)
        1348 : 58037.dasm (5.56 % of base)
        1336 : 716870.dasm (7.91 % of base)
        1323 : 90950.dasm (13.62 % of base)
        1110 : 699675.dasm (11.72 % of base)
        1094 : 430502.dasm (14.62 % of base)
        1094 : 430681.dasm (14.62 % of base)
        1094 : 421530.dasm (14.62 % of base)
        1094 : 427211.dasm (14.62 % of base)
        1094 : 432735.dasm (14.62 % of base)
        1094 : 432741.dasm (14.62 % of base)

Top file improvements (bytes):
        -450 : 11481.dasm (-15.54 % of base)
        -409 : 692912.dasm (-4.16 % of base)
        -376 : 679398.dasm (-1.89 % of base)
        -373 : 698788.dasm (-7.12 % of base)
        -348 : 569904.dasm (-3.78 % of base)
        -330 : 686063.dasm (-5.91 % of base)
        -329 : 477376.dasm (-1.88 % of base)
        -323 : 332096.dasm (-5.84 % of base)
        -317 : 553370.dasm (-3.64 % of base)
        -306 : 476874.dasm (-3.67 % of base)
        -278 : 152329.dasm (-13.27 % of base)
        -278 : 179489.dasm (-2.89 % of base)
        -275 : 476464.dasm (-3.47 % of base)
        -271 : 10801.dasm (-12.46 % of base)
        -260 : 476489.dasm (-3.21 % of base)
        -260 : 451117.dasm (-2.78 % of base)
        -254 : 477997.dasm (-3.65 % of base)
        -253 : 561981.dasm (-14.65 % of base)
        -253 : 137198.dasm (-14.65 % of base)
        -253 : 515370.dasm (-14.65 % of base)

98 total files with Code Size differences (40 improved, 58 regressed), 20 unchanged.

Top method regressions (bytes):
        5913 (41.45 % of base) : 60283.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)
        5804 (54.78 % of base) : 74606.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)
        5694 (54.19 % of base) : 70669.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)
        3088 (30.19 % of base) : 38942.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)
        2693 (13.84 % of base) : 699748.dasm - Microsoft.Cci.MetadataWriter:PopulateTypeRefTableRows():this (Tier1)
        2301 (23.54 % of base) : 22688.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)
        1804 (17.38 % of base) : 712431.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:ComputeSuppressedAnalyzersForTree(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.SyntaxTreeOptionsProvider,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableHashSet`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer]:this (Tier1)
        1789 (9.66 % of base) : 90683.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)
        1679 (8.96 % of base) : 699737.dasm - Microsoft.Cci.MetadataWriter:PopulateTypeDefTableRows():this (Tier1)
        1623 (6.60 % of base) : 89309.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
        1348 (5.56 % of base) : 58037.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
        1336 (7.91 % of base) : 716870.dasm - Microsoft.CodeAnalysis.Formatting.TokenStream:GetColumn(Microsoft.CodeAnalysis.Formatting.TokenData,System.Func`3[Microsoft.CodeAnalysis.Formatting.TokenData,Microsoft.CodeAnalysis.Formatting.TokenData,Microsoft.CodeAnalysis.Formatting.TriviaData]):int:this (Tier1)
        1323 (13.62 % of base) : 90950.dasm - Microsoft.CodeAnalysis.AnalyzerConfig:Parse(Microsoft.CodeAnalysis.Text.SourceText,System.String):Microsoft.CodeAnalysis.AnalyzerConfig (Tier1)
        1110 (11.72 % of base) : 699675.dasm - Microsoft.Cci.MetadataWriter:PopulateMemberRefTableRows():this (Tier1)
        1094 (14.62 % of base) : 430681.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized256|235_2[long,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[long],System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[long]](byref,long,byref,ulong) (Tier1)
        1094 (14.62 % of base) : 421530.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized256|235_2[long,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[long],System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[long]](byref,long,byref,ulong) (Tier1)
        1094 (14.62 % of base) : 430502.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized256|235_2[long,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[long],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[long],long]](byref,long,byref,ulong) (Tier1)
        1094 (14.62 % of base) : 427211.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized256|235_2[ulong,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ulong],System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ulong]](byref,ulong,byref,ulong) (Tier1)
        1094 (14.62 % of base) : 432741.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized256|235_2[ulong,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ulong],System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ulong]](byref,ulong,byref,ulong) (Tier1)
        1094 (14.62 % of base) : 432735.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized256|235_2[ulong,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ulong],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ulong],ulong]](byref,ulong,byref,ulong) (Tier1)

Top method improvements (bytes):
        -450 (-15.54 % of base) : 11481.dasm - System.Threading.ReaderWriterLockSlim:TryEnterWriteLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Instrumented Tier1)
        -409 (-4.16 % of base) : 692912.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindExtensionMethod(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
        -376 (-1.89 % of base) : 679398.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
        -373 (-7.12 % of base) : 698788.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30949_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -348 (-3.78 % of base) : 569904.dasm - System.Security.Cryptography.Rsa.Tests.RSAKeyFileTests:ReadWriteKey(System.String,byref,System.Security.Cryptography.Rsa.Tests.RSAKeyFileTests+ReadKeyAction,System.Func`2[System.Security.Cryptography.RSA,ubyte[]],System.Security.Cryptography.Rsa.Tests.RSAKeyFileTests+WriteKeyToSpanFunc,ubyte) (Tier1)
        -330 (-5.91 % of base) : 686063.dasm - Microsoft.Cci.FullMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (Tier1)
        -329 (-1.88 % of base) : 477376.dasm - System.Xml.Tests.TCNamespace:TestNamespace6():int:this (Tier1)
        -323 (-5.84 % of base) : 332096.dasm - Xunit.Sdk.ReflectionMethodInfo:GetParent(System.Reflection.MethodInfo):System.Reflection.MethodInfo (Tier1)
        -317 (-3.64 % of base) : 553370.dasm - System.Security.Cryptography.Rsa.Tests.RSAKeyFileTests:ReadWriteKey(System.String,byref,System.Security.Cryptography.Rsa.Tests.RSAKeyFileTests+ReadKeyAction,System.Func`2[System.Security.Cryptography.RSA,ubyte[]],System.Security.Cryptography.Rsa.Tests.RSAKeyFileTests+WriteKeyToSpanFunc,ubyte) (Tier1)
        -306 (-3.67 % of base) : 476874.dasm - System.Xml.Tests.TCReadToFollowing:v2():int:this (Tier1)
        -278 (-2.89 % of base) : 179489.dasm - Microsoft.Extensions.Options.Generators.Parser:GetMemberInfo(Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.ITypeSymbol,Microsoft.CodeAnalysis.ITypeSymbol):Microsoft.Extensions.Options.Generators.ValidatedMember:this (Tier1)
        -278 (-13.27 % of base) : 152329.dasm - System.Threading.ReaderWriterLockSlim:TryEnterUpgradeableReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Instrumented Tier1)
        -275 (-3.47 % of base) : 476464.dasm - System.Xml.Tests.TCReadToDescendant:v3():int:this (Tier1)
        -271 (-12.46 % of base) : 10801.dasm - System.Threading.ReaderWriterLockSlim:TryEnterReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Instrumented Tier1)
        -260 (-3.21 % of base) : 476489.dasm - System.Xml.Tests.TCReadToNextSibling:v():int:this (Tier1)
        -260 (-2.78 % of base) : 451117.dasm - System.Xml.XPath.XPathDocument:LoadFromReader(System.Xml.XmlReader,int):this (Tier1)
        -254 (-3.65 % of base) : 477997.dasm - System.Xml.Tests.TCReadToDescendant:v8():int:this (Tier1)
        -253 (-14.65 % of base) : 561981.dasm - System.Threading.ReaderWriterLockSlim:TryEnterReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Tier1)
        -253 (-14.65 % of base) : 137198.dasm - System.Threading.ReaderWriterLockSlim:TryEnterReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Tier1)
        -253 (-14.65 % of base) : 515370.dasm - System.Threading.ReaderWriterLockSlim:TryEnterReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Tier1)

Top method regressions (percentages):
        5804 (54.78 % of base) : 74606.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)
        5694 (54.19 % of base) : 70669.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)
          37 (51.39 % of base) : 429857.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          37 (51.39 % of base) : 561291.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          37 (51.39 % of base) : 322648.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          37 (51.39 % of base) : 331608.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          37 (51.39 % of base) : 341412.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          37 (51.39 % of base) : 419837.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          37 (51.39 % of base) : 517669.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          37 (51.39 % of base) : 102584.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          37 (51.39 % of base) : 375593.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          20 (48.78 % of base) : 473797.dasm - System.Xml.RwFactoryWriterTests.CModCmdLine:get_CmdLine():OLEDB.Test.ModuleCore.MyDict`2[System.String,System.String] (Tier1)
          13 (46.43 % of base) : 501217.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (Tier1)
          13 (43.33 % of base) : 199175.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (Tier1)
          13 (43.33 % of base) : 275064.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (Tier1)
          13 (43.33 % of base) : 380244.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (Tier1)
          13 (43.33 % of base) : 494580.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (Tier1)
          13 (43.33 % of base) : 128536.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (Tier1)
          13 (43.33 % of base) : 126059.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_RuntimeConfigPath():System.String (Tier1)
          13 (43.33 % of base) : 325479.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_RuntimeConfigPath():System.String (Tier1)

Top method improvements (percentages):
         -10 (-41.67 % of base) : 428966.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
         -10 (-41.67 % of base) : 428998.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Tier1)
         -10 (-41.67 % of base) : 429003.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
         -10 (-41.67 % of base) : 429034.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
         -10 (-41.67 % of base) : 420563.dasm - System.Int16:Max(short,short):short (Instrumented Tier1)
         -10 (-41.67 % of base) : 420868.dasm - System.Int16:Max(short,short):short (Tier1)
         -10 (-41.67 % of base) : 419950.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)
         -10 (-41.67 % of base) : 420464.dasm - System.Int16:Min(short,short):short (Tier1)
         -10 (-41.67 % of base) : 431391.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)
         -10 (-41.67 % of base) : 431308.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)
         -10 (-41.67 % of base) : 420867.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (Tier1)
         -10 (-41.67 % of base) : 420469.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
          -9 (-40.91 % of base) : 429043.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (Tier1)
          -9 (-40.91 % of base) : 429252.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (Tier1)
         -58 (-32.40 % of base) : 229065.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -58 (-32.40 % of base) : 277840.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -58 (-32.40 % of base) : 320980.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -57 (-31.49 % of base) : 740042.dasm - System.Transactions.ContextData:get_TLSCurrentData():System.Transactions.ContextData (Tier1)
         -57 (-31.49 % of base) : 740397.dasm - System.Transactions.ContextData:get_TLSCurrentData():System.Transactions.ContextData (Tier1)
         -69 (-31.36 % of base) : 38345.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Instrumented Tier1)


librariestestsnotieredcompilation.run.linux.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 132100449 (overridden on cmd)
Total bytes of diff: 132386757 (overridden on cmd)
Total bytes of delta: 286308 (0.22 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1961 : 64786.dasm (2.28 % of base)
        1510 : 99471.dasm (6.18 % of base)
        1500 : 229463.dasm (8.10 % of base)
        1400 : 20780.dasm (7.56 % of base)
        1032 : 62542.dasm (4.43 % of base)
        1018 : 62629.dasm (11.42 % of base)
         989 : 160378.dasm (11.65 % of base)
         958 : 48082.dasm (7.27 % of base)
         940 : 35846.dasm (8.27 % of base)
         937 : 300919.dasm (9.01 % of base)
         913 : 303963.dasm (19.42 % of base)
         878 : 66019.dasm (1.01 % of base)
         874 : 229236.dasm (14.05 % of base)
         863 : 228885.dasm (7.34 % of base)
         839 : 296617.dasm (7.61 % of base)
         831 : 49023.dasm (5.48 % of base)
         830 : 43339.dasm (5.57 % of base)
         806 : 72872.dasm (13.43 % of base)
         806 : 112831.dasm (3.85 % of base)
         803 : 6042.dasm (7.47 % of base)

Top file improvements (bytes):
       -1706 : 112915.dasm (-7.31 % of base)
        -863 : 120849.dasm (-3.36 % of base)
        -583 : 109692.dasm (-3.56 % of base)
        -518 : 208955.dasm (-3.56 % of base)
        -505 : 200040.dasm (-7.60 % of base)
        -505 : 197593.dasm (-7.60 % of base)
        -496 : 24707.dasm (-4.84 % of base)
        -453 : 205791.dasm (-3.00 % of base)
        -449 : 105741.dasm (-2.61 % of base)
        -447 : 61849.dasm (-9.05 % of base)
        -410 : 64253.dasm (-6.96 % of base)
        -400 : 229749.dasm (-2.56 % of base)
        -400 : 299367.dasm (-3.53 % of base)
        -389 : 272236.dasm (-8.28 % of base)
        -386 : 95770.dasm (-4.49 % of base)
        -384 : 184464.dasm (-3.65 % of base)
        -364 : 170309.dasm (-1.68 % of base)
        -361 : 93736.dasm (-5.47 % of base)
        -344 : 93902.dasm (-4.28 % of base)
        -331 : 96496.dasm (-5.16 % of base)

98 total files with Code Size differences (54 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
        1961 (2.28 % of base) : 64786.dasm - System.CodeDom.Compiler.Tests.CodeValidatorTests+<ValidateIdentifiers_Valid_TestData>d__0:MoveNext():ubyte:this (FullOpts)
        1510 (6.18 % of base) : 99471.dasm - System.Diagnostics.Metrics.Tests.MetricsTests:<ObservableInstrumentMeasurementTest>b__7_0():this (FullOpts)
        1500 (8.10 % of base) : 229463.dasm - System.ServiceModel.Syndication.Tests.Atom10FeedFormatterTests+<>c__DisplayClass28_0:<Read_FullItem_ReturnsExpected>b__0(System.ServiceModel.Syndication.SyndicationFeed):this (FullOpts)
        1400 (7.56 % of base) : 20780.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
        1032 (4.43 % of base) : 62542.dasm - System.Xml.Schema.XsdBuilder:.cctor() (FullOpts)
        1018 (11.42 % of base) : 62629.dasm - System.Xml.Schema.DatatypeImplementation:.cctor() (FullOpts)
         989 (11.65 % of base) : 160378.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized256|235_2[ubyte,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ubyte],System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ubyte]](byref,ubyte,byref,ulong) (FullOpts)
         958 (7.27 % of base) : 48082.dasm - Microsoft.CodeAnalysis.CodeStyle.CodeStyleOptions2:.cctor() (FullOpts)
         940 (8.27 % of base) : 35846.dasm - DryIoc.WrappersSupport:BuildSupportedWrappers():ImTools.ImMap`1[ImTools.ImMap+KValue`1[System.Type]] (FullOpts)
         937 (9.01 % of base) : 300919.dasm - System.Threading.Tasks.Tests.TaskFactory_FromAsyncTests:RunAPMFactoryTests() (FullOpts)
         913 (19.42 % of base) : 303963.dasm - System.Tests.ValueTupleTests:TestToString() (FullOpts)
         878 (1.01 % of base) : 66019.dasm - System.CodeDom.Compiler.Tests.CSharpCodeGeneratorTests+<GenerateCodeFromType_TestData>d__25:MoveNext():ubyte:this (FullOpts)
         874 (14.05 % of base) : 229236.dasm - System.ServiceModel.Syndication.Tests.AtomPub10ServiceDocumentFormatterTests+<WriteTo_TestData>d__9:MoveNext():ubyte:this (FullOpts)
         863 (7.34 % of base) : 228885.dasm - System.ServiceModel.Syndication.Tests.Rss20FeedFormatterTests:Read_TryParseTrue_ReturnsExpected(ubyte,ubyte):this (FullOpts)
         839 (7.61 % of base) : 296617.dasm - System.Threading.Tasks.Dataflow.Tests.DebugAttributeTests:TestDebuggerDisplaysAndTypeProxies():this (FullOpts)
         831 (5.48 % of base) : 49023.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (FullOpts)
         830 (5.57 % of base) : 43339.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (FullOpts)
         806 (3.85 % of base) : 112831.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004.enum004.Test:MainMethod():int (FullOpts)
         806 (13.43 % of base) : 72872.dasm - System.Collections.Immutable.Tests.ImmutableHashSetTest:Create():this (FullOpts)
         803 (7.47 % of base) : 6042.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)

Top method improvements (bytes):
       -1706 (-7.31 % of base) : 112915.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum005b.enum005b.Test:MainMethod():int (FullOpts)
        -863 (-3.36 % of base) : 120849.dasm - System.Globalization.Tests.CultureInfoAll+<CultureInfo_TestData>d__102:MoveNext():ubyte:this (FullOpts)
        -583 (-3.56 % of base) : 109692.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum005.enum005.Test:MainMethod():int (FullOpts)
        -518 (-3.56 % of base) : 208955.dasm - System.Tests.EnumTests+<HasFlag_TestData>d__41:MoveNext():ubyte:this (FullOpts)
        -505 (-7.60 % of base) : 200040.dasm - DataContractSerializerTests:DCS_BasicPerSerializerRoundTripAndCompare_ItRef() (FullOpts)
        -505 (-7.60 % of base) : 197593.dasm - DataContractSerializerTests:DCS_BasicPerSerializerRoundTripAndCompare_ItRef() (FullOpts)
        -496 (-4.84 % of base) : 24707.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        -453 (-3.00 % of base) : 205791.dasm - System.Tests.ArrayTests+<Copy_SZArray_Reliable_TestData>d__56:MoveNext():ubyte:this (FullOpts)
        -449 (-2.61 % of base) : 105741.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach004.freach004.Test:MainMethod():int (FullOpts)
        -447 (-9.05 % of base) : 61849.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this (FullOpts)
        -410 (-6.96 % of base) : 64253.dasm - System.CodeDom.Compiler.Tests.CodeGeneratorTests+<OutputParameter_TestData>d__186:MoveNext():ubyte:this (FullOpts)
        -400 (-2.56 % of base) : 229749.dasm - System.ServiceModel.Syndication.Tests.Rss20ItemFormatterTests+<>c__DisplayClass20_0:<ReadFrom_FullItem_ReturnsExpected>b__0(System.ServiceModel.Syndication.SyndicationItem):this (FullOpts)
        -400 (-3.53 % of base) : 299367.dasm - System.Threading.Tasks.Tests.ParallelForTests:RunParallelExceptionTests() (FullOpts)
        -389 (-8.28 % of base) : 272236.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1196_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -386 (-4.49 % of base) : 95770.dasm - System.Data.Tests.DataTableTest:ImportRowTest():this (FullOpts)
        -384 (-3.65 % of base) : 184464.dasm - System.Reflection.Tests.FieldTests:TestLiteralFields1() (FullOpts)
        -364 (-1.68 % of base) : 170309.dasm - System.Xml.Xsl.IlGen.XmlILMethods:.cctor() (FullOpts)
        -361 (-5.47 % of base) : 93736.dasm - System.Data.Tests.DataTableLoadRowTest:LoadRowTestPreserveChanges():this (FullOpts)
        -344 (-4.28 % of base) : 93902.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -331 (-5.16 % of base) : 96496.dasm - System.Data.Tests.DataViewTest:SortTests():this (FullOpts)

Top method regressions (percentages):
          20 (51.28 % of base) : 175954.dasm - System.Xml.RwFactoryWriterTests.CModCmdLine:get_CmdLine():OLEDB.Test.ModuleCore.MyDict`2[System.String,System.String] (FullOpts)
          20 (47.62 % of base) : 65471.dasm - System.CodeDom.Tests.TempFileCollectionTests:TempDirectory():System.String (FullOpts)
          13 (46.43 % of base) : 17580.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_DepsJsonPath():System.String (FullOpts)
          13 (46.43 % of base) : 17572.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_RuntimeConfigPath():System.String (FullOpts)
          74 (45.12 % of base) : 109659.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.dynamicobj001.dynamicobj001.Test:MainMethod():int (FullOpts)
          13 (44.83 % of base) : 151693.dasm - System.Net.NetworkInformation.NetworkChange:CloseSocket() (FullOpts)
          20 (41.67 % of base) : 4051.dasm - NuGet.Common.NullLogger:get_Instance():NuGet.Common.ILogger (FullOpts)
          20 (41.67 % of base) : 198252.dasm - SerializationTestTypes.RuntimeTypeHandleEqualityComparer:get_Comparer():SerializationTestTypes.RuntimeTypeHandleEqualityComparer (FullOpts)
          20 (41.67 % of base) : 199568.dasm - SerializationTestTypes.RuntimeTypeHandleEqualityComparer:get_Comparer():SerializationTestTypes.RuntimeTypeHandleEqualityComparer (FullOpts)
          82 (40.59 % of base) : 103306.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          82 (40.00 % of base) : 104897.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          95 (38.93 % of base) : 103361.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.basic.named02b.named02b.Derived,System.Object,System.Object):System.Object (FullOpts)
          94 (38.68 % of base) : 102984.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.generic01d.generic01d.Parent,System.Object,System.Object):System.Object (FullOpts)
          99 (38.08 % of base) : 106192.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.overload.overload19c.overload19c.Derived,System.Object,System.Object):System.Object (FullOpts)
          98 (37.84 % of base) : 110472.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage04d.usage04d.Parent,System.Object,System.Object):System.Object (FullOpts)
          98 (37.84 % of base) : 105238.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage10a.usage10a.Parent,System.Object,System.Object):System.Object (FullOpts)
          96 (36.64 % of base) : 108729.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.prms.prms01b.prms01b.Parent,System.Object,System.Object):System.Object (FullOpts)
          56 (35.90 % of base) : 101490.dasm - System.DirectoryServices.Protocols.Tests.DirectoryServicesTestHelpers:get_IsLibLdapInstalled():ubyte (FullOpts)
         269 (35.35 % of base) : 162306.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4ToStringTest():this (FullOpts)
          96 (35.29 % of base) : 112090.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.formalParameter.Methods.method007.method007.Test+MyClass,System.Object,System.Object) (FullOpts)

Top method improvements (percentages):
         -10 (-41.67 % of base) : 160533.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
         -10 (-41.67 % of base) : 160523.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
          -9 (-40.91 % of base) : 160395.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
          -9 (-40.91 % of base) : 160409.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
         -10 (-34.48 % of base) : 160821.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-34.48 % of base) : 160543.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-34.48 % of base) : 160433.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-34.48 % of base) : 160749.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -40 (-30.53 % of base) : 192487.dasm - System.Numerics.Tests.ComplexTests:Negate(double,double) (FullOpts)
         -10 (-23.81 % of base) : 132537.dasm - System.Linq.ParallelQuery`1+<>c__1`1[System.__Canon,int]:<Cast>b__1_0(System.__Canon):int:this (FullOpts)
         -10 (-23.81 % of base) : 140377.dasm - System.Linq.Tests.OrderByTests+<>c:<LastOnOrderedMatchingCases>b__30_0(System.Object):int:this (FullOpts)
         -10 (-23.81 % of base) : 246037.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default+<>c:<KeyValuePairInt32Int32PropInit>b__513_0(System.Object):int:this (FullOpts)
         -10 (-23.81 % of base) : 250129.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default+<>c:<MultiplePublicParameterizedCtor_StructPropInit>b__679_0(System.Object):int:this (FullOpts)
         -10 (-23.81 % of base) : 239213.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata+<>c:<Point_3D_StructPropInit>b__727_0(System.Object):int:this (FullOpts)
         -10 (-23.81 % of base) : 236225.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata+<>c:<SimpleStructPropInit>b__949_0(System.Object):int:this (FullOpts)
         -10 (-23.81 % of base) : 254025.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata+<>c:<StructWithFourArgsPropInit>b__997_3(System.Object):int:this (FullOpts)
         -10 (-23.81 % of base) : 243957.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Default+PropertyVisibilityTestsContext_Default+<>c:<Point_2D_StructPropInit>b__296_0(System.Object):int:this (FullOpts)
         -10 (-23.81 % of base) : 245113.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Default+PropertyVisibilityTestsContext_Default+<>c:<StructWithStructProperty_IgnoreConditionWhenWritingDefault_CtorPropInit>b__1207_0(System.Object):int:this (FullOpts)
         -10 (-23.81 % of base) : 249253.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Metadata+PropertyVisibilityTestsContext_Metadata+<>c:<StructWithPropertiesWithJsonPropertyName_PrivateSetterPropInit>b__1016_0(System.Object):int:this (FullOpts)
         -10 (-23.81 % of base) : 301401.dasm - System.Threading.Tasks.Tests.TaskRtTests_Core+<>c:<RunRefactoringTests_NegativeTests>b__31_0(System.Object):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: 13158743 (overridden on cmd)
Total bytes of diff: 13192224 (overridden on cmd)
Total bytes of delta: 33481 (0.25 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         954 : 12504.dasm (16.30 % of base)
         936 : 2921.dasm (8.85 % of base)
         803 : 18621.dasm (7.47 % of base)
         608 : 13949.dasm (5.08 % of base)
         590 : 18073.dasm (3.59 % of base)
         521 : 6524.dasm (0.58 % of base)
         505 : 29704.dasm (5.49 % of base)
         423 : 18921.dasm (7.11 % of base)
         364 : 1323.dasm (8.00 % of base)
         350 : 30614.dasm (0.27 % of base)
         323 : 15397.dasm (7.96 % of base)
         299 : 1653.dasm (4.24 % of base)
         293 : 24516.dasm (5.14 % of base)
         283 : 1309.dasm (6.81 % of base)
         268 : 3267.dasm (4.81 % of base)
         267 : 9626.dasm (3.12 % of base)
         259 : 1690.dasm (2.06 % of base)
         248 : 7417.dasm (1.95 % of base)
         232 : 13724.dasm (2.91 % of base)
         226 : 12740.dasm (5.68 % of base)

Top file improvements (bytes):
       -1505 : 1342.dasm (-8.97 % of base)
        -246 : 2502.dasm (-2.47 % of base)
        -221 : 2650.dasm (-1.44 % of base)
        -200 : 1337.dasm (-2.60 % of base)
        -197 : 30124.dasm (-1.45 % of base)
        -196 : 28428.dasm (-8.89 % of base)
        -174 : 19907.dasm (-6.13 % of base)
        -174 : 4798.dasm (-2.83 % of base)
        -171 : 19743.dasm (-5.11 % of base)
        -170 : 19124.dasm (-13.05 % of base)
        -152 : 1321.dasm (-1.80 % of base)
        -147 : 12275.dasm (-1.83 % of base)
        -146 : 30358.dasm (-4.22 % of base)
        -141 : 1307.dasm (-0.81 % of base)
        -126 : 24733.dasm (-20.36 % of base)
        -124 : 29273.dasm (-6.92 % of base)
        -123 : 28076.dasm (-7.86 % of base)
        -121 : 1786.dasm (-6.78 % of base)
        -120 : 23224.dasm (-3.69 % of base)
        -120 : 32256.dasm (-13.51 % of base)

94 total files with Code Size differences (41 improved, 53 regressed), 20 unchanged.

Top method regressions (bytes):
         954 (16.30 % of base) : 12504.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Bottom(byref,int,System.ReadOnlySpan`1[SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32]]):SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32] (FullOpts)
         936 (8.85 % of base) : 2921.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
         803 (7.47 % of base) : 18621.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
         608 (5.08 % of base) : 13949.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
         590 (3.59 % of base) : 18073.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (FullOpts)
         521 (0.58 % of base) : 6524.dasm - FSharp.Compiler.TcGlobals+TcGlobals:.ctor(ubyte,FSharp.Compiler.AbstractIL.IL+ILGlobals,FSharp.Compiler.TypedTree+CcuThunk,System.String,ubyte,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+CcuThunk]]],ubyte,ubyte,Internal.Utilities.PathMap,FSharp.Compiler.Features+LanguageVersion):this (FullOpts)
         505 (5.49 % of base) : 29704.dasm - System.Management.Automation.Runspaces.InitialSessionState:.cctor() (FullOpts)
         423 (7.11 % of base) : 18921.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         364 (8.00 % of base) : 1323.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CapsuleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         350 (0.27 % of base) : 30614.dasm - System.Management.Automation.Runspaces.TypeTable:Process_Types_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
         323 (7.96 % of base) : 15397.dasm - Microsoft.ML.Benchmarks.KMeansAndLogisticRegressionBench:TrainKMeansAndLR():Microsoft.ML.Calibrators.CalibratedModelParametersBase`2[Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator]:this (FullOpts)
         299 (4.24 % of base) : 1653.dasm - BepuPhysics.Constraints.HingeFunctions:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
         293 (5.14 % of base) : 24516.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalAccess(Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess,byref):this (FullOpts)
         283 (6.81 % of base) : 1309.dasm - BepuPhysics.CollisionDetection.DepthRefiner`6[BepuPhysics.Collidables.Cylinder,BepuPhysics.Collidables.CylinderWide,BepuPhysics.Collidables.CylinderSupportFinder,BepuPhysics.Collidables.Triangle,BepuPhysics.Collidables.TriangleWide,BepuPhysics.CollisionDetection.CollisionTasks.PretransformedTriangleSupportFinder]:GetNextNormal[BepuPhysics.CollisionDetection.DepthRefiner`6+HasNoNewSupport[BepuPhysics.Collidables.Cylinder,BepuPhysics.Collidables.CylinderWide,BepuPhysics.Collidables.CylinderSupportFinder,BepuPhysics.Collidables.Triangle,BepuPhysics.Collidables.TriangleWide,BepuPhysics.CollisionDetection.CollisionTasks.PretransformedTriangleSupportFinder]](byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
         268 (4.81 % of base) : 3267.dasm - Microsoft.Build.Shared.FrameworkLocationHelper:.cctor() (FullOpts)
         267 (3.12 % of base) : 9626.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks:TryCheckResumableCodeConstructs(FSharp.Compiler.PostTypeCheckSemanticChecks+cenv,FSharp.Compiler.PostTypeCheckSemanticChecks+env,FSharp.Compiler.TypedTree+Expr):ubyte (FullOpts)
         259 (2.06 % of base) : 1690.dasm - DemoBenchmarks.RagdollTubeBenchmark:AddRagdoll(System.Numerics.Vector3,System.Numerics.Quaternion,int,BepuPhysics.CollidableProperty`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupCollisionFilter],BepuPhysics.Simulation):DemoBenchmarks.RagdollTubeBenchmark+RagdollHandles (FullOpts)
         248 (1.95 % of base) : 7417.dasm - FSharp.Compiler.AugmentWithHashCompare:CheckAugmentationAttribs(ubyte,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.TypedTree+Entity) (FullOpts)
         232 (2.91 % of base) : 13724.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
         226 (5.68 % of base) : 12740.dasm - Microsoft.ML.Internal.Utilities.StreamUtils:Expand(System.String):System.String[] (FullOpts)

Top method improvements (bytes):
       -1505 (-8.97 % of base) : 1342.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -246 (-2.47 % of base) : 2502.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
        -221 (-1.44 % of base) : 2650.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Syntax.PrettyNaming:.cctor() (FullOpts)
        -200 (-2.60 % of base) : 1337.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -197 (-1.45 % of base) : 30124.dasm - System.Management.Automation.Language.CachedReflectionInfo:.cctor() (FullOpts)
        -196 (-8.89 % of base) : 28428.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+IsPatternExpressionGeneralLocalRewriter:LowerGeneralIsPattern(Microsoft.CodeAnalysis.CSharp.BoundIsPatternExpression,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -174 (-2.83 % of base) : 4798.dasm - FSharp.Compiler.CompilerOptions:deprecatedFlagsFsc(FSharp.Compiler.CompilerConfig+TcConfigBuilder):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOption] (FullOpts)
        -174 (-6.13 % of base) : 19907.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteCustomModifiers(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]:this (FullOpts)
        -171 (-5.11 % of base) : 19743.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbolFromSyntax:ResolveAliasTarget(Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:this (FullOpts)
        -170 (-13.05 % of base) : 19124.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -152 (-1.80 % of base) : 1321.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CylinderConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -147 (-1.83 % of base) : 12275.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifTag:.cctor() (FullOpts)
        -146 (-4.22 % of base) : 30358.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseManager:ProcessBuiltin(System.Management.Automation.Runspaces.PSSnapInTypeAndFormatErrors,Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBase,Microsoft.PowerShell.Commands.Internal.Format.PSPropertyExpressionFactory,System.Collections.Generic.List`1[Microsoft.PowerShell.Commands.Internal.Format.XmlLoaderLoggerEntry],byref):ubyte (FullOpts)
        -141 (-0.81 % of base) : 1307.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -126 (-20.36 % of base) : 24733.dasm - Microsoft.CodeAnalysis.CSharp.BoundLambda:GetInferredReturnType(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.NullableWalker+VariableState,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
        -124 (-6.92 % of base) : 29273.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (FullOpts)
        -123 (-7.86 % of base) : 28076.dasm - Microsoft.CodeAnalysis.CSharp.AsyncStateMachine:.ctor(Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,ubyte):this (FullOpts)
        -121 (-6.78 % of base) : 1786.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -120 (-3.69 % of base) : 23224.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxExtensions:VisitRankSpecifiers[System.ValueTuple`2[System.__Canon,System.__Canon]](Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,System.Action`2[System.__Canon,System.ValueTuple`2[System.__Canon,System.__Canon]],byref) (FullOpts)
        -120 (-13.51 % of base) : 32256.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)

Top method regressions (percentages):
          31 (37.80 % of base) : 3268.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)
          21 (26.25 % of base) : 14009.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
          13 (22.81 % of base) : 15492.dasm - Microsoft.ML.Data.R4Adder:get_Instance():Microsoft.ML.Data.R4Adder (FullOpts)
          13 (22.81 % of base) : 2254.dasm - System.Type:get_DefaultBinder():System.Reflection.Binder (FullOpts)
          18 (21.95 % of base) : 26738.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass1:CanScheduleToStack(Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol):ubyte:this (FullOpts)
          18 (21.43 % of base) : 19395.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions+<>c:<.cctor>b__143_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,ubyte):ubyte:this (FullOpts)
          13 (20.31 % of base) : 1019.dasm - System.AppDomain:get_CurrentDomain():System.AppDomain (FullOpts)
          18 (19.57 % of base) : 18923.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol:IsValidWellKnownType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):ubyte:this (FullOpts)
          43 (19.03 % of base) : 4864.dasm - System.Diagnostics.TraceInternal:InitializeSettings() (FullOpts)
          18 (18.37 % of base) : 24909.dasm - Microsoft.CodeAnalysis.ConstantValue+ConstantValueDoubleZero:Equals(Microsoft.CodeAnalysis.ConstantValue):ubyte:this (FullOpts)
          18 (18.37 % of base) : 24907.dasm - Microsoft.CodeAnalysis.ConstantValue+ConstantValueSingleZero:Equals(Microsoft.CodeAnalysis.ConstantValue):ubyte:this (FullOpts)
          31 (17.82 % of base) : 14289.dasm - Interop+OpenSsl:get_DisableTlsResume():ubyte (FullOpts)
          11 (17.19 % of base) : 21647.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.IndexedTypeParameterSymbol:GetTypeParameter(int):Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol (FullOpts)
          23 (16.79 % of base) : 2031.dasm - System.Xml.XmlNamespaceManager:PopScope():ubyte:this (FullOpts)
          35 (16.67 % of base) : 2763.dasm - FSharp.Compiler.AbstractIL.IL+ILArgConvention:.cctor() (FullOpts)
          35 (16.67 % of base) : 5244.dasm - FSharp.Compiler.Syntax.SynMemberKind:.cctor() (FullOpts)
          12 (16.44 % of base) : 25270.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:IsTupleTypeOfCardinality(int):ubyte:this (FullOpts)
         954 (16.30 % of base) : 12504.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Bottom(byref,int,System.ReadOnlySpan`1[SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32]]):SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32] (FullOpts)
          12 (16.22 % of base) : 18633.dasm - System.Type:get_GenericTypeArguments():System.Type[]:this (FullOpts)
          28 (16.00 % of base) : 18747.dasm - Microsoft.CodeAnalysis.SymbolEqualityComparer:.cctor() (FullOpts)

Top method improvements (percentages):
        -126 (-20.36 % of base) : 24733.dasm - Microsoft.CodeAnalysis.CSharp.BoundLambda:GetInferredReturnType(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.NullableWalker+VariableState,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
         -11 (-17.19 % of base) : 13249.dasm - Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
         -11 (-17.19 % of base) : 13575.dasm - Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],Microsoft.ML.Data.VBuffer`1[float]]:<GetValueGetter>b__0(byref):this (FullOpts)
         -11 (-17.19 % of base) : 13173.dasm - Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]:<GetMappingGetter>b__0(byref):this (FullOpts)
         -11 (-16.67 % of base) : 15141.dasm - Microsoft.ML.Transforms.Text.TextNormalizingTransformer+Mapper+<>c__DisplayClass9_0:<MakeGetterOne>b__0(byref):this (FullOpts)
        -104 (-16.51 % of base) : 30636.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -44 (-16.48 % of base) : 32331.dasm - System.Reflection.Emit.RuntimeILGenerator:SortExceptions(System.Reflection.Emit.__ExceptionInfo[]) (FullOpts)
         -25 (-14.12 % of base) : 14819.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryEnqueue(System.Net.Sockets.SocketAsyncEngine+SocketIOEvent):ubyte:this (FullOpts)
        -120 (-13.51 % of base) : 32256.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
         -12 (-13.48 % of base) : 21707.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol:GetUniqueParameterName(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.String):System.String (FullOpts)
        -170 (-13.05 % of base) : 19124.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
         -10 (-12.66 % of base) : 30691.dasm - System.Collections.Specialized.OrderedDictionary:get_Item(int):System.Object:this (FullOpts)
         -16 (-11.85 % of base) : 21763.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbolBase:MatchesContainingType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte:this (FullOpts)
         -10 (-11.11 % of base) : 32936.dasm - System.Management.Automation.ReflectionParameterBinder+<>c:<.cctor>b__4_23(System.Object,System.Object):this (FullOpts)
         -10 (-10.99 % of base) : 14201.dasm - System.Net.Sockets.Socket:get_DualMode():ubyte:this (FullOpts)
         -12 (-10.71 % of base) : 1021.dasm - System.AppContext:remove_FirstChanceException(System.EventHandler`1[System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs]) (FullOpts)
         -26 (-10.61 % of base) : 2874.dasm - Internal.Utilities.FSharpEnvironment+probePathForDotnetHost@420-1:Invoke(System.String):ubyte:this (FullOpts)
         -99 (-10.60 % of base) : 8193.dasm - FSharp.Compiler.CheckExpressions:TcPatBindingName(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.Syntax.Ident,FSharp.Compiler.TypedTree+TType,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PartialValReprInfo],FSharp.Compiler.TypedTree+ValInline,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+ArgAndRetAttribs,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],ubyte,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]):System.Tuple`3[Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+TcPatPhase2Input,FSharp.Compiler.PatternMatchCompilation+PatternValBinding],Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]] (FullOpts)
         -18 (-10.53 % of base) : 1585.dasm - BepuPhysics.IslandSleeper:EnsureSetsCapacity(int):this (FullOpts)
         -10 (-10.53 % of base) : 25774.dasm - System.Collections.Immutable.ImmutableArray:ToImmutableArray[ubyte](System.Collections.Generic.IEnumerable`1[ubyte]):System.Collections.Immutable.ImmutableArray`1[ubyte] (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: 4240043 (overridden on cmd)
Total bytes of diff: 4251981 (overridden on cmd)
Total bytes of delta: 11938 (0.28 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1008 : 17405.dasm (12.09 % of base)
         206 : 16804.dasm (20.28 % of base)
         163 : 21708.dasm (8.89 % of base)
         163 : 3567.dasm (8.90 % of base)
         150 : 25921.dasm (7.63 % of base)
         140 : 16675.dasm (3.85 % of base)
         137 : 4125.dasm (5.43 % of base)
         126 : 7446.dasm (10.71 % of base)
         114 : 18023.dasm (9.01 % of base)
         101 : 21958.dasm (4.02 % of base)
         100 : 18095.dasm (9.10 % of base)
          95 : 1078.dasm (1.40 % of base)
          95 : 25910.dasm (1.40 % of base)
          95 : 14753.dasm (1.40 % of base)
          95 : 19798.dasm (1.40 % of base)
          89 : 16745.dasm (1.08 % of base)
          89 : 22274.dasm (1.08 % of base)
          84 : 21468.dasm (8.82 % of base)
          84 : 11234.dasm (8.85 % of base)
          82 : 21252.dasm (5.21 % of base)

Top file improvements (bytes):
        -127 : 12725.dasm (-7.20 % of base)
         -61 : 1498.dasm (-6.52 % of base)
         -61 : 15171.dasm (-6.50 % of base)
         -61 : 20239.dasm (-6.50 % of base)
         -61 : 26409.dasm (-6.50 % of base)
         -50 : 22332.dasm (-1.65 % of base)
         -39 : 12948.dasm (-3.12 % of base)
         -35 : 21933.dasm (-2.23 % of base)
         -35 : 8515.dasm (-8.41 % of base)
         -35 : 9570.dasm (-2.23 % of base)
         -34 : 17828.dasm (-7.67 % of base)
         -34 : 17838.dasm (-7.74 % of base)
         -33 : 10174.dasm (-8.21 % of base)
         -33 : 8640.dasm (-8.51 % of base)
         -30 : 13420.dasm (-1.06 % of base)
         -27 : 1864.dasm (-2.92 % of base)
         -27 : 15558.dasm (-2.92 % of base)
         -27 : 21723.dasm (-2.90 % of base)
         -27 : 26685.dasm (-9.03 % of base)
         -27 : 26783.dasm (-2.92 % of base)

84 total files with Code Size differences (40 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
        1008 (12.09 % of base) : 17405.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         206 (20.28 % of base) : 16804.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileNoLabelPush(System.Linq.Expressions.Expression):this (FullOpts)
         163 (8.89 % of base) : 21708.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         163 (8.90 % of base) : 3567.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         150 (7.63 % of base) : 25921.dasm - System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong (FullOpts)
         140 (3.85 % of base) : 16675.dasm - System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:InvokeMember(System.String,int,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]):System.Object:this (FullOpts)
         137 (5.43 % of base) : 4125.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
         126 (10.71 % of base) : 7446.dasm - System.Type:GetEnumData(byref,byref):this (FullOpts)
         114 (9.01 % of base) : 18023.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileMultiDimArrayAccess(System.Linq.Expressions.Expression,System.Linq.Expressions.IArgumentProvider,int):System.Linq.Expressions.Interpreter.ByRefUpdater:this (FullOpts)
         101 (4.02 % of base) : 21958.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
         100 (9.10 % of base) : 18095.dasm - System.Linq.Expressions.UnaryExpression:ReduceIndex():System.Linq.Expressions.Expression:this (FullOpts)
          95 (1.40 % of base) : 1078.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
          95 (1.40 % of base) : 25910.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
          95 (1.40 % of base) : 14753.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
          95 (1.40 % of base) : 19798.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
          89 (1.08 % of base) : 16745.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
          89 (1.08 % of base) : 22274.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
          84 (8.82 % of base) : 21468.dasm - System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:MakeGenericType(System.Type[]):System.Type:this (FullOpts)
          84 (8.85 % of base) : 11234.dasm - System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:MakeGenericType(System.Type[]):System.Type:this (FullOpts)
          82 (5.21 % of base) : 21252.dasm - System.TermInfo+DatabaseFactory:ReadDatabase(System.String,System.String):System.TermInfo+Database (FullOpts)

Top method improvements (bytes):
        -127 (-7.20 % of base) : 12725.dasm - System.Threading.ReaderWriterLockSlim:TryEnterWriteLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (FullOpts)
         -61 (-6.52 % of base) : 1498.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (FullOpts)
         -61 (-6.50 % of base) : 15171.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (FullOpts)
         -61 (-6.50 % of base) : 20239.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (FullOpts)
         -61 (-6.50 % of base) : 26409.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (FullOpts)
         -50 (-1.65 % of base) : 22332.dasm - WaitSubsystemTests:SemaphoreTest() (FullOpts)
         -39 (-3.12 % of base) : 12948.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (FullOpts)
         -35 (-2.23 % of base) : 21933.dasm - System.Globalization.TimeSpanFormat:FormatCustomized[ushort](System.TimeSpan,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,byref) (FullOpts)
         -35 (-2.23 % of base) : 9570.dasm - System.Globalization.TimeSpanFormat:FormatCustomized[ushort](System.TimeSpan,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,byref) (FullOpts)
         -35 (-8.41 % of base) : 8515.dasm - System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|87_0[long,System.SpanHelpers+DontNegate`1[long],System.Runtime.Intrinsics.Vector512`1[long]](byref,long,int):int (FullOpts)
         -34 (-7.74 % of base) : 17838.dasm - System.Linq.Expressions.Interpreter.AndInstruction+AndBoolean:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
         -34 (-7.67 % of base) : 17828.dasm - System.Linq.Expressions.Interpreter.OrInstruction+OrBoolean:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
         -33 (-8.51 % of base) : 8640.dasm - System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|87_0[int,System.SpanHelpers+DontNegate`1[int],System.Runtime.Intrinsics.Vector512`1[int]](byref,int,int):int (FullOpts)
         -33 (-8.21 % of base) : 10174.dasm - System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|87_0[ubyte,System.SpanHelpers+DontNegate`1[ubyte],System.Runtime.Intrinsics.Vector512`1[ubyte]](byref,ubyte,int):int (FullOpts)
         -30 (-1.06 % of base) : 13420.dasm - System.Uri:GetCanonicalPath(byref,int):this (FullOpts)
         -27 (-9.03 % of base) : 26685.dasm - Internal.Metadata.NativeFormat.MetadataTypeHashingAlgorithms:AppendNamespaceHashCode(byref,Internal.Metadata.NativeFormat.NamespaceDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader) (FullOpts)
         -27 (-2.92 % of base) : 1864.dasm - System.Array:CopyImplGcRefArray(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
         -27 (-2.92 % of base) : 15558.dasm - System.Array:CopyImplGcRefArray(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
         -27 (-2.90 % of base) : 21723.dasm - System.Array:CopyImplGcRefArray(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
         -27 (-2.92 % of base) : 26783.dasm - System.Array:CopyImplGcRefArray(System.Array,int,System.Array,int,int,ubyte) (FullOpts)

Top method regressions (percentages):
          22 (22.22 % of base) : 17527.dasm - System.Dynamic.Utils.TypeUtils:AreReferenceAssignable(System.Type,System.Type):ubyte (FullOpts)
          30 (20.55 % of base) : 4656.dasm - Internal.Metadata.NativeFormat.ConstantCharValueHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 4764.dasm - Internal.Metadata.NativeFormat.ConstantDoubleArrayHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 4740.dasm - Internal.Metadata.NativeFormat.ConstantInt16ArrayHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 6248.dasm - Internal.Metadata.NativeFormat.ConstantInt32ValueHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 4728.dasm - Internal.Metadata.NativeFormat.ConstantInt64ArrayHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 4712.dasm - Internal.Metadata.NativeFormat.ConstantSingleArrayHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 4672.dasm - Internal.Metadata.NativeFormat.ConstantSingleValueHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 25468.dasm - Internal.Metadata.NativeFormat.ConstantStringArrayHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 6276.dasm - Internal.Metadata.NativeFormat.ConstantUInt16ValueHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 6264.dasm - Internal.Metadata.NativeFormat.ConstantUInt64ValueHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 6164.dasm - Internal.Metadata.NativeFormat.CustomAttributeHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 5056.dasm - Internal.Metadata.NativeFormat.FunctionPointerSignatureHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 14276.dasm - Internal.Metadata.NativeFormat.MethodSignatureHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 19340.dasm - Internal.Metadata.NativeFormat.MethodSignatureHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 19292.dasm - Internal.Metadata.NativeFormat.ScopeDefinitionHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 25428.dasm - Internal.Metadata.NativeFormat.ScopeDefinitionHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 5000.dasm - Internal.Metadata.NativeFormat.ScopeReferenceHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 20260.dasm - Internal.Metadata.NativeFormat.TypeDefinitionHandle:Equals(System.Object):ubyte:this (FullOpts)
          30 (20.55 % of base) : 5944.dasm - Internal.Metadata.NativeFormat.TypeSpecificationHandle:Equals(System.Object):ubyte:this (FullOpts)

Top method improvements (percentages):
         -25 (-14.12 % of base) : 12916.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryEnqueue(System.Net.Sockets.SocketAsyncEngine+SocketIOEvent):ubyte:this (FullOpts)
         -10 (-11.76 % of base) : 10378.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:InitializeInstance():Internal.Runtime.TypeLoader.TypeLoaderEnvironment (FullOpts)
          -4 (-11.43 % of base) : 6509.dasm - System.Action:InvokeOpenStaticThunk():this (FullOpts)
          -4 (-11.43 % of base) : 6516.dasm - System.Func`1[int]:InvokeOpenStaticThunk():int:this (FullOpts)
          -4 (-11.43 % of base) : 14285.dasm - System.Func`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
          -4 (-11.43 % of base) : 25494.dasm - System.Func`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
          -4 (-11.43 % of base) : 19357.dasm - System.Func`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
          -4 (-11.43 % of base) : 622.dasm - System.Func`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
          -4 (-11.43 % of base) : 16582.dasm - System.Func`1[System.ValueTuple`2[int,System.__Canon]]:InvokeOpenStaticThunk():System.ValueTuple`2[int,System.__Canon]:this (FullOpts)
          -4 (-11.43 % of base) : 14087.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
          -4 (-11.43 % of base) : 19149.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
          -4 (-11.43 % of base) : 25318.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
          -4 (-11.43 % of base) : 12184.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
          -9 (-10.11 % of base) : 13329.dasm - System.Uri:GetLengthWithoutTrailingSpaces(System.String,byref,int) (FullOpts)
          -9 (-9.89 % of base) : 21214.dasm - System.Math:<BigMul>g__SoftwareFallback|47_0(ulong,ulong,byref):ulong (FullOpts)
          -9 (-9.89 % of base) : 16158.dasm - System.Math:<BigMul>g__SoftwareFallback|47_0(ulong,ulong,byref):ulong (FullOpts)
          -9 (-9.89 % of base) : 27380.dasm - System.Math:<BigMul>g__SoftwareFallback|47_0(ulong,ulong,byref):ulong (FullOpts)
          -9 (-9.89 % of base) : 8094.dasm - System.Math:<BigMul>g__SoftwareFallback|47_0(ulong,ulong,byref):ulong (FullOpts)
         -20 (-9.35 % of base) : 1764.dasm - Internal.NativeFormat.TypeHashingAlgorithms+HashCodeBuilder:Append(System.String):this (FullOpts)
         -20 (-9.35 % of base) : 20525.dasm - Internal.NativeFormat.TypeHashingAlgorithms+HashCodeBuilder:Append(System.String):this (FullOpts)



osx arm64

Diffs are based on 2,312,793 contexts (945,402 MinOpts, 1,367,391 FullOpts).

MISSED contexts: base: 170 (0.01%), diff: 4,920 (0.21%)

Overall (-984,144 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.osx.arm64.checked.mch 11,082,424 +5,184 -0.04%
benchmarks.run_pgo.osx.arm64.checked.mch 34,604,740 +8,120 -0.24%
benchmarks.run_tiered.osx.arm64.checked.mch 15,625,516 -4,276 -0.11%
coreclr_tests.run.osx.arm64.checked.mch 506,293,844 -1,298,788 -0.34%
libraries.crossgen2.osx.arm64.checked.mch 63,948,516 -192,940 +0.61%
libraries.pmi.osx.arm64.checked.mch 80,552,460 +60,928 -0.41%
libraries_tests.run.osx.arm64.Release.mch 311,987,272 -2,908 -0.31%
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 159,439,412 +437,936 -0.01%
realworld.run.osx.arm64.checked.mch 15,016,556 +2,600 -0.23%

FullOpts (-984,144 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.osx.arm64.checked.mch 11,081,888 +5,184 -0.04%
benchmarks.run_pgo.osx.arm64.checked.mch 18,111,384 +8,120 -0.24%
benchmarks.run_tiered.osx.arm64.checked.mch 3,993,192 -4,276 -0.11%
coreclr_tests.run.osx.arm64.checked.mch 154,849,448 -1,298,788 -0.34%
libraries.crossgen2.osx.arm64.checked.mch 63,946,888 -192,940 +0.61%
libraries.pmi.osx.arm64.checked.mch 80,431,396 +60,928 -0.41%
libraries_tests.run.osx.arm64.Release.mch 110,585,536 -2,908 -0.31%
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 146,391,192 +437,936 -0.01%
realworld.run.osx.arm64.checked.mch 14,459,656 +2,600 -0.23%

Example diffs

benchmarks.run.osx.arm64.checked.mch

-36 (-21.95%) : 8268.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M57856_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #1 LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #1 LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M57856_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00000001083C4218h, 000000010B2D8B28h +RWD16 dq 00000001083C4218h, 000000010B2D8B40h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-12 (-13.04%) : 11985.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_1072(System.Object):ubyte:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.StructRecord> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) ubyte -> zero-ref "V02.[024..025)"
+; V05 cse0 [V05,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -34,16 +35,13 @@ G_M35182_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M35182_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M35182_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldrb w0, [x19, #0x20] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -53,7 +51,7 @@ G_M35182_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=0ddb7691) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_2(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=0ddb7691) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_2(System.Object):ubyte:this (FullOpts)
; ============================================================ Unwind Info: @@ -64,7 +62,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 11989.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_10710(System.Object):System.String:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.StructRecord> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref "V02.[008..016)"
+; V05 cse0 [V05,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -34,16 +35,13 @@ G_M19356_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M19356_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M19356_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x10] ; gcrRegs +[x0] @@ -54,7 +52,7 @@ G_M19356_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=6757b463) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_10(System.Object):System.String:this (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=6757b463) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_10(System.Object):System.String:this (FullOpts)
; ============================================================ Unwind Info: @@ -65,7 +63,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+25.81%) : 11483.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)

@@ -18,13 +18,12 @@ ;* V07 tmp7 [V07 ] ( 0, 0 ) ref -> zero-ref ;* V08 tmp8 [V08 ] ( 0, 0 ) ref -> zero-ref ;* V09 tmp9 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 cse0 [V10,T01] ( 5, 5 ) long -> x20 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28339_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28339_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -35,17 +34,20 @@ G_M28339_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs +[x0] mov x19, x0 ; gcrRegs +[x19]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #2 LSL #32 - ldr x15, [x20]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #16 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15] ; byrRegs -[x14]
- ldr x15, [x20, #0x30]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #24 ; byrRegs +[x14] @@ -57,26 +59,31 @@ G_M28339_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movk x0, #1 LSL #32 mov w1, #9 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x20, #0x78]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #8 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- add x14, x20, #40
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x19 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15 x19]
- ;; size=100 bbWeight=1 PerfScore 23.00
+ ;; size=132 bbWeight=1 PerfScore 27.00
G_M28339_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 124, prolog size 12, PerfScore 28.50, instruction count 31, allocated bytes for code 124 (MethodHash=13b9914c) for method System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
+; Total bytes of code 156, prolog size 12, PerfScore 33.50, instruction count 39, allocated bytes for code 156 (MethodHash=13b9914c) for method System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -87,7 +94,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ 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) @@ -95,7 +102,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+26.09%) : 12547.dasm - System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)

@@ -8,62 +8,66 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V02 cse1 [V02,T00] ( 5, 4.50) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M40308_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M40308_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M40308_IG07 - ;; size=36 bbWeight=1 PerfScore 7.50
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M40308_IG07 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M40308_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w0, [x19, #0xD1FFAB1E]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0]
cbnz w0, G_M40308_IG05
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M40308_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, #1
- str w0, [x19, #0xD1FFAB1E] - ;; size=8 bbWeight=0.50 PerfScore 0.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + str w0, [x1] + ;; size=20 bbWeight=0.50 PerfScore 1.50
G_M40308_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19, #0xD1FFAB1E] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M40308_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M40308_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M40308_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 12, PerfScore 21.75, instruction count 23, allocated bytes for code 92 (MethodHash=ffbb628b) for method System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 20.50, instruction count 29, allocated bytes for code 116 (MethodHash=ffbb628b) for method System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ 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) @@ -71,10 +75,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+34.62%) : 11637.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,65 +9,72 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 2, 1 ) int -> x0 -; V02 cse0 [V02,T00] ( 6, 4.50) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T02] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> x0
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - ldr w0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0]
cbnz w0, G_M24568_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M24568_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub x0, x19, #216 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M24568_IG07 - ;; size=24 bbWeight=0.50 PerfScore 3.00
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M24568_IG07 + ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #-0x0F]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldrb w0, [x0]
mov w1, #1 cmp w0, #0 cinc w0, w1, eq
- str w0, [x19] - ;; size=20 bbWeight=0.50 PerfScore 2.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + str w0, [x1] + ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M24568_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M24568_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M24568_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #4 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG04
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 12, PerfScore 20.75, instruction count 26, allocated bytes for code 104 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 140, prolog size 8, PerfScore 20.50, instruction count 35, allocated bytes for code 140 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ 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) @@ -75,10 +82,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

benchmarks.run_pgo.osx.arm64.checked.mch

-28 (-22.58%) : 61006.dasm - System.LocalAppContextSwitches:get_ForceInterpretedInvoke():ubyte (Tier1)

@@ -9,7 +9,9 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 3, 0.93) ubyte -> x0 "Inline return value spill temp"
+; V01 tmp1 [V01,T02] ( 3, 0.93) ubyte -> x0 "Inline return value spill temp" +; V02 cse0 [V02,T01] ( 3, 2.07) int -> x0 "CSE - unknown" +; V03 cse1 [V03,T00] ( 3, 2.07) byref -> x1 "CSE - unknown"
; ; Lcl frame size = 0 @@ -18,40 +20,35 @@ G_M27018_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 G_M27018_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32 - ldr w0, [x0]
+ movz x1, #0xD1FFAB1E + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + ldr w0, [x1]
tbz w0, #31, G_M27018_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 G_M27018_IG03: ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, wzr b G_M27018_IG06 ;; size=8 bbWeight=0.43 PerfScore 0.64
-G_M27018_IG04: ; bbWeight=0.07, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32 - ldr w0, [x0]
+G_M27018_IG04: ; bbWeight=0.07, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref, isz + ; byrRegs +[x1]
cmp w0, #0 bgt G_M27018_IG07 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32
movz x2, #0xD1FFAB1E // code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 ldr x2, [x2]
- ;; size=64 bbWeight=0.07 PerfScore 0.96
+ ;; size=36 bbWeight=0.07 PerfScore 0.54
G_M27018_IG05: ; bbWeight=0.07, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x2 ; gcr arg pop 0 ;; size=8 bbWeight=0.07 PerfScore 0.14 G_M27018_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; byrRegs -[x1]
ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=0.50 PerfScore 1.00 @@ -60,7 +57,7 @@ G_M27018_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { b G_M27018_IG06 ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 8, PerfScore 9.75, instruction count 31, allocated bytes for code 124 (MethodHash=7b1e9675) for method System.LocalAppContextSwitches:get_ForceInterpretedInvoke():ubyte (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 9.32, instruction count 24, allocated bytes for code 96 (MethodHash=7b1e9675) for method System.LocalAppContextSwitches:get_ForceInterpretedInvoke():ubyte (Tier1)
; ============================================================ Unwind Info: @@ -71,7 +68,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 24 (0x00018) Actual length = 96 (0x000060)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-28 (-22.58%) : 61007.dasm - System.LocalAppContextSwitches:get_ForceEmitInvoke():ubyte (Tier1)

@@ -9,7 +9,9 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 3, 0.93) ubyte -> x0 "Inline return value spill temp"
+; V01 tmp1 [V01,T02] ( 3, 0.93) ubyte -> x0 "Inline return value spill temp" +; V02 cse0 [V02,T01] ( 3, 2.07) int -> x0 "CSE - unknown" +; V03 cse1 [V03,T00] ( 3, 2.07) byref -> x1 "CSE - unknown"
; ; Lcl frame size = 0 @@ -18,40 +20,35 @@ G_M63529_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 G_M63529_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32 - ldr w0, [x0]
+ movz x1, #0xD1FFAB1E + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + ldr w0, [x1]
tbz w0, #31, G_M63529_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 G_M63529_IG03: ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, wzr b G_M63529_IG06 ;; size=8 bbWeight=0.43 PerfScore 0.64
-G_M63529_IG04: ; bbWeight=0.07, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32 - ldr w0, [x0]
+G_M63529_IG04: ; bbWeight=0.07, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref, isz + ; byrRegs +[x1]
cmp w0, #0 bgt G_M63529_IG07 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32
movz x2, #0xD1FFAB1E // code for System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):ubyte movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 ldr x2, [x2]
- ;; size=64 bbWeight=0.07 PerfScore 0.96
+ ;; size=36 bbWeight=0.07 PerfScore 0.54
G_M63529_IG05: ; bbWeight=0.07, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x2 ; gcr arg pop 0 ;; size=8 bbWeight=0.07 PerfScore 0.14 G_M63529_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; byrRegs -[x1]
ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=0.50 PerfScore 1.00 @@ -60,7 +57,7 @@ G_M63529_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { b G_M63529_IG06 ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 8, PerfScore 9.75, instruction count 31, allocated bytes for code 124 (MethodHash=9cfc07d6) for method System.LocalAppContextSwitches:get_ForceEmitInvoke():ubyte (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 9.32, instruction count 24, allocated bytes for code 96 (MethodHash=9cfc07d6) for method System.LocalAppContextSwitches:get_ForceEmitInvoke():ubyte (Tier1)
; ============================================================ Unwind Info: @@ -71,7 +68,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 24 (0x00018) Actual length = 96 (0x000060)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-15.00%) : 61278.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)

@@ -9,9 +9,10 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 5, 4 ) byref -> x0 this single-def
-; V01 arg1 [V01,T01] ( 4, 3.03) ubyte -> x1 single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> x1 single-def
; V02 loc0 [V02,T02] ( 3, 2.97) int -> x2 ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V04 cse0 [V04,T03] ( 3, 2.03) int -> x1 "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,13 +23,11 @@ G_M23174_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M23174_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz ; byrRegs +[x0] ldar w2, [x0]
+ uxtb w1, w1
tst w2, #0xD1FFAB1E
- cset x3, ne - tst w1, #255 - cset x4, eq - tst w3, w4 - beq G_M23174_IG05 - ;; size=28 bbWeight=1 PerfScore 6.50
+ ccmp w1, #0, 0, ne + bne G_M23174_IG05 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M23174_IG03: ; bbWeight=0.97, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref and w1, w2, #0xD1FFAB1E stlr w1, [x0] @@ -38,19 +37,18 @@ G_M23174_IG04: ; bbWeight=0.97, epilog, nogc, extend ret lr ;; size=8 bbWeight=0.97 PerfScore 1.94 G_M23174_IG05: ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref
- uxtb w1, w1
movz x2, #0xD1FFAB1E // code for System.Threading.SpinLock:ExitSlowPath(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 ldr x2, [x2]
- ;; size=20 bbWeight=0.03 PerfScore 0.15
+ ;; size=16 bbWeight=0.03 PerfScore 0.14
G_M23174_IG06: ; bbWeight=0.03, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x2 ; gcr arg pop 0 ;; size=8 bbWeight=0.03 PerfScore 0.06
-; Total bytes of code 80, prolog size 8, PerfScore 11.61, instruction count 20, allocated bytes for code 80 (MethodHash=398ca579) for method System.Threading.SpinLock:Exit(ubyte):this (Tier1)
+; Total bytes of code 68, prolog size 8, PerfScore 10.59, instruction count 17, allocated bytes for code 68 (MethodHash=398ca579) for method System.Threading.SpinLock:Exit(ubyte):this (Tier1)
; ============================================================ Unwind Info: @@ -61,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 17 (0x00011) Actual length = 68 (0x000044)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+19.35%) : 10178.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -10,34 +10,36 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3 ) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbz x0, G_M28655_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M28655_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG04: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] movz x0, #0xD1FFAB1E @@ -45,8 +47,8 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { movk x0, #1 LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
mov w1, #2 movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this movk x2, #0xD1FFAB1E LSL #16 @@ -54,19 +56,24 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ldr x2, [x2] blr x2 ; gcrRegs -[x0]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x60]
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0]
b G_M28655_IG03
- ;; size=76 bbWeight=0 PerfScore 0.00
+ ;; size=88 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 12, PerfScore 14.00, instruction count 31, allocated bytes for code 124 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 148, prolog size 12, PerfScore 16.50, instruction count 37, allocated bytes for code 148 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -77,7 +84,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -85,7 +92,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+19.35%) : 48734.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -10,34 +10,36 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3 ) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #2 LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #2 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbz x0, G_M28655_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M28655_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #2 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG04: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] movz x0, #0xD1FFAB1E @@ -45,8 +47,8 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { movk x0, #1 LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
mov w1, #2 movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this movk x2, #0xD1FFAB1E LSL #16 @@ -54,19 +56,24 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ldr x2, [x2] blr x2 ; gcrRegs -[x0]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #2 LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x60]
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #2 LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0]
b G_M28655_IG03
- ;; size=76 bbWeight=0 PerfScore 0.00
+ ;; size=88 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 12, PerfScore 14.00, instruction count 31, allocated bytes for code 124 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 148, prolog size 12, PerfScore 16.50, instruction count 37, allocated bytes for code 148 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -77,7 +84,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -85,7 +92,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+19.35%) : 14855.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -10,34 +10,36 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3 ) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbz x0, G_M28655_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M28655_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG04: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] movz x0, #0xD1FFAB1E @@ -45,8 +47,8 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { movk x0, #1 LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
mov w1, #2 movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this movk x2, #0xD1FFAB1E LSL #16 @@ -54,19 +56,24 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ldr x2, [x2] blr x2 ; gcrRegs -[x0]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x60]
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0]
b G_M28655_IG03
- ;; size=76 bbWeight=0 PerfScore 0.00
+ ;; size=88 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 12, PerfScore 14.00, instruction count 31, allocated bytes for code 124 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 148, prolog size 12, PerfScore 16.50, instruction count 37, allocated bytes for code 148 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -77,7 +84,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -85,7 +92,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

benchmarks.run_tiered.osx.arm64.checked.mch

-12 (-13.04%) : 8902.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M40937_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M40937_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M40937_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x08] ; gcrRegs +[x0] @@ -52,7 +50,7 @@ G_M40937_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=08526016) for method (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=08526016) for method (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
; ============================================================ Unwind Info: @@ -63,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 22830.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M25960_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M25960_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M25960_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldrb w0, [x19, #0x20] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -51,7 +49,7 @@ G_M25960_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -62,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 8888.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M10319_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M10319_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M10319_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr w0, [x19, #0x10] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -51,7 +49,7 @@ G_M10319_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=d4f4d7b0) for method (dynamicClass):NumGetter(System.Object):int (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=d4f4d7b0) for method (dynamicClass):NumGetter(System.Object):int (FullOpts)
; ============================================================ Unwind Info: @@ -62,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+14.29%) : 39781.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols(System.Collections.Generic.IEnumerable1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Generic.IEnumerable1Microsoft.CodeAnalysis.ISymbol

@@ -14,23 +14,22 @@ ;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def ; V04 tmp3 [V04,T03] ( 4, 3.50) ref -> x2 ; V05 tmp4 [V05,T00] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V06 tmp5 [V06,T05] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>> -; V07 cse0 [V07,T04] ( 4, 3 ) long -> x20 "CSE - aggressive"
+; V06 tmp5 [V06,T04] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M53196_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] ;; size=16 bbWeight=1 PerfScore 3.00 G_M53196_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #2 LSL #32 - ldr x2, [x20]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #2 LSL #32 + ldr x2, [x0]
; gcrRegs +[x2] cbnz x2, G_M53196_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 @@ -44,7 +43,10 @@ G_M53196_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcr arg pop 0 mov x2, x0 ; gcrRegs +[x2]
- ldr x15, [x20, #-0x10]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x2, #8 ; byrRegs +[x14] @@ -55,12 +57,14 @@ G_M53196_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x14, #0xD1FFAB1E LSL #16 movk x14, #1 LSL #32 str x14, [x2, #0x18]
- mov x14, x20
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x2 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15]
- ;; size=60 bbWeight=0.50 PerfScore 6.00
+ ;; size=80 bbWeight=0.50 PerfScore 7.25
G_M53196_IG04: ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1] @@ -73,13 +77,13 @@ G_M53196_IG04: ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, ldr x3, [x3] ;; size=32 bbWeight=1 PerfScore 6.50 G_M53196_IG05: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 br x3 ; gcr arg pop 0
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 140, prolog size 16, PerfScore 24.00, instruction count 35, allocated bytes for code 140 (MethodHash=bd7a3033) for method Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ISymbol] (Tier1)
+; Total bytes of code 160, prolog size 16, PerfScore 26.25, instruction count 40, allocated bytes for code 160 (MethodHash=bd7a3033) for method Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ISymbol] (Tier1)
; ============================================================ Unwind Info: @@ -90,7 +94,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,7 +102,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+20 (+15.15%) : 41819.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:SortFixedDistanceSetsByQuality(System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)

@@ -14,23 +14,22 @@ ;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def ; V04 tmp3 [V04,T03] ( 4, 3.50) ref -> x1 ; V05 tmp4 [V05,T00] ( 5, 5 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]>
-; V06 tmp5 [V06,T05] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>> -; V07 cse0 [V07,T04] ( 4, 3 ) long -> x20 "CSE - aggressive"
+; V06 tmp5 [V06,T04] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M20878_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] ;; size=16 bbWeight=1 PerfScore 3.00 G_M20878_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - ldr x1, [x20]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x1, [x0]
; gcrRegs +[x1] cbnz x1, G_M20878_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 @@ -44,7 +43,10 @@ G_M20878_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcr arg pop 0 mov x1, x0 ; gcrRegs +[x1]
- ldr x15, [x20, #-0x10]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x1, #8 ; byrRegs +[x14] @@ -55,12 +57,14 @@ G_M20878_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x14, #0xD1FFAB1E LSL #16 movk x14, #1 LSL #32 str x14, [x1, #0x18]
- mov x14, x20
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x1 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15]
- ;; size=60 bbWeight=0.50 PerfScore 6.00
+ ;; size=80 bbWeight=0.50 PerfScore 7.25
G_M20878_IG04: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref mov x0, x19 ; gcrRegs +[x0] @@ -71,13 +75,13 @@ G_M20878_IG04: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, ldr wzr, [x0] ;; size=24 bbWeight=1 PerfScore 8.00 G_M20878_IG05: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 br x2 ; gcr arg pop 0
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 132, prolog size 16, PerfScore 25.50, instruction count 33, allocated bytes for code 132 (MethodHash=9044ae71) for method System.Text.RegularExpressions.RegexPrefixAnalyzer:SortFixedDistanceSetsByQuality(System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)
+; Total bytes of code 152, prolog size 16, PerfScore 27.75, instruction count 38, allocated bytes for code 152 (MethodHash=9044ae71) for method System.Text.RegularExpressions.RegexPrefixAnalyzer:SortFixedDistanceSetsByQuality(System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)
; ============================================================ Unwind Info: @@ -88,7 +92,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 33 (0x00021) Actual length = 132 (0x000084)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -96,7 +100,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+18.75%) : 3480.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -9,21 +9,20 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3.50) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 3 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbnz x0, G_M28655_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 @@ -34,8 +33,8 @@ G_M28655_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr movk x0, #1 LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 @@ -43,35 +42,43 @@ G_M28655_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov x1, #2 bl CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[x0]
- add x14, x20, #8
+ add x14, x19, #8
; byrRegs +[x14] mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15] ; byrRegs -[x14]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x60] - ;; size=80 bbWeight=0.50 PerfScore 7.25
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + ;; size=92 bbWeight=0.50 PerfScore 8.00
G_M28655_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG05: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 128, prolog size 12, PerfScore 21.25, instruction count 32, allocated bytes for code 128 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 152, prolog size 12, PerfScore 24.50, instruction count 38, allocated bytes for code 152 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -82,7 +89,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -90,7 +97,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

coreclr_tests.run.osx.arm64.checked.mch

-24 (-24.00%) : 312056.dasm - Test_b99969:DoSpoof() (Tier1-OSR)

@@ -10,7 +10,9 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 2, 2 ) byref -> x0 hoist "CSE - aggressive"
+; V01 cse0 [V01,T00] ( 4, 2 ) long -> x0 "CSE - unknown" +; V02 cse1 [V02,T01] ( 2, 2 ) ref -> x1 "CSE - unknown" +; V03 cse2 [V03,T02] ( 2, 2 ) byref -> x1 hoist "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,42 +24,36 @@ G_M19890_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr x0, [x0] - ; gcrRegs +[x0] - add x0, x0, #13 - ; gcrRegs -[x0] - ; byrRegs +[x0]
+ ldr x1, [x0] + ; gcrRegs +[x1] + add x1, x1, #13 + ; gcrRegs -[x1] + ; byrRegs +[x1]
;; size=20 bbWeight=1 PerfScore 5.00
-G_M19890_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz - ldaprb w1, [x0] - cbz w1, G_M19890_IG03
+G_M19890_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref, isz + ldaprb w2, [x1] + cbz w2, G_M19890_IG03
;; size=8 bbWeight=1 PerfScore 4.00 G_M19890_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0] - movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32 - ldr x0, [x0] - ; gcrRegs +[x0] - movz w1, #0xD1FFAB1E - movk w1, #0xD1FFAB1E LSL #16 - str w1, [x0, #0x08] - movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> - ; gcrRegs -[x0] - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #1 LSL #32
+ ; byrRegs -[x1] + ldr x1, [x0] + ; gcrRegs +[x1] + movz w2, #0xD1FFAB1E + movk w2, #0xD1FFAB1E LSL #16 + str w2, [x1, #0x08]
ldr x0, [x0] ; gcrRegs +[x0] mov w1, #1
+ ; gcrRegs -[x1]
stlurb w1, [x0, #0x0C]
- ;; size=52 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
G_M19890_IG05: ; bbWeight=0, epilog, nogc, extend ldp fp, lr, [sp], #0x10 add sp, sp, #32 ret lr ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 100, prolog size 8, PerfScore 10.50, instruction count 25, allocated bytes for code 100 (MethodHash=bd6db24d) for method Test_b99969:DoSpoof() (Tier1-OSR)
+; Total bytes of code 76, prolog size 8, PerfScore 10.50, instruction count 19, allocated bytes for code 76 (MethodHash=bd6db24d) for method Test_b99969:DoSpoof() (Tier1-OSR)
; ============================================================ Unwind Info: @@ -68,7 +64,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ 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)

-36 (-21.95%) : 500329.dasm - FunctionPtr:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M35474_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M35474_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M35474_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M35474_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #1 LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #2 LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- add x0, x19, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M35474_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M35474_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000000102744430h, 0000000104DE8FD8h +RWD16 dq 0000000102744430h, 0000000104DE8FF0h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=f7a3756d) for method FunctionPtr:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=f7a3756d) for method FunctionPtr:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 592543.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M54112_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #1 LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #2 LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M54112_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000000101BE4028h, 0000000103D02268h +RWD16 dq 0000000101BE4028h, 0000000103D02280h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=09bf2c9f) for method Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=09bf2c9f) for method Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+28 (+36.84%) : 540568.dasm - Test4:.cctor() (FullOpts)

@@ -8,51 +8,57 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 5, 5 ) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M55396_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M55396_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - str xzr, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + str xzr, [x0]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 mov x1, #3 bl CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[x0]
- add x14, x19, #8
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- stp xzr, xzr, [x19, #0x10] - ;; size=52 bbWeight=1 PerfScore 8.50
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + str xzr, [x0] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + str xzr, [x0] + ;; size=88 bbWeight=1 PerfScore 13.50
G_M55396_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 76, prolog size 12, PerfScore 15.00, instruction count 19, allocated bytes for code 76 (MethodHash=d8f4279b) for method Test4:.cctor() (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 17.00, instruction count 26, allocated bytes for code 104 (MethodHash=d8f4279b) for method Test4:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -60,10 +66,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+37.50%) : 404783.dasm - TestLibrary.Utilities:get_Verbose():ubyte (FullOpts)

@@ -8,63 +8,70 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V02 cse1 [V02,T00] ( 6, 5 ) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M54966_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M54966_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M54966_IG07 - ;; size=36 bbWeight=1 PerfScore 7.50
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M54966_IG07 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M54966_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldapurb w0, [x19, #0x61]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldaprb w0, [x0]
cbnz w0, G_M54966_IG05
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M54966_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, #1
- stlurb w0, [x19, #0x61] - stlurb wzr, [x19, #0x60] - ;; size=12 bbWeight=0.50 PerfScore 1.25
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + stlrb w0, [x1] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + stlrb wzr, [x0] + ;; size=36 bbWeight=0.50 PerfScore 2.75
G_M54966_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldapurb w0, [x19, #0x60] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldaprb w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M54966_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M54966_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #11 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M54966_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 96, prolog size 12, PerfScore 22.25, instruction count 24, allocated bytes for code 96 (MethodHash=8e842949) for method TestLibrary.Utilities:get_Verbose():ubyte (FullOpts)
+; Total bytes of code 132, prolog size 8, PerfScore 21.75, instruction count 33, allocated bytes for code 132 (MethodHash=8e842949) for method TestLibrary.Utilities:get_Verbose():ubyte (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -72,10 +79,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+40.91%) : 545783.dasm - Application:Display(int,System.String,int) (FullOpts)

@@ -7,28 +7,30 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T02] ( 3, 3 ) int -> x0 single-def -; V01 arg1 [V01,T01] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String> -; V02 arg2 [V02,T03] ( 3, 3 ) int -> x19 single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> x0 single-def +; V01 arg1 [V01,T00] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String> +; V02 arg2 [V02,T02] ( 3, 3 ) int -> x19 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T00] ( 5, 5 ) long -> x20 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M61215_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov w19, w2 ;; size=16 bbWeight=1 PerfScore 3.00 G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref ; gcrRegs +[x1]
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - ldr w2, [x20]
+ movz x2, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #1 LSL #32 + ldr w2, [x2]
add w0, w2, w0
- str w0, [x20]
+ movz x2, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #1 LSL #32 + str w0, [x2]
mov x0, x1 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Application:Display(System.String) @@ -38,17 +40,23 @@ G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byre ldr x1, [x1] blr x1 ; gcrRegs -[x0]
- ldr w0, [x20]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0]
add w0, w0, w19
- str w0, [x20] - ;; size=60 bbWeight=1 PerfScore 16.50
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + str w0, [x1] + ;; size=96 bbWeight=1 PerfScore 21.00
G_M61215_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 88, prolog size 12, PerfScore 22.50, instruction count 22, allocated bytes for code 88 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
+; Total bytes of code 124, prolog size 12, PerfScore 28.00, instruction count 31, allocated bytes for code 124 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
; ============================================================ Unwind Info: @@ -59,7 +67,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 88 (0x000058)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -67,7 +75,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

libraries.crossgen2.osx.arm64.checked.mch

-24 (-30.00%) : 224747.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)

@@ -9,76 +9,59 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <System.Dynamic.DynamicMetaObject>
+; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Dynamic.DynamicMetaObject>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 3 ) ref -> x19 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
-G_M17334_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M17334_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
- mov x19, x0
+ ;; size=12 bbWeight=1 PerfScore 2.50 +G_M17334_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0] + ldr x19, [x0, #0x08]
; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00 -G_M17334_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ldr x20, [x19, #0x08] - ; gcrRegs +[x20]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x0, [x11]
+ ; gcrRegs -[x0]
blr x0 ; byrRegs +[x0] ldr x0, [x0, #0xD1FFAB1E] ; gcrRegs +[x0] ; byrRegs -[x0]
- cmp x20, x0 - bne G_M17334_IG05 - ;; size=32 bbWeight=1 PerfScore 12.50 -G_M17334_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x19-x20] - mov x0, xzr - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M17334_IG04: ; bbWeight=0.50, epilog, nogc, extend - ldp x19, x20, [sp, #0x10]
+ cmp x19, x0 + csel x0, x19, xzr, ne + ;; size=32 bbWeight=1 PerfScore 12.00 +G_M17334_IG03: ; bbWeight=1, epilog, nogc, extend + ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M17334_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0] +[x19] - ldr x0, [x19, #0x08] - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 1.50 -G_M17334_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
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 20.25, instruction count 20, allocated bytes for code 80 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
+; Total bytes of code 56, prolog size 12, PerfScore 18.50, instruction count 14, allocated bytes for code 56 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 2
- Epilog Count : 2
+ Epilog Count : 1
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) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

-20 (-23.81%) : 3521.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)

@@ -9,74 +9,59 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T00] ( 3, 6 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.ObsoleteAttributeData>
+; V03 cse0 [V03,T02] ( 3, 3 ) ref -> x19 "CSE - unknown"
; ; Lcl frame size = 0
-G_M42863_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M42863_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]! stp x19, x20, [sp, #0x10] mov fp, sp
- mov x19, x0
+ ;; size=12 bbWeight=1 PerfScore 2.50 +G_M42863_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0] + ldr x19, [x0, #0x08]
; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00 -G_M42863_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ldr x20, [x19, #0x08]
+ mov x20, x19
; gcrRegs +[x20] ldrsb wzr, [x20] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x0, [x11]
+ ; gcrRegs -[x0]
blr x0 ; byrRegs +[x0] ldr x0, [x0, #0xD1FFAB1E] ; gcrRegs +[x0] ; byrRegs -[x0] cmp x0, x20
- beq G_M42863_IG05 - ;; size=36 bbWeight=1 PerfScore 15.50 -G_M42863_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x20] - ldr x0, [x19, #0x08] - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 1.50 -G_M42863_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ csel x0, xzr, x19, eq + ;; size=40 bbWeight=1 PerfScore 15.50 +G_M42863_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M42863_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0 x19] - mov x0, xzr - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M42863_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
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 12, PerfScore 23.25, instruction count 21, allocated bytes for code 84 (MethodHash=419e5890) for method Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 21.00, instruction count 16, allocated bytes for code 64 (MethodHash=419e5890) for method Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 2
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

-20 (-23.81%) : 3537.dasm - Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)

@@ -9,74 +9,59 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T00] ( 3, 6 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.ObsoleteAttributeData>
+; V03 cse0 [V03,T02] ( 3, 3 ) ref -> x19 "CSE - unknown"
; ; Lcl frame size = 0
-G_M62322_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M62322_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]! stp x19, x20, [sp, #0x10] mov fp, sp
- mov x19, x0
+ ;; size=12 bbWeight=1 PerfScore 2.50 +G_M62322_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0] + ldr x19, [x0, #0x08]
; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00 -G_M62322_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ldr x20, [x19, #0x08]
+ mov x20, x19
; gcrRegs +[x20] ldrsb wzr, [x20] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x0, [x11]
+ ; gcrRegs -[x0]
blr x0 ; byrRegs +[x0] ldr x0, [x0, #0xD1FFAB1E] ; gcrRegs +[x0] ; byrRegs -[x0] cmp x0, x20
- beq G_M62322_IG05 - ;; size=36 bbWeight=1 PerfScore 15.50 -G_M62322_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x20] - ldr x0, [x19, #0x08] - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 1.50 -G_M62322_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ csel x0, xzr, x19, eq + ;; size=40 bbWeight=1 PerfScore 15.50 +G_M62322_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M62322_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0 x19] - mov x0, xzr - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M62322_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
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 12, PerfScore 23.25, instruction count 21, allocated bytes for code 84 (MethodHash=db430c8d) for method Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 21.00, instruction count 16, allocated bytes for code 64 (MethodHash=db430c8d) for method Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 2
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

+36 (+22.50%) : 32996.dasm - System.Runtime.Intrinsics.Vector5121[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector5121[short],System.Runtime.Intrinsics.Vector512`1[short]):short (FullOpts)

@@ -9,77 +9,85 @@ ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 6, 6 ) struct (64) [fp+0x50] HFA(simd16) do-not-enreg[SA] multireg-arg single-def <System.Runtime.Intrinsics.Vector512`1[short]> -; V01 arg1 [V01,T01] ( 6, 6 ) struct (64) [fp+0x10] HFA(simd16) do-not-enreg[SA] multireg-arg single-def <System.Runtime.Intrinsics.Vector512`1[short]>
+; V00 arg0 [V00,T00] ( 6, 6 ) struct (64) [fp+0x58] HFA(simd16) do-not-enreg[SA] multireg-arg single-def <System.Runtime.Intrinsics.Vector512`1[short]> +; V01 arg1 [V01,T01] ( 6, 6 ) struct (64) [fp+0x18] HFA(simd16) do-not-enreg[SA] multireg-arg single-def <System.Runtime.Intrinsics.Vector512`1[short]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T04] ( 2, 2 ) short -> x20 "Inline stloc first use temp"
+; V03 tmp1 [V03,T03] ( 2, 2 ) short -> x19 "Inline stloc first use temp"
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[short]> ;* V05 tmp3 [V05 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[short]> ;* V06 tmp4 [V06 ] ( 0, 0 ) short -> zero-ref "Inline stloc first use temp" ;* V07 tmp5 [V07 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[short]> ;* V08 tmp6 [V08 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[short]> ;* V09 tmp7 [V09 ] ( 0, 0 ) short -> zero-ref "Inline stloc first use temp"
-; V10 tmp8 [V10,T05] ( 2, 2 ) simd16 -> d16 HFA(simd16) "field V04._lower (fldOffset=0x0)" P-INDEP -; V11 tmp9 [V11,T06] ( 2, 2 ) simd16 -> d17 HFA(simd16) "field V04._upper (fldOffset=0x10)" P-INDEP -; V12 tmp10 [V12,T07] ( 2, 2 ) simd16 -> d18 HFA(simd16) "field V05._lower (fldOffset=0x0)" P-INDEP -; V13 tmp11 [V13,T08] ( 2, 2 ) simd16 -> d19 HFA(simd16) "field V05._upper (fldOffset=0x10)" P-INDEP -; V14 tmp12 [V14,T09] ( 2, 2 ) simd16 -> d16 HFA(simd16) "field V07._lower (fldOffset=0x0)" P-INDEP -; V15 tmp13 [V15,T10] ( 2, 2 ) simd16 -> d17 HFA(simd16) "field V07._upper (fldOffset=0x10)" P-INDEP -; V16 tmp14 [V16,T11] ( 2, 2 ) simd16 -> d18 HFA(simd16) "field V08._lower (fldOffset=0x0)" P-INDEP -; V17 tmp15 [V17,T12] ( 2, 2 ) simd16 -> d19 HFA(simd16) "field V08._upper (fldOffset=0x10)" P-INDEP -; V18 tmp16 [V18,T03] ( 2, 4 ) int -> x1 "argument with side effect" -; V19 cse0 [V19,T02] ( 4, 4 ) long -> x19 "CSE - aggressive"
+; V10 tmp8 [V10,T04] ( 2, 2 ) simd16 -> d16 HFA(simd16) "field V04._lower (fldOffset=0x0)" P-INDEP +; V11 tmp9 [V11,T05] ( 2, 2 ) simd16 -> d17 HFA(simd16) "field V04._upper (fldOffset=0x10)" P-INDEP +; V12 tmp10 [V12,T06] ( 2, 2 ) simd16 -> d18 HFA(simd16) "field V05._lower (fldOffset=0x0)" P-INDEP +; V13 tmp11 [V13,T07] ( 2, 2 ) simd16 -> d19 HFA(simd16) "field V05._upper (fldOffset=0x10)" P-INDEP +; V14 tmp12 [V14,T08] ( 2, 2 ) simd16 -> d16 HFA(simd16) "field V07._lower (fldOffset=0x0)" P-INDEP +; V15 tmp13 [V15,T09] ( 2, 2 ) simd16 -> d17 HFA(simd16) "field V07._upper (fldOffset=0x10)" P-INDEP +; V16 tmp14 [V16,T10] ( 2, 2 ) simd16 -> d18 HFA(simd16) "field V08._lower (fldOffset=0x0)" P-INDEP +; V17 tmp15 [V17,T11] ( 2, 2 ) simd16 -> d19 HFA(simd16) "field V08._upper (fldOffset=0x10)" P-INDEP +; V18 tmp16 [V18,T02] ( 2, 4 ) int -> x1 "argument with side effect"
;
-; Lcl frame size = 128
+; Lcl frame size = 136
G_M9765_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0xA0]!
- stp x19, x20, [sp, #0x90]
+ str x19, [sp, #0x98]
mov fp, sp
- stp q0, q1, [fp, #0x50] // [V00 arg0], [V00 arg0+0x10] - stp q2, q3, [fp, #0x70] // [V00 arg0+0x20], [V00 arg0+0x30] - stp q4, q5, [fp, #0x10] // [V01 arg1], [V01 arg1+0x10] - stp q6, q7, [fp, #0x30] // [V01 arg1+0x20], [V01 arg1+0x30] - ;; size=28 bbWeight=1 PerfScore 6.50
+ str q0, [fp, #0x58] // [V00 arg0] + str q1, [fp, #0x68] // [V00 arg0+0x10] + str q2, [fp, #0x78] // [V00 arg0+0x20] + str q3, [fp, #0x88] // [V00 arg0+0x30] + str q4, [fp, #0x18] // [V01 arg1] + str q5, [fp, #0x28] // [V01 arg1+0x10] + str q6, [fp, #0x38] // [V01 arg1+0x20] + str q7, [fp, #0x48] // [V01 arg1+0x30] + ;; size=44 bbWeight=1 PerfScore 10.50
G_M9765_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldp q16, q17, [fp, #0x50] // [V00 arg0], [V00 arg0+0x10] - ldp q18, q19, [fp, #0x10] // [V01 arg1], [V01 arg1+0x10]
+ ldr q16, [fp, #0x58] // [V00 arg0] + ldr q17, [fp, #0x68] // [V00 arg0+0x10] + ldr q18, [fp, #0x18] // [V01 arg1] + ldr q19, [fp, #0x28] // [V01 arg1+0x10]
mul v17.8h, v17.8h, v19.8h addv h17, v17.8h smov x1, v17.h[0] mul v16.8h, v16.8h, v18.8h addv h16, v16.8h smov x0, v16.h[0]
- adrp x19, [HIGH RELOC #0xD1FFAB1E] // function address - add x19, x19, [LOW RELOC #0xD1FFAB1E] - mov x11, x19
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address + add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x2, [x11] blr x2
- sxtw w20, w0 - ldp q16, q17, [fp, #0x70] // [V00 arg0+0x20], [V00 arg0+0x30] - ldp q18, q19, [fp, #0x30] // [V01 arg1+0x20], [V01 arg1+0x30]
+ sxtw w19, w0 + ldr q16, [fp, #0x78] // [V00 arg0+0x20] + ldr q17, [fp, #0x88] // [V00 arg0+0x30] + ldr q18, [fp, #0x38] // [V01 arg1+0x20] + ldr q19, [fp, #0x48] // [V01 arg1+0x30]
mul v17.8h, v17.8h, v19.8h addv h17, v17.8h smov x1, v17.h[0] mul v16.8h, v16.8h, v18.8h addv h16, v16.8h smov x0, v16.h[0]
- mov x11, x19
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address + add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x2, [x11] blr x2 sxtw w1, w0
- mov w0, w20 - mov x11, x19
+ mov w0, w19 + adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address + add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x2, [x11] blr x2
- ;; size=120 bbWeight=1 PerfScore 48.00
+ ;; size=140 bbWeight=1 PerfScore 56.50
G_M9765_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x90]
+ ldr x19, [sp, #0x98]
ldp fp, lr, [sp], #0xA0 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 160, prolog size 12, PerfScore 57.50, instruction count 40, allocated bytes for code 160 (MethodHash=62b0d9da) for method System.Runtime.Intrinsics.Vector512`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):short (FullOpts)
+; Total bytes of code 196, prolog size 12, PerfScore 71.00, instruction count 49, allocated bytes for code 196 (MethodHash=62b0d9da) for method System.Runtime.Intrinsics.Vector512`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):short (FullOpts)
; ============================================================ Unwind Info: @@ -90,7 +98,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,7 +106,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 12 save_regp X#0 Z#18 (0x12); stp x19, x20, [sp, #144]
+ D0 13 save_reg X#0 Z#19 (0x13); str x19, [sp, #152]
93 save_fplr_x #19 (0x13); stp fp, lr, [sp, #-160]! E4 end E4 end

+24 (+30.00%) : 259490.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)

@@ -8,9 +8,8 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
+; V00 this [V00,T00] ( 5, 4.50) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) byref -> x19 "CSE - aggressive"
; ; Lcl frame size = 8 @@ -18,34 +17,44 @@ G_M23044_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x20]! str x19, [sp, #0x18] mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M23044_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M23044_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldapr x0, [x0]
; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x11, x11, [LOW RELOC #0xD1FFAB1E] - ldr x11, [x11] - add x19, x0, x11 - ; byrRegs +[x19] - ldapr x11, [x19] - ; gcrRegs +[x11] - cbnz x11, G_M23044_IG04
+ ; byrRegs -[x0] + cbnz x0, G_M23044_IG04
;; size=24 bbWeight=1 PerfScore 8.50
-G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref - ; gcrRegs -[x11]
+G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0] + mov x0, x19 + ; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- ;; size=16 bbWeight=0.50 PerfScore 2.50 -G_M23044_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldapr x0, [x19]
+ ;; size=20 bbWeight=0.50 PerfScore 2.75 +G_M23044_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldapr x0, [x0]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11]
- ;; size=16 bbWeight=1 PerfScore 7.00
+ ;; size=32 bbWeight=1 PerfScore 11.50
G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 @@ -53,7 +62,7 @@ G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ; gcr arg pop 0 ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 24.50, instruction count 20, allocated bytes for code 80 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
+; Total bytes of code 104, prolog size 16, PerfScore 29.75, instruction count 26, allocated bytes for code 104 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
; ============================================================ Unwind Info: @@ -64,7 +73,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+30.00%) : 246787.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)

@@ -8,9 +8,8 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
+; V00 this [V00,T00] ( 5, 4.50) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) byref -> x19 "CSE - aggressive"
; ; Lcl frame size = 8 @@ -18,34 +17,44 @@ G_M23044_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x20]! str x19, [sp, #0x18] mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M23044_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M23044_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldapr x0, [x0]
; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x11, x11, [LOW RELOC #0xD1FFAB1E] - ldr x11, [x11] - add x19, x0, x11 - ; byrRegs +[x19] - ldapr x11, [x19] - ; gcrRegs +[x11] - cbnz x11, G_M23044_IG04
+ ; byrRegs -[x0] + cbnz x0, G_M23044_IG04
;; size=24 bbWeight=1 PerfScore 8.50
-G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref - ; gcrRegs -[x11]
+G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0] + mov x0, x19 + ; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- ;; size=16 bbWeight=0.50 PerfScore 2.50 -G_M23044_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldapr x0, [x19]
+ ;; size=20 bbWeight=0.50 PerfScore 2.75 +G_M23044_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldapr x0, [x0]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11]
- ;; size=16 bbWeight=1 PerfScore 7.00
+ ;; size=32 bbWeight=1 PerfScore 11.50
G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 @@ -53,7 +62,7 @@ G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ; gcr arg pop 0 ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 24.50, instruction count 20, allocated bytes for code 80 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
+; Total bytes of code 104, prolog size 16, PerfScore 29.75, instruction count 26, allocated bytes for code 104 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
; ============================================================ Unwind Info: @@ -64,7 +73,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.osx.arm64.checked.mch

-40 (-23.81%) : 42705.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)

@@ -9,19 +9,16 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M62751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -34,19 +31,11 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32 - str x14, [x0, #0x18] - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - add x14, x19, #0xD1FFAB1E - str x14, [x0, #0x20] - movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #2 LSL #32 - mov x14, x20
+ movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF @@ -63,34 +52,36 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32 - stp x14, x19, [x0, #0x18] - add x14, x20, #8
+ movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=144 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M62751_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000000101B3A6D0h, 00000001048E29D0h +RWD16 dq 0000000109978F80h, 00000001048E2790h
-; Total bytes of code 168, prolog size 12, PerfScore 28.00, instruction count 42, allocated bytes for code 168 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-40 (-23.81%) : 230137.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)

@@ -9,19 +9,16 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M62751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -34,19 +31,11 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32 - str x14, [x0, #0x18] - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - add x14, x19, #0xD1FFAB1E - str x14, [x0, #0x20] - movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #2 LSL #32 - mov x14, x20
+ movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF @@ -63,34 +52,36 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32 - stp x14, x19, [x0, #0x18] - add x14, x20, #8
+ movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=144 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M62751_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 000000010589AB28h, 0000000108663CF0h +RWD16 dq 000000010D249628h, 0000000108663AB0h
-; Total bytes of code 168, prolog size 12, PerfScore 28.00, instruction count 42, allocated bytes for code 168 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 136365.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.CustomEventAccessorSymbol:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M7958_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M7958_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M7958_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M7958_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #1 LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #1 LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M7958_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - sub x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M7958_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00000001081B4290h, 000000010AB93E88h +RWD16 dq 00000001081B4290h, 000000010AB93E70h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=e0cfe0e9) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.CustomEventAccessorSymbol:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=e0cfe0e9) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.CustomEventAccessorSymbol:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+28 (+29.17%) : 183011.dasm - Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)

@@ -7,16 +7,17 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 4, 3.50) ref -> x0 class-hnd single-def <System.String> -; V01 loc0 [V01,T00] ( 6, 19 ) int -> x1
+; V00 arg0 [V00,T05] ( 4, 3.50) ref -> x0 class-hnd single-def <System.String> +; V01 loc0 [V01,T00] ( 7, 23 ) int -> x1
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 6 ) int -> x2 "CSE - aggressive" -; V04 cse1 [V04,T04] ( 2, 2 ) int -> x2 "CSE - aggressive" -; V05 cse2 [V05,T01] ( 3, 6.50) byref -> x0 hoist "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 4, 8 ) int -> x2 "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 6.50) byref -> x0 hoist "CSE - unknown" +; V05 cse2 [V05,T04] ( 3, 6 ) int -> x3 "CSE - unknown" +; V06 cse3 [V06,T01] ( 5, 14 ) int -> x4 multi-def "CSE - unknown"
; ; Lcl frame size = 0
-G_M53831_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M53831_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 @@ -24,8 +25,8 @@ G_M53831_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] mov w1, wzr ldr w2, [x0, #0x08]
- sub w2, w2, #1 - cmp w2, #0
+ sub w3, w2, #1 + cmp w3, #0
ble G_M53831_IG07 ;; size=20 bbWeight=1 PerfScore 5.50 G_M53831_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref @@ -34,21 +35,26 @@ G_M53831_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b ; byrRegs +[x0] ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M53831_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- ldrh w3, [x0, w1, UXTW #2] - cmp w3, #46
+ cmp w1, w2 + bhs G_M53831_IG11 + ldrh w4, [x0, w1, UXTW #2] + cmp w4, #46
bne G_M53831_IG06
- ;; size=12 bbWeight=4 PerfScore 18.00
+ ;; size=20 bbWeight=4 PerfScore 24.00
G_M53831_IG05: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- add w3, w1, #1 - ldrh w3, [x0, w3, UXTW #2] - cmp w3, #46
+ add w4, w1, #1 + cmp w4, w2 + bhs G_M53831_IG11 + ldrh w4, [x0, w4, UXTW #2] + cmp w4, #46
beq G_M53831_IG09
- ;; size=16 bbWeight=2 PerfScore 10.00
+ ;; size=24 bbWeight=2 PerfScore 13.00
G_M53831_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- add w1, w1, #1 - cmp w2, w1
+ add w4, w1, #1 + sxtw w1, w4 + cmp w3, w1
bgt G_M53831_IG04
- ;; size=12 bbWeight=4 PerfScore 8.00
+ ;; size=16 bbWeight=4 PerfScore 10.00
G_M53831_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; byrRegs -[x0] mov w0, wzr @@ -64,8 +70,13 @@ G_M53831_IG10: ; bbWeight=0.50, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M53831_IG11: ; 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 96, prolog size 8, PerfScore 45.75, instruction count 24, allocated bytes for code 96 (MethodHash=36dc2db8) for method Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 56.75, instruction count 31, allocated bytes for code 124 (MethodHash=36dc2db8) for method Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -76,7 +87,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+36 (+31.03%) : 180995.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)

@@ -9,20 +9,18 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 6, 4.50) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M15570_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M15570_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #2 LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #2 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbnz x0, G_M15570_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 @@ -37,42 +35,52 @@ G_M15570_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ldr x1, [x1] blr x1 ; gcrRegs +[x0]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15]
- mov x14, x19
bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #2 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbnz x0, G_M15570_IG04 movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- str x0, [x19] - ;; size=68 bbWeight=0.50 PerfScore 7.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #2 LSL #32 + str x0, [x1] + ;; size=100 bbWeight=0.50 PerfScore 9.75
G_M15570_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #2 LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M15570_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 116, prolog size 12, PerfScore 22.75, instruction count 29, allocated bytes for code 116 (MethodHash=1e56c32d) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
+; Total bytes of code 152, prolog size 8, PerfScore 23.25, instruction count 38, allocated bytes for code 152 (MethodHash=1e56c32d) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -80,10 +88,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+44 (+31.43%) : 266799.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,33 +9,29 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T02] ( 2, 1 ) int -> x0 -;* V02 cse0 [V02,T03] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V03 cse1 [V03,T00] ( 7, 5 ) long -> x19 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> x0 +;* V02 cse0 [V02,T01] ( 0, 0 ) long -> zero-ref "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M24568_IG08 - ;; size=36 bbWeight=1 PerfScore 7.50
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M24568_IG08 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M24568_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w0, [x19, #0xD8]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0]
cbnz w0, G_M24568_IG06
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -44,44 +40,57 @@ G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr tbz w0, #0, G_M24568_IG09 ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M24568_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #0xC9]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldrb w0, [x0]
mov w1, #1 cmp w0, #0 cinc w0, w1, eq
- str w0, [x19, #0xD8] - ;; size=20 bbWeight=0.50 PerfScore 2.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + str w0, [x1] + ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M24568_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19, #0xD8] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M24568_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M24568_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #8 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M24568_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #4 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG05
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 12, PerfScore 26.50, instruction count 35, allocated bytes for code 140 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 184, prolog size 8, PerfScore 26.00, instruction count 46, allocated bytes for code 184 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -89,10 +98,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

libraries_tests.run.osx.arm64.Release.mch

-44 (-23.40%) : 375587.dasm - MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)

@@ -9,7 +9,7 @@ ; 0 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 14, 4.09) byref -> x19 this single-def
+; V00 this [V00,T00] ( 5, 4.01) byref -> x19 this single-def
; V01 arg1 [V01,T03] ( 3, 2.01) ref -> x0 class-hnd single-def <MS.Internal.Xml.Cache.XPathNodeInfoTable> ; V02 arg2 [V02,T01] ( 4, 3.01) ref -> x6 class-hnd single-def <MS.Internal.Xml.Cache.XPathNode[]> ; V03 arg3 [V03,T02] ( 3, 3 ) int -> x3 single-def @@ -32,6 +32,7 @@ ;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom> ;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom> ;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom>
+; V23 cse0 [V23,T04] ( 11, 2.09) ref -> x7 "CSE - unknown"
; ; Lcl frame size = 24 @@ -49,53 +50,38 @@ G_M1111_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=28 bbWeight=1 PerfScore 4.50 G_M1111_IG02: ; bbWeight=1, gcrefRegs=0041 {x0 x6}, byrefRegs=80000 {x19}, byref, isz strh w3, [x19, #0x14]
- ldr x1, [x19]
+ ldr x7, [x19] + ; gcrRegs +[x7] + ldr x1, [x7, #0x30]
; gcrRegs +[x1]
- ldr x1, [x1, #0x30]
cmp x6, x1 bne G_M1111_IG04 ;; size=20 bbWeight=1 PerfScore 8.50 G_M1111_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x0-x1 x6]
+ ; gcrRegs -[x0-x1 x6-x7]
; byrRegs -[x19] ldr x19, [sp, #0x28] ldp fp, lr, [sp, #0x10] add sp, sp, #48 ret lr ;; size=16 bbWeight=1 PerfScore 4.50
-G_M1111_IG04: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0041 {x0 x6}, byrefRegs=80000 {x19}, gcvars, byref - ; gcrRegs +[x0 x6]
+G_M1111_IG04: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=00C1 {x0 x6 x7}, byrefRegs=80000 {x19}, gcvars, byref + ; gcrRegs +[x0 x6-x7]
; byrRegs +[x19]
- ldr x1, [x19]
+ ldr x1, [x7, #0x40]
; gcrRegs +[x1]
- ldr x1, [x1, #0x40]
str x1, [sp] // [V04 OutArgs]
- ldr x1, [x19] - ldr w1, [x1, #0x58]
+ ldr w1, [x7, #0x58]
; gcrRegs -[x1] str w1, [sp, #0x08] // [V04 OutArgs+0x08]
- ldr x1, [x19] - ; gcrRegs +[x1] - ldr w1, [x1, #0x5C] - ; gcrRegs -[x1]
+ ldr w1, [x7, #0x5C]
str w1, [sp, #0x0C] // [V04 OutArgs+0x0c]
- ldr x1, [x19] - ; gcrRegs +[x1] - ldr x1, [x1, #0x08] - ldr x2, [x19] - ; gcrRegs +[x2] - ldr x2, [x2, #0x10] - ldr x3, [x19] - ; gcrRegs +[x3] - ldr x3, [x3, #0x18] - ldr x4, [x19] - ; gcrRegs +[x4] - ldr x4, [x4, #0x20] - ldr x5, [x19]
+ ldp x1, x2, [x7, #0x08] + ; gcrRegs +[x1-x2] + ldp x3, x4, [x7, #0x18] + ; gcrRegs +[x3-x4] + ldr x5, [x7, #0x28]
; gcrRegs +[x5]
- ldr x5, [x5, #0x28] - ldr x7, [x19] - ; gcrRegs +[x7]
ldr x7, [x7, #0x38] movz x8, #0xD1FFAB1E // code for MS.Internal.Xml.Cache.XPathNodeInfoTable:Create(System.String,System.String,System.String,System.String,MS.Internal.Xml.Cache.XPathNode[],MS.Internal.Xml.Cache.XPathNode[],MS.Internal.Xml.Cache.XPathNode[],System.Xml.XPath.XPathDocument,int,int):MS.Internal.Xml.Cache.XPathNodeInfoAtom:this movk x8, #0xD1FFAB1E LSL #16 @@ -112,9 +98,9 @@ G_M1111_IG04: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0041 ; gcrRegs -[x0 x15] ; byrRegs -[x14 x19] b G_M1111_IG03
- ;; size=124 bbWeight=0.01 PerfScore 0.65
+ ;; size=80 bbWeight=0.01 PerfScore 0.35
-; Total bytes of code 188, prolog size 16, PerfScore 18.15, instruction count 47, allocated bytes for code 188 (MethodHash=c416fba8) for method MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
+; Total bytes of code 144, prolog size 16, PerfScore 17.85, instruction count 36, allocated bytes for code 144 (MethodHash=c416fba8) for method MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
; ============================================================ Unwind Info: @@ -125,7 +111,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-20.00%) : 352373.dasm - System.Int16:Min(short,short):short (Tier1)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> x0 single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> x1 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> x0 single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) short -> x0 "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) short -> x0 "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> x0 "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> x1 "CSE - unknown"
; ; Lcl frame size = 0 @@ -20,19 +22,17 @@ G_M43536_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 G_M43536_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- sxth w2, w0 - sxth w3, w1
sxth w0, w0 sxth w1, w1
- cmp w2, w3
+ cmp w0, w1
csel w0, w0, w1, le
- ;; size=24 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 2.00
G_M43536_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 6.50, instruction count 10, allocated bytes for code 40 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Tier1)
+; Total bytes of code 32, prolog size 8, PerfScore 5.50, instruction count 8, allocated bytes for code 32 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Tier1)
; ============================================================ Unwind Info: @@ -43,7 +43,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-20.00%) : 352377.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)

@@ -9,10 +9,12 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]>
-; V01 arg1 [V01,T00] ( 4, 4 ) short -> x1 single-def -; V02 arg2 [V02,T01] ( 4, 4 ) short -> x2 single-def
+; V01 arg1 [V01,T00] ( 3, 3 ) short -> x1 single-def +; V02 arg2 [V02,T01] ( 3, 3 ) short -> x2 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 2, 2 ) short -> x0 "Inline return value spill temp"
+; V04 tmp1 [V04,T04] ( 2, 2 ) short -> x0 "Inline return value spill temp" +; V05 cse0 [V05,T02] ( 3, 3 ) int -> x0 "CSE - unknown" +; V06 cse1 [V06,T03] ( 3, 3 ) int -> x1 "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,18 +24,16 @@ G_M9496_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=8 bbWeight=1 PerfScore 1.50 G_M9496_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref sxth w0, w1
- sxth w3, w2 - sxth w1, w1 - sxth w2, w2 - cmp w0, w3 - csel w0, w1, w2, le - ;; size=24 bbWeight=1 PerfScore 3.00
+ sxth w1, w2 + cmp w0, w1 + csel w0, w0, w1, le + ;; size=16 bbWeight=1 PerfScore 2.00
G_M9496_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 6.50, instruction count 10, allocated bytes for code 40 (MethodHash=422ddae7) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
+; Total bytes of code 32, prolog size 8, PerfScore 5.50, instruction count 8, allocated bytes for code 32 (MethodHash=422ddae7) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
; ============================================================ Unwind Info: @@ -44,7 +44,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+45.45%) : 585174.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)

@@ -8,8 +8,9 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 122704 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.10) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -17,36 +18,52 @@ G_M7274_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movn w1, #0xD1FFAB1E - add w1, w1, w0, UXTH
+G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
uxth w0, w0
- mov w2, #0xD1FFAB1E
+ movn w1, #0xD1FFAB1E + add w1, w0, w1
cmp w1, #2
- ccmp w0, w2, z, hi - cinc w0, wzr, eq - ;; size=28 bbWeight=1 PerfScore 4.00 -G_M7274_IG03: ; bbWeight=1, epilog, nogc, extend
+ bhi G_M7274_IG05 + ;; size=20 bbWeight=1 PerfScore 3.00 +G_M7274_IG03: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, #1 + ;; size=4 bbWeight=1.00 PerfScore 0.50 +G_M7274_IG04: ; bbWeight=1.00, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr
- ;; size=8 bbWeight=1 PerfScore 2.00
+ ;; size=8 bbWeight=1.00 PerfScore 2.00 +G_M7274_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + mov w1, #0xD1FFAB1E + cmp w0, w1 + beq G_M7274_IG03 + ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M7274_IG06: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0.00 PerfScore 0.00 +G_M7274_IG07: ; bbWeight=0.00, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 7.50, instruction count 11, allocated bytes for code 44 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 7.20, instruction count 16, allocated bytes for code 64 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 1
+ Epilog Count : 2
E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
+ ---- Scope 1 + Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) + Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

+20 (+45.45%) : 51895.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)

@@ -8,8 +8,9 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 29408 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.17) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -17,36 +18,52 @@ G_M7274_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movn w1, #0xD1FFAB1E - add w1, w1, w0, UXTH
+G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
uxth w0, w0
- mov w2, #0xD1FFAB1E
+ movn w1, #0xD1FFAB1E + add w1, w0, w1
cmp w1, #2
- ccmp w0, w2, z, hi - cinc w0, wzr, eq - ;; size=28 bbWeight=1 PerfScore 4.00 -G_M7274_IG03: ; bbWeight=1, epilog, nogc, extend
+ bhi G_M7274_IG05 + ;; size=20 bbWeight=1 PerfScore 3.00 +G_M7274_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, #1 + ;; size=4 bbWeight=1 PerfScore 0.50 +G_M7274_IG04: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
+G_M7274_IG05: ; bbWeight=0.17, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + mov w1, #0xD1FFAB1E + cmp w0, w1 + beq G_M7274_IG03 + ;; size=12 bbWeight=0.17 PerfScore 0.34 +G_M7274_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M7274_IG07: ; bbWeight=0, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 7.50, instruction count 11, allocated bytes for code 44 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 7.34, instruction count 16, allocated bytes for code 64 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 1
+ Epilog Count : 2
E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
+ ---- Scope 1 + Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) + Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

+20 (+45.45%) : 82272.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)

@@ -8,8 +8,9 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 12368 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.06) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -17,36 +18,52 @@ G_M7274_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movn w1, #0xD1FFAB1E - add w1, w1, w0, UXTH
+G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
uxth w0, w0
- mov w2, #0xD1FFAB1E
+ movn w1, #0xD1FFAB1E + add w1, w0, w1
cmp w1, #2
- ccmp w0, w2, z, hi - cinc w0, wzr, eq - ;; size=28 bbWeight=1 PerfScore 4.00 -G_M7274_IG03: ; bbWeight=1, epilog, nogc, extend
+ bhi G_M7274_IG05 + ;; size=20 bbWeight=1 PerfScore 3.00 +G_M7274_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, #1 + ;; size=4 bbWeight=1 PerfScore 0.50 +G_M7274_IG04: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
+G_M7274_IG05: ; bbWeight=0.06, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + mov w1, #0xD1FFAB1E + cmp w0, w1 + beq G_M7274_IG03 + ;; size=12 bbWeight=0.06 PerfScore 0.11 +G_M7274_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M7274_IG07: ; bbWeight=0, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 7.50, instruction count 11, allocated bytes for code 44 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 7.11, instruction count 16, allocated bytes for code 64 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 1
+ Epilog Count : 2
E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
+ ---- Scope 1 + Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) + Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

librariestestsnotieredcompilation.run.osx.arm64.Release.mch

-40 (-23.81%) : 8491.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)

@@ -9,19 +9,16 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M62751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -34,19 +31,11 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #1 LSL #32
- str x14, [x0, #0x18] - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - add x14, x19, #0xD1FFAB1E - str x14, [x0, #0x20] - movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - mov x14, x20
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF @@ -63,34 +52,36 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #1 LSL #32
- stp x14, x19, [x0, #0x18] - add x14, x20, #8
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=144 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M62751_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00000001045D47A0h, 000000010A34A9D0h +RWD16 dq 00000001045DD0A8h, 000000010A34A790h
-; Total bytes of code 168, prolog size 12, PerfScore 28.00, instruction count 42, allocated bytes for code 168 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 155593.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M57856_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #1 LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #1 LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M57856_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000000106CC47A0h, 000000010AAC8E28h +RWD16 dq 0000000106CC47A0h, 000000010AAC8E40h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 149602.dasm - System.Net.Mail.CheckCommand:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M41050_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M41050_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M41050_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M41050_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #1 LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #1 LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M41050_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M41050_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00000001051047A0h, 0000000108F83558h +RWD16 dq 00000001051047A0h, 0000000108F83570h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=c3ef5fa5) for method System.Net.Mail.CheckCommand:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=c3ef5fa5) for method System.Net.Mail.CheckCommand:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+28 (+30.43%) : 103718.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)

@@ -10,55 +10,61 @@ ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Object>
-; V02 cse0 [V02,T00] ( 5, 5 ) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M9155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M9155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, #91 movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x1, #0xD1FFAB1E LSL #16 movk x1, #1 LSL #32 str w0, [x1]
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - stp xzr, xzr, [x19] - str xzr, [x19, #0x10]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + str xzr, [x0] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + str xzr, [x0] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + str xzr, [x0]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- add x14, x19, #24
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=68 bbWeight=1 PerfScore 11.00
+ ;; size=104 bbWeight=1 PerfScore 16.00
G_M9155_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.50, instruction count 23, allocated bytes for code 92 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 19.50, instruction count 30, allocated bytes for code 120 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -66,10 +72,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+48 (+30.77%) : 34260.dasm - Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)

@@ -10,75 +10,85 @@ ; ; V00 this [V00,T00] ( 6, 6 ) ref -> x19 this class-hnd single-def <Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) long -> x20 "CSE - aggressive" -; V03 cse1 [V03,T02] ( 5, 5 ) long -> x21 "CSE - aggressive"
; ; Lcl frame size = 8 G_M54721_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M54721_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #33 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x21, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #1 LSL #32 - ldr x15, [x21]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #8 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #34 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x21, #0x10]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #16 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #35 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x21, #0x20]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #48 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #32 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x21, #0x30]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #1 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #56 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15 x19] ; byrRegs -[x14]
- ;; size=120 bbWeight=1 PerfScore 29.00
+ ;; size=176 bbWeight=1 PerfScore 36.00
G_M54721_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 156, prolog size 16, PerfScore 38.00, instruction count 39, allocated bytes for code 156 (MethodHash=47732a3e) for method Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)
+; Total bytes of code 204, prolog size 12, PerfScore 43.00, instruction count 51, allocated bytes for code 204 (MethodHash=47732a3e) for method Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -89,7 +99,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ 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) @@ -97,9 +107,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

+36 (+34.62%) : 40106.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,65 +9,72 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 2, 1 ) int -> x0 -; V02 cse0 [V02,T00] ( 6, 4.50) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T02] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> x0
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - ldr w0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0]
cbnz w0, G_M24568_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M24568_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub x0, x19, #216 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M24568_IG07 - ;; size=24 bbWeight=0.50 PerfScore 3.00
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M24568_IG07 + ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #-0x0F]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldrb w0, [x0]
mov w1, #1 cmp w0, #0 cinc w0, w1, eq
- str w0, [x19] - ;; size=20 bbWeight=0.50 PerfScore 2.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + str w0, [x1] + ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M24568_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M24568_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M24568_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #4 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG04
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 12, PerfScore 20.75, instruction count 26, allocated bytes for code 104 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 140, prolog size 8, PerfScore 20.50, instruction count 35, allocated bytes for code 140 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ 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) @@ -75,10 +82,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

realworld.run.osx.arm64.checked.mch

-36 (-21.95%) : 25825.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M38922_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #1 LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #2 LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - sub x14, x21, #72 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M38922_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 0000000104204218h, 00000001058B1FB0h +RWD16 dq 0000000104204218h, 00000001058B1F68h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=9f2a67f5) for method Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=9f2a67f5) for method Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-12 (-14.29%) : 13426.dasm - Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>cDisplayClass18_02[Microsoft.ML.Data.VBuffer1[float],float]:b0(byref):this (FullOpts)

@@ -7,31 +7,27 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]>
+; V00 this [V00,T00] ( 6, 6 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]>
; V01 arg1 [V01,T03] ( 3, 3 ) byref -> x20 single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T04] ( 3, 3 ) byref -> x21 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" -; V05 rat1 [V05,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
+; V03 rat0 [V03,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" +; V04 rat1 [V04,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M41554_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]! + stp x19, x20, [sp, #0x10]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] mov x20, x1 ; byrRegs +[x20]
- ;; size=24 bbWeight=1 PerfScore 4.50
+ ;; size=20 bbWeight=1 PerfScore 3.50
G_M41554_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref ldr x2, [x19, #0x08] ; gcrRegs +[x2]
- add x21, x19, #24 - ; byrRegs +[x21] - mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] ldr x0, [x2, #0x08] ; gcrRegs +[x0] @@ -42,7 +38,7 @@ G_M41554_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; byrRegs -[x1] ldr x3, [x19, #0x10] ; gcrRegs +[x3]
- mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] mov x2, x20 ; byrRegs +[x2] @@ -50,15 +46,14 @@ G_M41554_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; gcrRegs +[x0] ldr x3, [x3, #0x18] ; gcrRegs -[x3]
- ;; size=44 bbWeight=1 PerfScore 21.00
+ ;; size=40 bbWeight=1 PerfScore 20.50
G_M41554_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
br x3
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 16, PerfScore 30.50, instruction count 21, allocated bytes for code 84 (MethodHash=aeed5dad) for method Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]:<GetValueGetter>b__0(byref):this (FullOpts)
+; Total bytes of code 72, prolog size 12, PerfScore 27.00, instruction count 18, allocated bytes for code 72 (MethodHash=aeed5dad) for method Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]:<GetValueGetter>b__0(byref):this (FullOpts)
; ============================================================ Unwind Info: @@ -69,7 +64,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ 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) @@ -77,9 +72,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

-12 (-14.29%) : 13798.dasm - Microsoft.ML.Data.RowCursorUtils+<>cDisplayClass4_0`2[uint,ulong]:b0(byref):this (FullOpts)

@@ -7,31 +7,27 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]>
+; V00 this [V00,T00] ( 6, 6 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]>
; V01 arg1 [V01,T03] ( 3, 3 ) byref -> x20 single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T04] ( 3, 3 ) byref -> x21 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" -; V05 rat1 [V05,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
+; V03 rat0 [V03,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" +; V04 rat1 [V04,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M39893_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]! + stp x19, x20, [sp, #0x10]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] mov x20, x1 ; byrRegs +[x20]
- ;; size=24 bbWeight=1 PerfScore 4.50
+ ;; size=20 bbWeight=1 PerfScore 3.50
G_M39893_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref ldr x2, [x19, #0x08] ; gcrRegs +[x2]
- add x21, x19, #24 - ; byrRegs +[x21] - mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] ldr x0, [x2, #0x08] ; gcrRegs +[x0] @@ -42,7 +38,7 @@ G_M39893_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; byrRegs -[x1] ldr x3, [x19, #0x10] ; gcrRegs +[x3]
- mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] mov x2, x20 ; byrRegs +[x2] @@ -50,15 +46,14 @@ G_M39893_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; gcrRegs +[x0] ldr x3, [x3, #0x18] ; gcrRegs -[x3]
- ;; size=44 bbWeight=1 PerfScore 21.00
+ ;; size=40 bbWeight=1 PerfScore 20.50
G_M39893_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
br x3
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 16, PerfScore 30.50, instruction count 21, allocated bytes for code 84 (MethodHash=04d9642a) for method Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
+; Total bytes of code 72, prolog size 12, PerfScore 27.00, instruction count 18, allocated bytes for code 72 (MethodHash=04d9642a) for method Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
; ============================================================ Unwind Info: @@ -69,7 +64,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ 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) @@ -77,9 +72,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

+32 (+20.51%) : 26723.dasm - Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)

@@ -13,81 +13,87 @@ ; V02 tmp2 [V02,T01] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo> ; V03 tmp3 [V03,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo> ; V04 tmp4 [V04,T03] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo>
-; V05 cse0 [V05,T04] ( 5, 5 ) long -> x19 "CSE - aggressive" -; V06 cse1 [V06,T05] ( 5, 5 ) long -> x20 "CSE - aggressive"
; ; Lcl frame size = 0 G_M53859_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M53859_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] strh wzr, [x0, #0x08]
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #2 LSL #32 - mov x14, x20
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] mov w14, #1 strh w14, [x0, #0x08]
- add x14, x20, #8
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] mov w14, #2 strh w14, [x0, #0x08]
- add x14, x20, #16
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] mov w14, #3 strh w14, [x0, #0x08]
- add x14, x20, #24
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #2 LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 22.50
+ ;; size=172 bbWeight=1 PerfScore 27.50
G_M53859_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 156, prolog size 12, PerfScore 28.00, instruction count 39, allocated bytes for code 156 (MethodHash=7e472d9c) for method Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)
+; Total bytes of code 188, prolog size 8, PerfScore 31.00, instruction count 47, allocated bytes for code 188 (MethodHash=7e472d9c) for method Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -95,10 +101,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+32 (+20.51%) : 2464.dasm - .$Internal.Utilities.Library.Extras:.cctor() (FullOpts)

@@ -9,77 +9,82 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 4, 4 ) long -> x19 "CSE - aggressive" -; V02 cse1 [V02,T01] ( 4, 4 ) long -> x20 "CSE - aggressive" -; V03 cse2 [V03,T02] ( 4, 4 ) long -> x21 "CSE - aggressive" -; V04 cse3 [V04,T03] ( 2, 2 ) long -> x0 "CSE - moderate"
+; V01 cse0 [V01,T00] ( 2, 2 ) long -> x0 "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M44283_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M44283_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 strh wzr, [x0]
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #1 LSL #32 - mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #27 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #2 LSL #16 - movk x20, #7 LSL #32 - ldr x15, [x20]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #2 LSL #16 + movk x14, #7 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15]
- movz x21, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x21, #1 LSL #16 - movk x21, #7 LSL #32 - mov x14, x21
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #1 LSL #16 + movk x14, #7 LSL #32
bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #28 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x20, #0x10]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #2 LSL #16 + movk x14, #7 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15]
- add x14, x21, #8
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #1 LSL #16 + movk x14, #7 LSL #32
bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32
mov w1, #29 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x20, #0x20]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #2 LSL #16 + movk x14, #7 LSL #32 + ldr x15, [x14]
; gcrRegs +[x15]
- add x14, x21, #16
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #1 LSL #16 + movk x14, #7 LSL #32
bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15]
- ;; size=124 bbWeight=1 PerfScore 26.50
+ ;; size=172 bbWeight=1 PerfScore 32.50
G_M44283_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 156, prolog size 16, PerfScore 35.00, instruction count 39, allocated bytes for code 156 (MethodHash=8d3b5304) for method <StartupCode$FSharp-Compiler-Service>.$Internal.Utilities.Library.Extras:.cctor() (FullOpts)
+; Total bytes of code 188, prolog size 8, PerfScore 36.00, instruction count 47, allocated bytes for code 188 (MethodHash=8d3b5304) for method <StartupCode$FSharp-Compiler-Service>.$Internal.Utilities.Library.Extras:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -87,9 +92,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+37.50%) : 28203.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)

@@ -9,22 +9,21 @@ ; ; V00 arg0 [V00,T00] ( 4, 3 ) ref -> x19 class-hnd single-def <System.Action> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 4.50) long -> x20 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M64219_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] ;; size=16 bbWeight=1 PerfScore 3.00 G_M64219_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #1 LSL #32 - ldrb w0, [x20]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldrb w0, [x0]
cbnz w0, G_M64219_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 G_M64219_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref @@ -33,12 +32,18 @@ G_M64219_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x0, #1 LSL #32 ldr x0, [x0] blr x0
- strb w0, [x20, #0x01] - ;; size=24 bbWeight=0.50 PerfScore 3.25
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + strb w0, [x1] + ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M64219_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ldrb w0, [x20, #0x01]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldrb w0, [x0]
cbz w0, G_M64219_IG06
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x08] ; gcrRegs +[x0] @@ -47,15 +52,18 @@ G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcrRegs -[x0 x19] ;; size=12 bbWeight=0.50 PerfScore 3.50 G_M64219_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x20, #0x01] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldrb w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M64219_IG07: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 96, prolog size 12, PerfScore 25.25, instruction count 24, allocated bytes for code 96 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 30.00, instruction count 33, allocated bytes for code 132 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -66,7 +74,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -74,7 +82,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.osx.arm64.checked.mch 6,506 3,127 2,528 851 -34,876 +40,060 -0.0117%
benchmarks.run_pgo.osx.arm64.checked.mch 9,068 4,091 3,590 1,387 -49,360 +57,480 -0.0598%
benchmarks.run_tiered.osx.arm64.checked.mch 2,588 1,659 708 221 -15,696 +11,420 -0.0263%
coreclr_tests.run.osx.arm64.checked.mch 113,906 47,098 54,103 12,705 -2,055,764 +756,976 -0.1667%
libraries.crossgen2.osx.arm64.checked.mch 35,845 19,581 11,567 4,697 -347,272 +154,332 +0.0818%
libraries.pmi.osx.arm64.checked.mch 39,261 16,321 18,222 4,718 -186,300 +247,228 -0.0505%
libraries_tests.run.osx.arm64.Release.mch 54,213 27,312 20,310 6,591 -451,460 +448,552 -0.1018%
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 87,958 33,445 47,596 6,917 -448,336 +886,272 -0.0038%
realworld.run.osx.arm64.checked.mch 6,651 2,888 2,935 828 -42,460 +45,060 -0.0479%
355,996 155,522 161,559 38,915 -3,631,524 +2,647,380

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.osx.arm64.checked.mch 24,973 4 24,969 6 (0.02%) 90 (0.36%)
benchmarks.run_pgo.osx.arm64.checked.mch 84,995 48,590 36,405 4 (0.00%) 18 (0.02%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,563 37,765 10,798 4 (0.01%) 17 (0.03%)
coreclr_tests.run.osx.arm64.checked.mch 605,502 374,208 231,294 10 (0.00%) 566 (0.09%)
libraries.crossgen2.osx.arm64.checked.mch 266,063 15 266,048 1 (0.00%) 43 (0.02%)
libraries.pmi.osx.arm64.checked.mch 321,306 18 321,288 15 (0.00%) 416 (0.13%)
libraries_tests.run.osx.arm64.Release.mch 630,556 463,264 167,292 19 (0.00%) 370 (0.06%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 299,277 21,535 277,742 111 (0.04%) 3,356 (1.11%)
realworld.run.osx.arm64.checked.mch 31,558 3 31,555 0 (0.00%) 44 (0.14%)
2,312,793 945,402 1,367,391 170 (0.01%) 4,920 (0.21%)

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: 11082424 (overridden on cmd)
Total bytes of diff: 11087608 (overridden on cmd)
Total bytes of delta: 5184 (0.05 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         768 : 23374.dasm (3.99 % of base)
         448 : 16811.dasm (3.15 % of base)
         264 : 1322.dasm (4.63 % of base)
         224 : 12463.dasm (5.06 % of base)
         208 : 974.dasm (1.98 % of base)
         176 : 11944.dasm (4.05 % of base)
         172 : 16763.dasm (2.30 % of base)
         160 : 14657.dasm (2.31 % of base)
         160 : 12786.dasm (3.46 % of base)
         152 : 9308.dasm (0.47 % of base)
         112 : 19901.dasm (3.14 % of base)
         112 : 16419.dasm (2.16 % of base)
         108 : 7780.dasm (1.81 % of base)
         108 : 17706.dasm (13.64 % of base)
         108 : 16168.dasm (4.76 % of base)
         108 : 9475.dasm (1.00 % of base)
         104 : 17598.dasm (2.26 % of base)
         104 : 24384.dasm (0.97 % of base)
          96 : 23850.dasm (9.45 % of base)
          96 : 23901.dasm (9.45 % of base)

Top file improvements (bytes):
        -832 : 7597.dasm (-6.97 % of base)
        -320 : 7786.dasm (-8.57 % of base)
        -320 : 6296.dasm (-12.64 % of base)
        -304 : 23641.dasm (-4.32 % of base)
        -260 : 6141.dasm (-5.85 % of base)
        -204 : 2030.dasm (-1.60 % of base)
        -196 : 19718.dasm (-0.52 % of base)
        -180 : 14136.dasm (-8.06 % of base)
        -152 : 4727.dasm (-1.44 % of base)
        -144 : 3476.dasm (-9.78 % of base)
        -144 : 3973.dasm (-5.50 % of base)
        -144 : 4699.dasm (-2.13 % of base)
        -144 : 18503.dasm (-5.14 % of base)
        -136 : 7867.dasm (-1.71 % of base)
        -136 : 7938.dasm (-1.19 % of base)
        -132 : 12721.dasm (-2.07 % of base)
        -132 : 17354.dasm (-6.72 % of base)
        -128 : 23164.dasm (-13.50 % of base)
        -120 : 1509.dasm (-13.89 % of base)
        -116 : 13104.dasm (-2.14 % of base)

94 total files with Code Size differences (39 improved, 55 regressed), 20 unchanged.

Top method regressions (bytes):
         768 (3.99 % of base) : 23374.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         448 (3.15 % of base) : 16811.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         264 (4.63 % of base) : 1322.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         224 (5.06 % of base) : 12463.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         208 (1.98 % of base) : 974.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         176 (4.05 % of base) : 11944.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         172 (2.30 % of base) : 16763.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
         160 (2.31 % of base) : 14657.dasm - System.Security.Cryptography.CryptoConfig:get_DefaultNameHT():System.Collections.Generic.Dictionary`2[System.String,System.Object] (FullOpts)
         160 (3.46 % of base) : 12786.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         152 (0.47 % of base) : 9308.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         112 (2.16 % of base) : 16419.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         112 (3.14 % of base) : 19901.dasm - PerfLabTests.GetMember:GetMethod20():this (FullOpts)
         108 (1.00 % of base) : 9475.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (FullOpts)
         108 (13.64 % of base) : 17706.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (FullOpts)
         108 (4.76 % of base) : 16168.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (FullOpts)
         108 (1.81 % of base) : 7780.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this (FullOpts)
         104 (0.97 % of base) : 24384.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
         104 (2.26 % of base) : 17598.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          96 (9.45 % of base) : 23901.dasm - System.Xml.Linq.Perf_XElement:CreateElementsWithNamespace():System.Xml.Linq.XElement:this (FullOpts)
          96 (9.45 % of base) : 23850.dasm - System.Xml.Linq.Perf_XElement:CreateWithElements():System.Xml.Linq.XElement:this (FullOpts)

Top method improvements (bytes):
        -832 (-6.97 % of base) : 7597.dasm - Product:CreateLists() (FullOpts)
        -320 (-12.64 % of base) : 6296.dasm - ProtoBuf.Internal.Serializers.DefaultValueDecorator:EmitBranchIfDefaultValue(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.CodeLabel):this (FullOpts)
        -320 (-8.57 % of base) : 7786.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
        -304 (-4.32 % of base) : 23641.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_LocationFormatter1:Serialize(byref,int,MicroBenchmarks.Serializers.Location,MessagePack.IFormatterResolver):int:this (FullOpts)
        -260 (-5.85 % of base) : 6141.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
        -204 (-1.60 % of base) : 2030.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -196 (-0.52 % of base) : 19718.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        -180 (-8.06 % of base) : 14136.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -152 (-1.44 % of base) : 4727.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Serialize(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel,Utf8Json.IJsonFormatterResolver):this (FullOpts)
        -144 (-9.78 % of base) : 3476.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
        -144 (-5.14 % of base) : 18503.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (FullOpts)
        -144 (-5.50 % of base) : 3973.dasm - System.Xml.Linq.XContainer:GetStringValue(System.Object):System.String (FullOpts)
        -144 (-2.13 % of base) : 4699.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_IndexViewModelFormatter1:Serialize(byref,MicroBenchmarks.Serializers.IndexViewModel,Utf8Json.IJsonFormatterResolver):this (FullOpts)
        -136 (-1.19 % of base) : 7938.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
        -136 (-1.71 % of base) : 7867.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
        -132 (-6.72 % of base) : 17354.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -132 (-2.07 % of base) : 12721.dasm - Utf8Json.Formatters.DictionaryFormatterBase`5[int,System.__Canon,System.__Canon,System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon],System.__Canon]:Serialize(byref,System.__Canon,Utf8Json.IJsonFormatterResolver):this (FullOpts)
        -128 (-13.50 % of base) : 23164.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
        -120 (-13.89 % of base) : 1509.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
        -116 (-2.14 % of base) : 13104.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)

Top method regressions (percentages):
          36 (34.62 % of base) : 11637.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          24 (26.09 % of base) : 12547.dasm - System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
          32 (25.81 % of base) : 11483.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
          24 (23.08 % of base) : 10364.dasm - MessagePack.MessagePackSerializer:get_DefaultResolver():MessagePack.IFormatterResolver (FullOpts)
          24 (23.08 % of base) : 4310.dasm - Utf8Json.JsonSerializer:get_DefaultResolver():Utf8Json.IJsonFormatterResolver (FullOpts)
          28 (20.00 % of base) : 19544.dasm - V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
          28 (20.00 % of base) : 19511.dasm - V8.Crypto.Support:runEncrypt(ubyte) (FullOpts)
          52 (19.70 % of base) : 905.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
          24 (18.75 % of base) : 23769.dasm - System.MathBenchmarks.MathTests:DivRemInt32():int:this (FullOpts)
          24 (18.75 % of base) : 23909.dasm - System.MathBenchmarks.MathTests:DivRemInt64():long:this (FullOpts)
          60 (18.52 % of base) : 5365.dasm - System.ConsolePal:.cctor() (FullOpts)
          64 (18.39 % of base) : 12437.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:BinaryDataPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
          28 (17.50 % of base) : 5100.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:get_IntrinsicTypeConverters():System.Collections.Generic.Dictionary`2[System.Object,System.ComponentModel.ReflectTypeDescriptionProvider+IntrinsicTypeConverterData] (FullOpts)
          32 (17.39 % of base) : 4347.dasm - Utf8Json.Resolvers.Internal.CamelCaseStandardResolver+InnerResolver:.cctor() (FullOpts)
          32 (17.39 % of base) : 4353.dasm - Utf8Json.Resolvers.Internal.ExcludeNullCamelCaseStandardResolver+InnerResolver:.cctor() (FullOpts)
          32 (17.39 % of base) : 4351.dasm - Utf8Json.Resolvers.Internal.ExcludeNullStandardResolver+InnerResolver:.cctor() (FullOpts)
          32 (17.39 % of base) : 4349.dasm - Utf8Json.Resolvers.Internal.SnakeCaseStandardResolver+InnerResolver:.cctor() (FullOpts)
          44 (17.19 % of base) : 5335.dasm - System.Console:get_OutputEncoding():System.Text.Encoding (FullOpts)
          28 (16.67 % of base) : 18284.dasm - Microsoft.Cci.Extensions:HasBody(Microsoft.Cci.IMethodDefinition):ubyte (FullOpts)
          24 (16.67 % of base) : 4316.dasm - Utf8Json.Resolvers.EnumResolver:.cctor() (FullOpts)

Top method improvements (percentages):
         -36 (-21.95 % of base) : 8268.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
        -120 (-13.89 % of base) : 1509.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
        -128 (-13.50 % of base) : 23164.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -12 (-13.04 % of base) : 1212.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
         -12 (-13.04 % of base) : 10943.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -12 (-13.04 % of base) : 1218.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
         -12 (-13.04 % of base) : 12029.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_10(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 12030.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 12031.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_14(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 12033.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_18(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 12025.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 12026.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_4(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 12027.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_6(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 8251.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_0(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 8252.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_2(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 11989.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_10(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 11985.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_2(System.Object):ubyte:this (FullOpts)
         -12 (-13.04 % of base) : 11986.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_4(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 11987.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 23651.dasm - System.Reflection.Invoke:Ctor0_ActivatorCreateInstance_NoParams():this (FullOpts)


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: 34604740 (overridden on cmd)
Total bytes of diff: 34612860 (overridden on cmd)
Total bytes of delta: 8120 (0.02 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         292 : 68080.dasm (14.78 % of base)
         284 : 3193.dasm (5.26 % of base)
         268 : 80898.dasm (13.56 % of base)
         248 : 39157.dasm (6.24 % of base)
         232 : 33687.dasm (5.18 % of base)
         232 : 71891.dasm (5.18 % of base)
         232 : 64898.dasm (5.19 % of base)
         224 : 31634.dasm (4.93 % of base)
         196 : 31111.dasm (9.94 % of base)
         188 : 69991.dasm (8.90 % of base)
         184 : 35289.dasm (8.44 % of base)
         184 : 70144.dasm (6.48 % of base)
         184 : 35041.dasm (8.81 % of base)
         184 : 68105.dasm (6.49 % of base)
         184 : 82035.dasm (19.57 % of base)
         176 : 31179.dasm (3.95 % of base)
         176 : 71220.dasm (6.83 % of base)
         168 : 54337.dasm (5.93 % of base)
         168 : 69969.dasm (7.78 % of base)
         164 : 68104.dasm (6.23 % of base)

Top file improvements (bytes):
        -748 : 60156.dasm (-27.99 % of base)
        -688 : 17352.dasm (-31.10 % of base)
        -228 : 74717.dasm (-2.00 % of base)
        -212 : 65429.dasm (-2.17 % of base)
        -212 : 67419.dasm (-2.17 % of base)
        -212 : 77462.dasm (-2.17 % of base)
        -172 : 58929.dasm (-34.96 % of base)
        -164 : 63445.dasm (-0.44 % of base)
        -160 : 55467.dasm (-4.90 % of base)
        -160 : 55476.dasm (-4.90 % of base)
        -148 : 60175.dasm (-9.44 % of base)
        -144 : 64025.dasm (-1.51 % of base)
        -144 : 55468.dasm (-1.52 % of base)
        -140 : 55965.dasm (-1.42 % of base)
        -140 : 57685.dasm (-1.42 % of base)
        -132 : 66446.dasm (-1.40 % of base)
        -128 : 78772.dasm (-13.28 % of base)
        -124 : 54448.dasm (-1.29 % of base)
        -112 : 38543.dasm (-1.05 % of base)
        -108 : 57616.dasm (-3.35 % of base)

94 total files with Code Size differences (56 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         292 (14.78 % of base) : 68080.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         284 (5.26 % of base) : 3193.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
         268 (13.56 % of base) : 80898.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         248 (6.24 % of base) : 39157.dasm - System.Text.Json.Tests.Perf_Strings:Setup():this (Tier1-OSR)
         232 (5.18 % of base) : 33687.dasm - System.Text.Json.Tests.Perf_Strings:Setup():this (Tier1-OSR)
         232 (5.18 % of base) : 71891.dasm - System.Text.Json.Tests.Perf_Strings:Setup():this (Tier1-OSR)
         232 (5.19 % of base) : 64898.dasm - System.Text.Json.Tests.Perf_Strings:Setup():this (Tier1-OSR)
         224 (4.93 % of base) : 31634.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         196 (9.94 % of base) : 31111.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         188 (8.90 % of base) : 69991.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         184 (8.81 % of base) : 35041.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         184 (6.48 % of base) : 70144.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         184 (6.49 % of base) : 68105.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         184 (8.44 % of base) : 35289.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         184 (19.57 % of base) : 82035.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:PickPivotAndPartition(System.Span`1[System.Collections.BigStruct],System.Comparison`1[System.Collections.BigStruct]):int (Tier1)
         176 (6.83 % of base) : 71220.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]:IndexOf(byref,int):int:this (Tier1)
         176 (3.95 % of base) : 31179.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         168 (5.93 % of base) : 54337.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter:DoVisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (Tier1)
         168 (7.78 % of base) : 69969.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1-OSR)
         164 (6.23 % of base) : 68104.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)

Top method improvements (bytes):
        -748 (-27.99 % of base) : 60156.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (Tier1)
        -688 (-31.10 % of base) : 17352.dasm - Benchstone.BenchF.Whetsto:Test():double:this (Tier1-OSR)
        -228 (-2.00 % of base) : 74717.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
        -212 (-2.17 % of base) : 65429.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -212 (-2.17 % of base) : 67419.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -212 (-2.17 % of base) : 77462.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -172 (-34.96 % of base) : 58929.dasm - System.Threading.ReaderWriterLockSlim:GetThreadRWCount(ubyte):System.Threading.ReaderWriterCount:this (Tier1)
        -164 (-0.44 % of base) : 63445.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        -160 (-4.90 % of base) : 55467.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -160 (-4.90 % of base) : 55476.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -148 (-9.44 % of base) : 60175.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryGetValue(System.ReadOnlyMemory`1[ushort],byref):ubyte:this (Tier1)
        -144 (-1.52 % of base) : 55468.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -144 (-1.51 % of base) : 64025.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -140 (-1.42 % of base) : 55965.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -140 (-1.42 % of base) : 57685.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -132 (-1.40 % of base) : 66446.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -128 (-13.28 % of base) : 78772.dasm - System.Net.Sockets.SocketAsyncContext+OperationQueue`1[System.__Canon]:StartAsyncOperation(System.Net.Sockets.SocketAsyncContext,System.__Canon,int,System.Threading.CancellationToken):ubyte:this (Tier1)
        -124 (-1.29 % of base) : 54448.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,byref,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier1)
        -112 (-1.05 % of base) : 38543.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        -108 (-3.35 % of base) : 57616.dasm - Benchstone.BenchI.Puzzle:DoIt():ubyte:this (Tier1)

Top method regressions (percentages):
         184 (19.57 % of base) : 82035.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:PickPivotAndPartition(System.Span`1[System.Collections.BigStruct],System.Comparison`1[System.Collections.BigStruct]):int (Tier1)
          24 (19.35 % of base) : 10178.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 29033.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 14855.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 48734.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          76 (14.84 % of base) : 32125.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
         292 (14.78 % of base) : 68080.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         124 (14.76 % of base) : 61199.dasm - System.Net.Sockets.SocketAsyncContext+OperationQueue`1[System.__Canon]:StartAsyncOperation(System.Net.Sockets.SocketAsyncContext,System.__Canon,int,System.Threading.CancellationToken):ubyte:this (Tier1)
          76 (14.73 % of base) : 66274.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.73 % of base) : 75103.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.62 % of base) : 66423.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.62 % of base) : 75147.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 28715.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 33671.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 36842.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 34197.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 41531.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 37208.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 38879.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          40 (14.08 % of base) : 64492.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)

Top method improvements (percentages):
        -172 (-34.96 % of base) : 58929.dasm - System.Threading.ReaderWriterLockSlim:GetThreadRWCount(ubyte):System.Threading.ReaderWriterCount:this (Tier1)
        -688 (-31.10 % of base) : 17352.dasm - Benchstone.BenchF.Whetsto:Test():double:this (Tier1-OSR)
        -748 (-27.99 % of base) : 60156.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (Tier1)
         -28 (-22.58 % of base) : 61007.dasm - System.LocalAppContextSwitches:get_ForceEmitInvoke():ubyte (Tier1)
         -28 (-22.58 % of base) : 61006.dasm - System.LocalAppContextSwitches:get_ForceInterpretedInvoke():ubyte (Tier1)
         -92 (-20.35 % of base) : 30662.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -92 (-20.35 % of base) : 36099.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -92 (-20.35 % of base) : 72044.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -92 (-20.35 % of base) : 55554.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -92 (-20.35 % of base) : 61181.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -92 (-20.35 % of base) : 63794.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -92 (-19.83 % of base) : 61212.dasm - System.Threading.LowLevelLock:Acquire():this (Tier1)
         -92 (-19.17 % of base) : 39895.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -12 (-15.00 % of base) : 38260.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)
         -12 (-15.00 % of base) : 57276.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)
         -12 (-15.00 % of base) : 61278.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier1)
        -128 (-13.28 % of base) : 78772.dasm - System.Net.Sockets.SocketAsyncContext+OperationQueue`1[System.__Canon]:StartAsyncOperation(System.Net.Sockets.SocketAsyncContext,System.__Canon,int,System.Threading.CancellationToken):ubyte:this (Tier1)
         -12 (-13.04 % of base) : 15667.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
         -12 (-13.04 % of base) : 27780.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -12 (-13.04 % of base) : 15669.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)


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: 15625516 (overridden on cmd)
Total bytes of diff: 15621240 (overridden on cmd)
Total bytes of delta: -4276 (-0.03 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         768 : 46116.dasm (3.99 % of base)
         284 : 2802.dasm (5.33 % of base)
         224 : 25142.dasm (5.06 % of base)
         176 : 26011.dasm (4.05 % of base)
         160 : 26787.dasm (3.46 % of base)
         160 : 37361.dasm (4.22 % of base)
         152 : 20588.dasm (0.47 % of base)
         112 : 5643.dasm (8.86 % of base)
         112 : 37711.dasm (2.16 % of base)
          92 : 47424.dasm (6.04 % of base)
          76 : 9529.dasm (5.92 % of base)
          68 : 29275.dasm (2.23 % of base)
          64 : 46896.dasm (7.05 % of base)
          64 : 39779.dasm (15.84 % of base)
          64 : 12698.dasm (0.92 % of base)
          64 : 27988.dasm (3.44 % of base)
          64 : 28546.dasm (7.31 % of base)
          60 : 20583.dasm (5.08 % of base)
          60 : 44879.dasm (1.54 % of base)
          56 : 15612.dasm (11.02 % of base)

Top file improvements (bytes):
        -264 : 27360.dasm (-2.36 % of base)
        -164 : 41007.dasm (-0.44 % of base)
        -144 : 31145.dasm (-4.44 % of base)
        -112 : 29371.dasm (-1.05 % of base)
        -108 : 45684.dasm (-2.84 % of base)
        -108 : 45686.dasm (-1.01 % of base)
        -108 : 31147.dasm (-1.22 % of base)
        -108 : 40771.dasm (-5.28 % of base)
         -92 : 48169.dasm (-1.85 % of base)
         -92 : 48174.dasm (-1.81 % of base)
         -92 : 37854.dasm (-1.57 % of base)
         -92 : 41785.dasm (-2.41 % of base)
         -80 : 26973.dasm (-1.64 % of base)
         -76 : 29505.dasm (-0.67 % of base)
         -68 : 20901.dasm (-0.52 % of base)
         -64 : 22460.dasm (-1.81 % of base)
         -60 : 38433.dasm (-2.19 % of base)
         -60 : 30928.dasm (-3.17 % of base)
         -60 : 40776.dasm (-2.85 % of base)
         -56 : 19359.dasm (-0.76 % of base)

95 total files with Code Size differences (43 improved, 52 regressed), 20 unchanged.

Top method regressions (bytes):
         768 (3.99 % of base) : 46116.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         284 (5.33 % of base) : 2802.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
         224 (5.06 % of base) : 25142.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         176 (4.05 % of base) : 26011.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         160 (4.22 % of base) : 37361.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|199_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (Tier1)
         160 (3.46 % of base) : 26787.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         152 (0.47 % of base) : 20588.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         112 (2.16 % of base) : 37711.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         112 (8.86 % of base) : 5643.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Resize(int,ubyte):this (Tier1)
          92 (6.04 % of base) : 47424.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          76 (5.92 % of base) : 9529.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:PruneAnchorsImpl(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],uint,ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
          68 (2.23 % of base) : 29275.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
          64 (7.31 % of base) : 28546.dasm - (dynamicClass):WriteLoginViewModelToJson(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson,System.Runtime.Serialization.DataContracts.ClassDataContract,System.Xml.XmlDictionaryString[]) (FullOpts)
          64 (3.44 % of base) : 27988.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1)
          64 (15.84 % of base) : 39779.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDataFlowAnalysis:Normalize(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISymbol] (Tier1)
          64 (7.05 % of base) : 46896.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex12_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          64 (0.92 % of base) : 12698.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
          60 (5.08 % of base) : 20583.dasm - (dynamicClass):_DynamicMethod2(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerViewModel,int) (FullOpts)
          60 (1.54 % of base) : 44879.dasm - System.Numerics.BigIntegerCalculator:MultiplyFarLength(System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint]) (Tier0-FullOpts)
          56 (11.02 % of base) : 15612.dasm - (dynamicClass):.ctor(System.Object[]):MicroBenchmarks.Serializers.ClassRecord (FullOpts)

Top method improvements (bytes):
        -264 (-2.36 % of base) : 27360.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1-OSR)
        -164 (-0.44 % of base) : 41007.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        -144 (-4.44 % of base) : 31145.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -112 (-1.05 % of base) : 29371.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        -108 (-1.22 % of base) : 31147.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1)
        -108 (-5.28 % of base) : 40771.dasm - Benchstone.BenchI.Puzzle:DoIt():ubyte:this (Tier1-OSR)
        -108 (-1.01 % of base) : 45686.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1)
        -108 (-2.84 % of base) : 45684.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
         -92 (-1.81 % of base) : 48174.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier1)
         -92 (-1.85 % of base) : 48169.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier1-OSR)
         -92 (-2.41 % of base) : 41785.dasm - System.Text.RegularExpressions.RegexNode:CanBeMadeAtomic(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte,ubyte):ubyte (Tier1)
         -92 (-1.57 % of base) : 37854.dasm - System.Xml.Schema.XsdDuration:TryFormat(System.Span`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
         -80 (-1.64 % of base) : 26973.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         -76 (-0.67 % of base) : 29505.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
         -68 (-0.52 % of base) : 20901.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         -64 (-1.81 % of base) : 22460.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (Tier1-OSR)
         -60 (-2.85 % of base) : 40776.dasm - Benchstone.BenchI.Puzzle:DoIt():ubyte:this (Tier1)
         -60 (-2.19 % of base) : 38433.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -60 (-3.17 % of base) : 30928.dasm - System.Threading.Tests.Perf_CancellationToken:CreateManyRegisterMultipleDispose():this (Tier1-OSR)
         -56 (-0.76 % of base) : 19359.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)

Top method regressions (percentages):
          24 (18.75 % of base) : 3480.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          64 (15.84 % of base) : 39779.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDataFlowAnalysis:Normalize(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISymbol] (Tier1)
          20 (15.15 % of base) : 41819.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:SortFixedDistanceSetsByQuality(System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)
          20 (14.29 % of base) : 39781.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ISymbol] (Tier1)
          20 (13.16 % of base) : 37558.dasm - Microsoft.CodeAnalysis.MetadataHelpers:SplitQualifiedName(System.ReadOnlyMemory`1[ushort]):System.Collections.Immutable.ImmutableArray`1[System.ReadOnlyMemory`1[ushort]] (Tier1)
          24 (12.77 % of base) : 26304.dasm - System.Net.Sockets.Socket:IsWildcardEndPoint(System.Net.EndPoint):ubyte (Tier1)
          16 (12.12 % of base) : 5290.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+AwaitableSocketAsyncEventArgs:OnCompleted(System.Action):this (Tier1)
          20 (11.90 % of base) : 22970.dasm - System.Collections.Sort`1[int]:Array_Comparison():this (Tier1)
           8 (11.76 % of base) : 37481.dasm - System.Threading.Tasks.TaskReplicator+Replica:Wait():this (Tier1)
          20 (11.63 % of base) : 40577.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitRankSpecifiers(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Binder):this (Tier1)
          36 (11.54 % of base) : 40335.dasm - System.Reflection.Metadata.Ecma335.BlobHeap:.ctor(System.Reflection.Internal.MemoryBlock,int):this (Tier1)
          16 (11.43 % of base) : 19791.dasm - System.Threading.ThreadLocal`1[System.__Canon]:GetNewTableSize(int):int (Tier1)
          20 (11.36 % of base) : 39970.dasm - Microsoft.CodeAnalysis.CachingIdentityFactory`2[System.__Canon,ushort]:GetOrMakeValue(System.__Canon):ushort:this (Tier1)
          56 (11.02 % of base) : 15612.dasm - (dynamicClass):.ctor(System.Object[]):MicroBenchmarks.Serializers.ClassRecord (FullOpts)
          28 (10.94 % of base) : 6148.dasm - System.Collections.Generic.Dictionary`2+KeyCollection[System.__Canon,System.__Canon]:CopyTo(System.__Canon[],int):this (Tier1-OSR)
          20 (10.87 % of base) : 37011.dasm - Microsoft.CodeAnalysis.CommonMessageProvider:GetIdForErrorCode(int):System.String:this (Tier1)
          16 (10.53 % of base) : 41880.dasm - System.Threading.ManualResetEventSlim:Reset():this (Tier1)
          52 (10.24 % of base) : 39574.dasm - Microsoft.CodeAnalysis.SyntaxNode:DescendantNodesImpl(Microsoft.CodeAnalysis.Text.TextSpan,System.Func`2[Microsoft.CodeAnalysis.SyntaxNode,ubyte],ubyte,ubyte):System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.SyntaxNode]:this (Tier1)
          20 (10.20 % of base) : 37753.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:GroupByName(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol]):System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol]] (Tier1)
          40 (9.52 % of base) : 46054.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:CopyTo(System.Collections.Generic.KeyValuePair`2[BenchmarksGame.ByteString,System.__Canon][],int):this (Tier1)

Top method improvements (percentages):
         -12 (-13.04 % of base) : 8888.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
         -12 (-13.04 % of base) : 22830.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -12 (-13.04 % of base) : 8902.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
         -12 (-12.50 % of base) : 19753.dasm - (dynamicClass):NumSetter(System.Object,int) (FullOpts)
         -12 (-12.50 % of base) : 24372.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
         -12 (-11.54 % of base) : 19754.dasm - (dynamicClass):TextSetter(System.Object,System.String) (FullOpts)
         -12 (-9.09 % of base) : 5514.dasm - System.Threading.AsyncLocal`1[ubyte]:get_Value():ubyte:this (Tier1)
         -16 (-8.51 % of base) : 37695.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:MoveNext():ubyte:this (Tier1)
         -16 (-8.51 % of base) : 37530.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -16 (-8.33 % of base) : 3494.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
         -12 (-8.11 % of base) : 22371.dasm - EMFloat:normalize(byref) (Tier1)
         -16 (-7.84 % of base) : 6192.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
         -12 (-7.32 % of base) : 45305.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexThresholds:GetSymbolicRegexSafeSizeThreshold():int (Tier1)
         -12 (-6.98 % of base) : 29893.dasm - (dynamicClass):lambda_method6(System.Runtime.CompilerServices.Closure,System.Object,System.Object) (FullOpts)
         -12 (-6.82 % of base) : 5512.dasm - System.Runtime.Serialization.SerializationInfo:get_DeserializationInProgress():ubyte (Tier1)
         -16 (-6.56 % of base) : 39881.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowsInWalker:EnterRegion():this (Tier1)
         -12 (-6.52 % of base) : 38017.dasm - (dynamicClass):lambda_method19(System.Runtime.CompilerServices.Closure,System.Object,System.Object) (FullOpts)
         -12 (-6.25 % of base) : 46665.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjrefValueTypeObj():this (Tier1-OSR)
         -16 (-6.06 % of base) : 39851.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Analyze(byref,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (Tier1)
         -16 (-6.06 % of base) : 47750.dasm - NumericSortJagged:DoNumSortIteration(int[][],int,int):int (Tier1)


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: 506293844 (overridden on cmd)
Total bytes of diff: 504995056 (overridden on cmd)
Total bytes of delta: -1298788 (-0.26 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1480 : 539756.dasm (1.49 % of base)
        1360 : 539766.dasm (1.37 % of base)
        1172 : 538924.dasm (0.65 % of base)
        1168 : 538919.dasm (0.65 % of base)
        1156 : 545135.dasm (5.24 % of base)
        1156 : 539432.dasm (5.24 % of base)
        1040 : 539437.dasm (4.54 % of base)
         956 : 545137.dasm (4.15 % of base)
         952 : 545141.dasm (4.32 % of base)
         948 : 539447.dasm (4.30 % of base)
         904 : 539379.dasm (3.92 % of base)
         892 : 545124.dasm (3.86 % of base)
         892 : 539374.dasm (3.84 % of base)
         852 : 545121.dasm (3.69 % of base)
         748 : 545133.dasm (3.42 % of base)
         748 : 539427.dasm (3.42 % of base)
         732 : 504729.dasm (21.55 % of base)
         732 : 504732.dasm (21.55 % of base)
         688 : 602674.dasm (14.71 % of base)
         656 : 539384.dasm (3.09 % of base)

Top file improvements (bytes):
       -2140 : 586521.dasm (-11.09 % of base)
       -2048 : 587664.dasm (-11.19 % of base)
       -2016 : 565856.dasm (-11.17 % of base)
       -1944 : 559789.dasm (-10.28 % of base)
       -1904 : 561052.dasm (-10.74 % of base)
       -1860 : 563796.dasm (-9.91 % of base)
       -1836 : 586879.dasm (-10.28 % of base)
       -1828 : 586551.dasm (-9.70 % of base)
       -1824 : 586492.dasm (-9.83 % of base)
       -1792 : 560536.dasm (-9.75 % of base)
       -1780 : 561498.dasm (-9.48 % of base)
       -1776 : 561755.dasm (-9.59 % of base)
       -1760 : 561092.dasm (-9.63 % of base)
       -1756 : 560627.dasm (-9.74 % of base)
       -1752 : 560711.dasm (-9.61 % of base)
       -1740 : 586113.dasm (-8.65 % of base)
       -1724 : 584137.dasm (-12.49 % of base)
       -1712 : 584947.dasm (-12.28 % of base)
       -1708 : 564452.dasm (-10.08 % of base)
       -1704 : 587894.dasm (-6.44 % of base)

97 total files with Code Size differences (49 improved, 48 regressed), 20 unchanged.

Top method regressions (bytes):
        1480 (1.49 % of base) : 539756.dasm - u4div:TestEntryPoint():int (FullOpts)
        1360 (1.37 % of base) : 539766.dasm - u8div:TestEntryPoint():int (FullOpts)
        1172 (0.65 % of base) : 538924.dasm - decimalrem:TestEntryPoint():int (FullOpts)
        1168 (0.65 % of base) : 538919.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
        1156 (5.24 % of base) : 545135.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        1156 (5.24 % of base) : 539432.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        1040 (4.54 % of base) : 539437.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
         956 (4.15 % of base) : 545137.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
         952 (4.32 % of base) : 545141.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
         948 (4.30 % of base) : 539447.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
         904 (3.92 % of base) : 539379.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)
         892 (3.84 % of base) : 539374.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
         892 (3.86 % of base) : 545124.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)
         852 (3.69 % of base) : 545121.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
         748 (3.42 % of base) : 545133.dasm - r8NaNadd:TestEntryPoint():int (FullOpts)
         748 (3.42 % of base) : 539427.dasm - r8NaNadd:TestEntryPoint():int (FullOpts)
         732 (21.55 % of base) : 504729.dasm - VectorTest:TestEntryPoint():int (FullOpts)
         732 (21.55 % of base) : 504732.dasm - VectorTest:TestEntryPoint():int (FullOpts)
         688 (14.71 % of base) : 602674.dasm - Program:ExplicitlySizedStructTest():ubyte (FullOpts)
         656 (3.09 % of base) : 539384.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)

Top method improvements (bytes):
       -2140 (-11.09 % of base) : 586521.dasm - Generated911:CalliTest() (FullOpts)
       -2048 (-11.19 % of base) : 587664.dasm - Generated944:CalliTest() (FullOpts)
       -2016 (-11.17 % of base) : 565856.dasm - Generated1200:CalliTest() (FullOpts)
       -1944 (-10.28 % of base) : 559789.dasm - Generated1037:CalliTest() (FullOpts)
       -1904 (-10.74 % of base) : 561052.dasm - Generated1066:CalliTest() (FullOpts)
       -1860 (-9.91 % of base) : 563796.dasm - Generated1139:CalliTest() (FullOpts)
       -1836 (-10.28 % of base) : 586879.dasm - Generated921:CalliTest() (FullOpts)
       -1828 (-9.70 % of base) : 586551.dasm - Generated912:CalliTest() (FullOpts)
       -1824 (-9.83 % of base) : 586492.dasm - Generated911:MethodCallingTest() (FullOpts)
       -1792 (-9.75 % of base) : 560536.dasm - Generated1054:CalliTest() (FullOpts)
       -1780 (-9.48 % of base) : 561498.dasm - Generated1077:CalliTest() (FullOpts)
       -1776 (-9.59 % of base) : 561755.dasm - Generated1084:CalliTest() (FullOpts)
       -1760 (-9.63 % of base) : 561092.dasm - Generated1067:CalliTest() (FullOpts)
       -1756 (-9.74 % of base) : 560627.dasm - Generated1056:CalliTest() (FullOpts)
       -1752 (-9.61 % of base) : 560711.dasm - Generated1058:CalliTest() (FullOpts)
       -1740 (-8.65 % of base) : 586113.dasm - Generated899:CalliTest() (FullOpts)
       -1724 (-12.49 % of base) : 584137.dasm - Generated835:CalliTest() (FullOpts)
       -1712 (-12.28 % of base) : 584947.dasm - Generated862:CalliTest() (FullOpts)
       -1708 (-10.08 % of base) : 564452.dasm - Generated1157:CalliTest() (FullOpts)
       -1704 (-6.44 % of base) : 587894.dasm - Generated952:MethodCallingTest() (FullOpts)

Top method regressions (percentages):
          60 (46.88 % of base) : 546017.dasm - Bug426480:foo() (FullOpts)
         144 (42.35 % of base) : 540352.dasm - structinreg.Program1:test4(structinreg.Test4):int (FullOpts)
          76 (41.30 % of base) : 438282.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Byte:.cctor() (FullOpts)
          76 (41.30 % of base) : 438401.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__float:.cctor() (FullOpts)
          76 (41.30 % of base) : 438350.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Int32:.cctor() (FullOpts)
          76 (41.30 % of base) : 438265.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__SByte:.cctor() (FullOpts)
          76 (41.30 % of base) : 438333.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__UInt32:.cctor() (FullOpts)
          76 (41.30 % of base) : 464756.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__Byte:.cctor() (FullOpts)
          76 (41.30 % of base) : 464790.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__Int16:.cctor() (FullOpts)
          76 (41.30 % of base) : 464739.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__SByte:.cctor() (FullOpts)
          76 (41.30 % of base) : 464773.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__UInt16:.cctor() (FullOpts)
          36 (40.91 % of base) : 545783.dasm - Application:Display(int,System.String,int) (FullOpts)
          60 (37.50 % of base) : 438112.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx3Test__Byte:.cctor() (FullOpts)
          72 (37.50 % of base) : 438316.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Int16:.cctor() (FullOpts)
          72 (37.50 % of base) : 438384.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Int64:.cctor() (FullOpts)
          72 (37.50 % of base) : 438299.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__UInt16:.cctor() (FullOpts)
          72 (37.50 % of base) : 438367.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__UInt64:.cctor() (FullOpts)
          60 (37.50 % of base) : 464620.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx3Test__SByte:.cctor() (FullOpts)
          72 (37.50 % of base) : 464824.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__Int32:.cctor() (FullOpts)
          72 (37.50 % of base) : 464807.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__UInt32:.cctor() (FullOpts)

Top method improvements (percentages):
         -80 (-30.30 % of base) : 1597.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Instrumented Tier1)
         -24 (-24.00 % of base) : 312056.dasm - Test_b99969:DoSpoof() (Tier1-OSR)
         -36 (-21.95 % of base) : 500329.dasm - FunctionPtr:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 589888.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 592543.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 603883.dasm - Microsoft.Build.Logging.LoggerDescription:.cctor() (FullOpts)
          -8 (-20.00 % of base) : 392441.dasm - Internal.TypeSystem.ArrayType:get_Rank():int:this (Tier1)
          -8 (-20.00 % of base) : 400813.dasm - Internal.TypeSystem.ArrayType:get_Rank():int:this (Tier1)
          -8 (-20.00 % of base) : 434403.dasm - JIT.HardwareIntrinsics.Arm.Helpers:Max(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 434387.dasm - JIT.HardwareIntrinsics.Arm.Helpers:Max(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 434885.dasm - JIT.HardwareIntrinsics.Arm.Helpers:Min(short,short):short (FullOpts)
        -156 (-16.39 % of base) : 418325.dasm - filter2:f11() (FullOpts)
         -36 (-16.36 % of base) : 549890.dasm - TestClass:Method1(byref,byref,TestClass+S1,byref,TestClass+S1,byref):uint:this (FullOpts)
        -548 (-15.86 % of base) : 2169.dasm - System.Threading.ReaderWriterLockSlim:TryEnterWriteLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Instrumented Tier1)
         -12 (-15.79 % of base) : 503324.dasm - BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
         -12 (-15.79 % of base) : 266604.dasm - Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
         -84 (-15.44 % of base) : 419619.dasm - try2:f11() (FullOpts)
        -160 (-15.15 % of base) : 2180.dasm - System.Threading.ReaderWriterLockSlim:ExitWriteLock():this (Instrumented Tier1)
         -88 (-14.10 % of base) : 418189.dasm - catch2:f11() (FullOpts)
       -1644 (-13.93 % of base) : 589142.dasm - Generated995:CalliTest() (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: 63948516 (overridden on cmd)
Total bytes of diff: 63755576 (overridden on cmd)
Total bytes of delta: -192940 (-0.30 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         576 : 116947.dasm (1.84 % of base)
         576 : 45665.dasm (1.84 % of base)
         384 : 221475.dasm (10.49 % of base)
         344 : 47916.dasm (2.70 % of base)
         328 : 201042.dasm (6.02 % of base)
         312 : 220613.dasm (5.30 % of base)
         308 : 32084.dasm (5.44 % of base)
         296 : 215603.dasm (1.10 % of base)
         296 : 241682.dasm (2.77 % of base)
         264 : 226602.dasm (11.50 % of base)
         256 : 226722.dasm (2.75 % of base)
         248 : 7844.dasm (5.65 % of base)
         244 : 216298.dasm (6.62 % of base)
         220 : 264512.dasm (2.63 % of base)
         200 : 172958.dasm (5.92 % of base)
         192 : 146622.dasm (0.89 % of base)
         192 : 194629.dasm (8.71 % of base)
         192 : 587.dasm (8.71 % of base)
         188 : 173611.dasm (3.92 % of base)
         188 : 24643.dasm (3.09 % of base)

Top file improvements (bytes):
        -236 : 64954.dasm (-3.02 % of base)
        -216 : 91701.dasm (-0.57 % of base)
        -208 : 226297.dasm (-2.18 % of base)
        -208 : 222807.dasm (-10.86 % of base)
        -180 : 170242.dasm (-6.99 % of base)
        -176 : 105534.dasm (-9.05 % of base)
        -176 : 227342.dasm (-1.79 % of base)
        -168 : 226290.dasm (-2.47 % of base)
        -164 : 220233.dasm (-6.93 % of base)
        -160 : 50427.dasm (-8.21 % of base)
        -160 : 121105.dasm (-8.21 % of base)
        -144 : 105424.dasm (-6.53 % of base)
        -140 : 214464.dasm (-3.65 % of base)
        -132 : 240615.dasm (-5.78 % of base)
        -128 : 8637.dasm (-13.45 % of base)
        -128 : 201830.dasm (-13.45 % of base)
        -124 : 9.dasm (-14.09 % of base)
        -124 : 191840.dasm (-4.70 % of base)
        -124 : 221196.dasm (-4.70 % of base)
        -124 : 194201.dasm (-14.09 % of base)

95 total files with Code Size differences (51 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
         576 (1.84 % of base) : 116947.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         576 (1.84 % of base) : 45665.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         384 (10.49 % of base) : 221475.dasm - System.Data.XMLDiffLoader:ReadOldRowData(System.Data.DataSet,byref,byref,System.Xml.XmlReader):int:this (FullOpts)
         344 (2.70 % of base) : 47916.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
         328 (6.02 % of base) : 201042.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         312 (5.30 % of base) : 220613.dasm - System.Data.XSDSchema:LoadSchema(System.Xml.Schema.XmlSchemaSet,System.Data.DataSet):this (FullOpts)
         308 (5.44 % of base) : 32084.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
         296 (1.10 % of base) : 215603.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)
         296 (2.77 % of base) : 241682.dasm - System.Formats.Asn1.WellKnownOids:GetContents(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ubyte] (FullOpts)
         264 (11.50 % of base) : 226602.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         256 (2.75 % of base) : 226722.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
         248 (5.65 % of base) : 7844.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         244 (6.62 % of base) : 216298.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMostSpecific(System.Reflection.MethodBase,System.Reflection.MethodBase,int[],System.Object[],ubyte,int,int,System.Object[]):int:this (FullOpts)
         220 (2.63 % of base) : 264512.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)
         200 (5.92 % of base) : 172958.dasm - System.Xml.Schema.SchemaCollectionCompiler:Compile():this (FullOpts)
         192 (8.71 % of base) : 194629.dasm - Microsoft.Cci.FullMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         192 (8.71 % of base) : 587.dasm - Microsoft.Cci.FullMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         192 (0.89 % of base) : 146622.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         188 (3.09 % of base) : 24643.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this (FullOpts)
         188 (3.92 % of base) : 173611.dasm - System.Xml.Xsl.Xslt.QilGenerator:PrecompileProtoTemplatesHeaders():this (FullOpts)

Top method improvements (bytes):
        -236 (-3.02 % of base) : 64954.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref,int,ubyte):this (FullOpts)
        -216 (-0.57 % of base) : 91701.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -208 (-2.18 % of base) : 226297.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:.cctor() (FullOpts)
        -208 (-10.86 % of base) : 222807.dasm - System.ComponentModel.Composition.Hosting.ComposablePartExportProvider:Compose(System.ComponentModel.Composition.Hosting.CompositionBatch):this (FullOpts)
        -180 (-6.99 % of base) : 170242.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -176 (-9.05 % of base) : 105534.dasm - Microsoft.CodeAnalysis.VisualBasic.ObjectDisplay.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -176 (-1.79 % of base) : 227342.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -168 (-2.47 % of base) : 226290.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:.cctor() (FullOpts)
        -164 (-6.93 % of base) : 220233.dasm - System.Data.UnaryNode:EvalUnaryOp(int,System.Object):System.Object:this (FullOpts)
        -160 (-8.21 % of base) : 50427.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -160 (-8.21 % of base) : 121105.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -144 (-6.53 % of base) : 105424.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:ShadowBasedOnInferenceLevel(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],ubyte,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref,byref,byref) (FullOpts)
        -140 (-3.65 % of base) : 214464.dasm - System.Runtime.Serialization.ExtensionDataReader:MoveToText(System.Type,System.Runtime.Serialization.IDataNode,ubyte):ubyte:this (FullOpts)
        -132 (-5.78 % of base) : 240615.dasm - ILCompiler.Reflection.ReadyToRun.x86.InfoHdrDecoder:DecodeHeader(ubyte[],byref,int):ILCompiler.Reflection.ReadyToRun.x86.InfoHdrSmall (FullOpts)
        -128 (-13.45 % of base) : 8637.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (FullOpts)
        -128 (-13.45 % of base) : 201830.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (FullOpts)
        -124 (-14.09 % of base) : 9.dasm - Roslyn.Utilities.AssemblyUtilities:IdentifyMissingDependencies(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
        -124 (-14.09 % of base) : 194201.dasm - Roslyn.Utilities.AssemblyUtilities:IdentifyMissingDependencies(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
        -124 (-4.70 % of base) : 191840.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
        -124 (-4.70 % of base) : 221196.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)

Top method regressions (percentages):
          24 (30.00 % of base) : 259490.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
          24 (30.00 % of base) : 246787.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
          36 (22.50 % of base) : 33239.dasm - System.Runtime.Intrinsics.Vector512`1[byte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):byte (FullOpts)
          36 (22.50 % of base) : 33070.dasm - System.Runtime.Intrinsics.Vector512`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[int],System.Runtime.Intrinsics.Vector512`1[int]):int (FullOpts)
          36 (22.50 % of base) : 32996.dasm - System.Runtime.Intrinsics.Vector512`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):short (FullOpts)
          36 (22.50 % of base) : 32709.dasm - System.Runtime.Intrinsics.Vector512`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[ubyte],System.Runtime.Intrinsics.Vector512`1[ubyte]):ubyte (FullOpts)
          36 (22.50 % of base) : 33413.dasm - System.Runtime.Intrinsics.Vector512`1[uint]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[uint],System.Runtime.Intrinsics.Vector512`1[uint]):uint (FullOpts)
          36 (22.50 % of base) : 33355.dasm - System.Runtime.Intrinsics.Vector512`1[ushort]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]):ushort (FullOpts)
          20 (20.00 % of base) : 236248.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.__Canon[],int,int) (FullOpts)
          32 (19.05 % of base) : 218031.dasm - System.Data.SqlTypes.SqlDouble:CompareTo(System.Data.SqlTypes.SqlDouble):int:this (FullOpts)
          28 (18.92 % of base) : 5342.dasm - Microsoft.CodeAnalysis.Text.SourceHashAlgorithms:GetSourceHashAlgorithm(System.Guid):int (FullOpts)
          28 (18.92 % of base) : 199019.dasm - Microsoft.CodeAnalysis.Text.SourceHashAlgorithms:GetSourceHashAlgorithm(System.Guid):int (FullOpts)
          12 (17.65 % of base) : 180556.dasm - System.Net.Security.SafeCredentialReference:DisposeInternal():this (FullOpts)
          12 (16.67 % of base) : 179470.dasm - Internal.TypeSystem.Ecma.EcmaType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
          12 (16.67 % of base) : 86816.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeClass():Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
          40 (16.67 % of base) : 79700.dasm - Microsoft.FSharp.Collections.FSharpSet`1[System.__Canon]:Filter(Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,ubyte]):Microsoft.FSharp.Collections.FSharpSet`1[System.__Canon]:this (FullOpts)
          12 (16.67 % of base) : 243613.dasm - System.Diagnostics.Activity:get_TraceId():System.Diagnostics.ActivityTraceId:this (FullOpts)
          12 (16.67 % of base) : 230785.dasm - System.Diagnostics.TextWriterTraceListener:get_Writer():System.IO.TextWriter:this (FullOpts)
          16 (16.67 % of base) : 186098.dasm - System.Net.Http.HttpTelemetry:<OnEventCommand>b__50_4():double:this (FullOpts)
          16 (16.67 % of base) : 180521.dasm - System.Net.Security.NetSecurityTelemetry:<OnEventCommand>b__24_2():double:this (FullOpts)

Top method improvements (percentages):
         -24 (-30.00 % of base) : 224747.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
         -20 (-23.81 % of base) : 11030.dasm - Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[System.__Canon]:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 204152.dasm - Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[System.__Canon]:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 197256.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 3511.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 197262.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 3521.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 197276.dasm - Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 3537.dasm - Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 3566.dasm - Microsoft.CodeAnalysis.CommonModuleWellKnownAttributeData:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 197294.dasm - Microsoft.CodeAnalysis.CommonModuleWellKnownAttributeData:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 3590.dasm - Microsoft.CodeAnalysis.CommonPropertyEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 197308.dasm - Microsoft.CodeAnalysis.CommonPropertyEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 197322.dasm - Microsoft.CodeAnalysis.CommonTypeEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 3605.dasm - Microsoft.CodeAnalysis.CommonTypeEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -28 (-21.21 % of base) : 5225.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:<VisitInterpolatedStringHandlerCreation>g__pushLeftNodes|195_2(Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation]) (FullOpts)
         -28 (-21.21 % of base) : 198911.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:<VisitInterpolatedStringHandlerCreation>g__pushLeftNodes|197_2(Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation]) (FullOpts)
         -28 (-20.00 % of base) : 2472.dasm - Microsoft.CodeAnalysis.DocumentationCommentId:GetTotalTypeParameterCount(Microsoft.CodeAnalysis.INamedTypeSymbol):int (FullOpts)
         -28 (-20.00 % of base) : 196306.dasm - Microsoft.CodeAnalysis.DocumentationCommentId:GetTotalTypeParameterCount(Microsoft.CodeAnalysis.INamedTypeSymbol):int (FullOpts)
         -36 (-20.00 % of base) : 32938.dasm - System.Runtime.Intrinsics.Vector512`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[double],System.Runtime.Intrinsics.Vector512`1[double]):double (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: 80552460 (overridden on cmd)
Total bytes of diff: 80613388 (overridden on cmd)
Total bytes of delta: 60928 (0.08 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         740 : 102310.dasm (5.14 % of base)
         292 : 7509.dasm (4.61 % of base)
         232 : 72820.dasm (3.10 % of base)
         208 : 4780.dasm (1.98 % of base)
         208 : 275405.dasm (8.98 % of base)
         196 : 179178.dasm (1.82 % of base)
         188 : 275389.dasm (7.64 % of base)
         184 : 170745.dasm (10.11 % of base)
         184 : 169698.dasm (10.15 % of base)
         176 : 101293.dasm (3.00 % of base)
         172 : 242200.dasm (2.63 % of base)
         172 : 275409.dasm (3.91 % of base)
         164 : 78221.dasm (3.97 % of base)
         160 : 132724.dasm (2.96 % of base)
         160 : 211997.dasm (2.29 % of base)
         160 : 241481.dasm (2.87 % of base)
         156 : 132726.dasm (2.63 % of base)
         156 : 191894.dasm (2.10 % of base)
         156 : 20682.dasm (7.25 % of base)
         156 : 275027.dasm (7.25 % of base)

Top file improvements (bytes):
       -1172 : 127353.dasm (-11.87 % of base)
        -932 : 114000.dasm (-1.28 % of base)
        -748 : 139967.dasm (-1.87 % of base)
        -624 : 286699.dasm (-12.62 % of base)
        -568 : 116185.dasm (-1.84 % of base)
        -416 : 210513.dasm (-3.46 % of base)
        -332 : 79403.dasm (-3.12 % of base)
        -328 : 168629.dasm (-4.45 % of base)
        -328 : 77206.dasm (-0.97 % of base)
        -328 : 126841.dasm (-9.10 % of base)
        -320 : 27867.dasm (-9.28 % of base)
        -276 : 225789.dasm (-1.30 % of base)
        -272 : 38182.dasm (-1.28 % of base)
        -248 : 290321.dasm (-2.77 % of base)
        -236 : 312370.dasm (-1.00 % of base)
        -228 : 136861.dasm (-4.25 % of base)
        -224 : 176452.dasm (-2.71 % of base)
        -220 : 176945.dasm (-6.02 % of base)
        -220 : 307091.dasm (-2.61 % of base)
        -216 : 218427.dasm (-6.87 % of base)

84 total files with Code Size differences (42 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
         740 (5.14 % of base) : 102310.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         292 (4.61 % of base) : 7509.dasm - System.Number:NumberToStringFormat[ubyte](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         232 (3.10 % of base) : 72820.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAnonymousObjectCreation(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousObjectCreationExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         208 (1.98 % of base) : 4780.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         208 (8.98 % of base) : 275405.dasm - System.Numerics.Tensors.TensorPrimitives+TanOperatorSingle:Invoke(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
         196 (1.82 % of base) : 179178.dasm - Microsoft.Build.Evaluation.Preprocessor:CloneChildrenResolvingImports(System.Xml.XmlNode,System.Xml.XmlNode):this (FullOpts)
         188 (7.64 % of base) : 275389.dasm - System.Numerics.Tensors.TensorPrimitives+SinOperatorDouble:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         184 (10.15 % of base) : 169698.dasm - System.Xml.Schema.XmlSchemaException:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
         184 (10.11 % of base) : 170745.dasm - System.Xml.Xsl.XsltException:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
         176 (3.00 % of base) : 101293.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         172 (2.63 % of base) : 242200.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.InliningInfoNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         172 (3.91 % of base) : 275409.dasm - System.Numerics.Tensors.TensorPrimitives+TanOperatorDouble:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         164 (3.97 % of base) : 78221.dasm - Microsoft.CodeAnalysis.CSharp.MethodBodySynthesizer:MakeSubmissionInitialization(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.CSharpCompilation) (FullOpts)
         160 (2.87 % of base) : 241481.dasm - ILCompiler.PettisHansenSort.PettisHansen:Sort(System.Collections.Generic.List`1[ILCompiler.PettisHansenSort.CallGraphNode]):System.Collections.Generic.List`1[System.Collections.Generic.List`1[int]] (FullOpts)
         160 (2.96 % of base) : 132724.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BuildBoundLambdaParameters(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,Microsoft.CodeAnalysis.VisualBasic.UnboundLambda+TargetSignature,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol]:this (FullOpts)
         160 (2.29 % of base) : 211997.dasm - System.Security.Cryptography.CryptoConfig:get_DefaultNameHT():System.Collections.Generic.Dictionary`2[System.String,System.Object] (FullOpts)
         156 (2.10 % of base) : 191894.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
         156 (2.63 % of base) : 132726.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindLambdaBody(Microsoft.CodeAnalysis.VisualBasic.Symbols.LambdaSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.VisualBasic.BoundBlock:this (FullOpts)
         156 (7.25 % of base) : 275027.dasm - System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ubyte]:Invoke(System.Runtime.Intrinsics.Vector512`1[ubyte],System.Runtime.Intrinsics.Vector512`1[ubyte]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)
         156 (7.25 % of base) : 20682.dasm - System.Runtime.Intrinsics.Vector512:Divide[ubyte](System.Runtime.Intrinsics.Vector512`1[ubyte],System.Runtime.Intrinsics.Vector512`1[ubyte]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)

Top method improvements (bytes):
       -1172 (-11.87 % of base) : 127353.dasm - Microsoft.Diagnostics.Tracing.Parsers.AspNet.AspNetTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -932 (-1.28 % of base) : 114000.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -748 (-1.87 % of base) : 139967.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -624 (-12.62 % of base) : 286699.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
        -568 (-1.84 % of base) : 116185.dasm - Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -416 (-3.46 % of base) : 210513.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -332 (-3.12 % of base) : 79403.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
        -328 (-0.97 % of base) : 77206.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -328 (-9.10 % of base) : 126841.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -328 (-4.45 % of base) : 168629.dasm - System.Xml.Schema.DatatypeImplementation:.cctor() (FullOpts)
        -320 (-9.28 % of base) : 27867.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
        -276 (-1.30 % of base) : 225789.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -272 (-1.28 % of base) : 38182.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -248 (-2.77 % of base) : 290321.dasm - Program:Main(System.String[]):int (FullOpts)
        -236 (-1.00 % of base) : 312370.dasm - ILCompiler.Crossgen2RootCommand:.ctor(System.String[]):this (FullOpts)
        -228 (-4.25 % of base) : 136861.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:CheckInterfaceUnificationAndVariance(Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
        -224 (-2.71 % of base) : 176452.dasm - System.Xml.Serialization.XmlSerializationWriter:WriteTypedPrimitive(System.String,System.String,System.Object,ubyte):this (FullOpts)
        -220 (-2.61 % of base) : 307091.dasm - Microsoft.Quic.QUIC_STREAM_EVENT:ToString():System.String:this (FullOpts)
        -220 (-6.02 % of base) : 176945.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -216 (-6.87 % of base) : 218427.dasm - Newtonsoft.Json.JsonConvert:ToString(System.Object):System.String (FullOpts)

Top method regressions (percentages):
          44 (31.43 % of base) : 266799.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          36 (31.03 % of base) : 180995.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
         100 (29.41 % of base) : 275547.dasm - System.Numerics.Tensors.TensorPrimitives+RoundToEvenOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
          28 (29.17 % of base) : 183011.dasm - Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
          32 (25.81 % of base) : 220492.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_FullyTrusted():ubyte (FullOpts)
          68 (25.76 % of base) : 265458.dasm - System.ComponentModel.Composition.MetadataViewGenerator:GenerateFieldAssignmentFromLocalValue(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.FieldBuilder) (FullOpts)
          52 (24.53 % of base) : 201760.dasm - System.Net.Http.HttpClientHandler:get_DangerousAcceptAnyServerCertificateValidator():System.Func`5[System.Net.Http.HttpRequestMessage,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Chain,int,ubyte] (FullOpts)
          84 (24.42 % of base) : 170107.dasm - System.Xml.Schema.XmlSchemaValidator:AddXsiAttributes(System.Collections.ArrayList):this (FullOpts)
          16 (23.53 % of base) : 308687.dasm - System.Reflection.TypeLoading.RoConstructor:GetMethodImplementationFlags():int:this (FullOpts)
          16 (23.53 % of base) : 300448.dasm - System.Reflection.TypeLoading.RoConstructor:GetMethodImplementationFlags():int:this (FullOpts)
          20 (22.73 % of base) : 215406.dasm - Microsoft.Build.Framework.ChangeWaves:set_ConversionState(int) (FullOpts)
          20 (22.73 % of base) : 294288.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.__Canon[],int,int) (FullOpts)
          44 (22.00 % of base) : 41999.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:IsBooleanLogicalNot(Microsoft.CodeAnalysis.Operations.IUnaryOperation):ubyte (FullOpts)
          44 (22.00 % of base) : 229456.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:IsBooleanLogicalNot(Microsoft.CodeAnalysis.Operations.IUnaryOperation):ubyte (FullOpts)
          80 (21.98 % of base) : 140977.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:get_LinkedAssembliesDebugInfo():System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
          76 (21.35 % of base) : 134716.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor:.ctor(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeField],Microsoft.CodeAnalysis.Location,ubyte):this (FullOpts)
          16 (21.05 % of base) : 308684.dasm - System.Reflection.TypeLoading.RoConstructor:get_Attributes():int:this (FullOpts)
          16 (21.05 % of base) : 309008.dasm - System.Reflection.TypeLoading.RoFatMethodParameter:get_Attributes():int:this (FullOpts)
          16 (21.05 % of base) : 301000.dasm - System.Reflection.TypeLoading.RoGenericParameterType:get_GenericParameterPosition():int:this (FullOpts)
          16 (21.05 % of base) : 308952.dasm - System.Reflection.TypeLoading.RoMethod:get_Attributes():int:this (FullOpts)

Top method improvements (percentages):
         -40 (-23.81 % of base) : 230137.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
         -40 (-23.81 % of base) : 42705.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 192068.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 178436.dasm - Microsoft.Build.Logging.LoggerDescription:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 136365.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.CustomEventAccessorSymbol:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 35730.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 223647.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 304779.dasm - System.Net.CommandStream:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 268202.dasm - System.Net.Mail.CheckCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 268207.dasm - System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 15587.dasm - System.Threading._ThreadPoolWaitOrTimerCallback:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 288338.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
         -32 (-20.00 % of base) : 26354.dasm - System.Runtime.CompilerServices.YieldAwaitable+YieldAwaiter:.cctor() (FullOpts)
         -20 (-16.67 % of base) : 252141.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
         -20 (-16.67 % of base) : 267853.dasm - System.Net.LazyAsyncResult:get_Result():System.Object:this (FullOpts)
         -20 (-16.67 % of base) : 270318.dasm - System.Net.LazyAsyncResult:get_Result():System.Object:this (FullOpts)
         -20 (-16.67 % of base) : 303472.dasm - System.Reflection.Emit.PropertyBuilderImpl:GetConstantValue():System.Object:this (FullOpts)
         -36 (-16.36 % of base) : 165502.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
         -20 (-16.13 % of base) : 39969.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-16.13 % of base) : 227477.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData: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: 311987272 (overridden on cmd)
Total bytes of diff: 311984364 (overridden on cmd)
Total bytes of delta: -2908 (-0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        1600 : 373820.dasm (12.56 % of base)
        1172 : 375793.dasm (7.04 % of base)
        1052 : 599020.dasm (5.38 % of base)
         800 : 58177.dasm (4.00 % of base)
         636 : 69172.dasm (3.97 % of base)
         548 : 558898.dasm (4.58 % of base)
         540 : 156182.dasm (2.35 % of base)
         532 : 602461.dasm (3.12 % of base)
         492 : 457275.dasm (2.80 % of base)
         484 : 292697.dasm (4.95 % of base)
         484 : 120744.dasm (3.41 % of base)
         480 : 146353.dasm (3.48 % of base)
         476 : 610236.dasm (3.32 % of base)
         472 : 189507.dasm (3.33 % of base)
         472 : 117174.dasm (3.33 % of base)
         472 : 410123.dasm (3.33 % of base)
         472 : 435332.dasm (3.33 % of base)
         472 : 613026.dasm (3.33 % of base)
         464 : 35951.dasm (3.95 % of base)
         460 : 320456.dasm (3.30 % of base)

Top file improvements (bytes):
        -848 : 119091.dasm (-16.88 % of base)
        -644 : 87985.dasm (-6.88 % of base)
        -576 : 352945.dasm (-6.79 % of base)
        -564 : 157753.dasm (-4.25 % of base)
        -524 : 38389.dasm (-15.52 % of base)
        -364 : 39089.dasm (-4.33 % of base)
        -356 : 568798.dasm (-2.62 % of base)
        -352 : 629962.dasm (-5.91 % of base)
        -352 : 630022.dasm (-5.90 % of base)
        -340 : 227710.dasm (-13.02 % of base)
        -328 : 621821.dasm (-2.27 % of base)
        -324 : 399576.dasm (-6.26 % of base)
        -320 : 28151.dasm (-12.12 % of base)
        -292 : 55402.dasm (-4.72 % of base)
        -284 : 81679.dasm (-4.59 % of base)
        -280 : 311917.dasm (-4.91 % of base)
        -280 : 399574.dasm (-2.98 % of base)
        -276 : 345157.dasm (-2.78 % of base)
        -264 : 327905.dasm (-2.24 % of base)
        -256 : 62497.dasm (-2.42 % of base)

95 total files with Code Size differences (55 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
        1600 (12.56 % of base) : 373820.dasm - System.Xml.XmlLoader:LoadNode(ubyte):System.Xml.XmlNode:this (Tier1-OSR)
        1172 (7.04 % of base) : 375793.dasm - XPathTests.Common.Utils:XPathNodesetTest(int,System.String,System.String,XPathTests.Common.XPathResult,System.Xml.XmlNamespaceManager,System.String) (Tier1)
        1052 (5.38 % of base) : 599020.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitBinaryLogicalOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (Tier1)
         800 (4.00 % of base) : 58177.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)
         636 (3.97 % of base) : 69172.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)
         548 (4.58 % of base) : 558898.dasm - Xunit.Sdk.TypeUtility:ResolveGenericTypes(Xunit.Abstractions.IMethodInfo,System.Object[]):Xunit.Abstractions.ITypeInfo[] (Tier1)
         540 (2.35 % of base) : 156182.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
         532 (3.12 % of base) : 602461.dasm - Microsoft.Cci.MetadataWriter:PopulateTypeDefTableRows():this (Tier1)
         492 (2.80 % of base) : 457275.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:Write(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo):this (Tier1)
         484 (3.41 % of base) : 120744.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         484 (4.95 % of base) : 292697.dasm - Xunit.Sdk.TypeUtility:ResolveGenericTypes(Xunit.Abstractions.IMethodInfo,System.Object[]):Xunit.Abstractions.ITypeInfo[] (Tier1)
         480 (3.48 % of base) : 146353.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         476 (3.32 % of base) : 610236.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         472 (3.33 % of base) : 189507.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         472 (3.33 % of base) : 117174.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         472 (3.33 % of base) : 410123.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         472 (3.33 % of base) : 435332.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         472 (3.33 % of base) : 613026.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         464 (3.95 % of base) : 35951.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)
         460 (3.30 % of base) : 320456.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (bytes):
        -848 (-16.88 % of base) : 119091.dasm - System.Linq.Expressions.Expression:Lambda[System.__Canon](System.Linq.Expressions.Expression,System.String,ubyte,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.ParameterExpression]):System.Linq.Expressions.Expression`1[System.__Canon] (Tier1)
        -644 (-6.88 % of base) : 87985.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeWellKnownAttributeImpl(byref):this (Tier1)
        -576 (-6.79 % of base) : 352945.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized128|235_1[uint,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[uint],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[uint],uint]](byref,uint,byref,ulong) (Tier1)
        -564 (-4.25 % of base) : 157753.dasm - Microsoft.Extensions.Options.Generators.SymbolLoader:TryLoad(Microsoft.CodeAnalysis.Compilation,byref):ubyte (Tier1)
        -524 (-15.52 % of base) : 38389.dasm - System.Threading.ReaderWriterLockSlim:TryEnterWriteLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Instrumented Tier1)
        -364 (-4.33 % of base) : 39089.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Instrumented Tier1)
        -356 (-2.62 % of base) : 568798.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1-OSR)
        -352 (-5.91 % of base) : 629962.dasm - System.Xml.XmlDiff.XmlDiffDocument:ReadChildNodes(System.Xml.XmlDiff.XmlDiffNode,System.Xml.XmlReader,System.Xml.XmlDiff.PositionInfo):this (Tier1-OSR)
        -352 (-5.90 % of base) : 630022.dasm - System.Xml.XmlDiff.XmlDiffDocument:ReadChildNodes(System.Xml.XmlDiff.XmlDiffNode,System.Xml.XmlReader,System.Xml.XmlDiff.PositionInfo):this (Tier1-OSR)
        -340 (-13.02 % of base) : 227710.dasm - System.Threading.ReaderWriterLockSlim:TryEnterUpgradeableReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Instrumented Tier1)
        -328 (-2.27 % of base) : 621821.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1)
        -324 (-6.26 % of base) : 399576.dasm - System.Xml.Tests.TCReadSubtree:DisposingSubtreeReaderThatIsInErrorStateWorksProperly():int:this (Tier1)
        -320 (-12.12 % of base) : 28151.dasm - System.Threading.ReaderWriterLockSlim:TryEnterReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Instrumented Tier1)
        -292 (-4.72 % of base) : 55402.dasm - Microsoft.CodeAnalysis.SolutionCompilationState:AddDocumentsToMultipleProjects[System.__Canon](System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]],System.Func`3[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.ValueTuple`2[System.__Canon,System.__Canon]]):Microsoft.CodeAnalysis.SolutionCompilationState:this (Tier1)
        -284 (-4.59 % of base) : 81679.dasm - Microsoft.CodeAnalysis.SolutionCompilationState:AddDocumentsToMultipleProjects[System.__Canon](System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]],System.Func`3[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.ValueTuple`2[System.__Canon,System.__Canon]]):Microsoft.CodeAnalysis.SolutionCompilationState:this (Tier1)
        -280 (-4.91 % of base) : 311917.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HM_S_D(byref,ubyte,byref):ubyte (Instrumented Tier1)
        -280 (-2.98 % of base) : 399574.dasm - System.Xml.Tests.TCReadSubtree:XmlReaderNameIsConsistentWhenReadingNamespaceNodeAttribute():int:this (Tier1)
        -276 (-2.78 % of base) : 345157.dasm - System.IO.Tests.ConnectedStreamConformanceTests+<Timeout_Roundtrips>d__48:MoveNext():this (Tier1)
        -264 (-2.24 % of base) : 327905.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1)
        -256 (-2.42 % of base) : 62497.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeWellKnownAttributeAppliedToMethod(byref):this (Tier1)

Top method regressions (percentages):
          20 (45.45 % of base) : 51895.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
          20 (45.45 % of base) : 585174.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
          20 (45.45 % of base) : 82272.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
          16 (28.57 % of base) : 82230.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsTypeDeclaration(ushort):ubyte (Tier1)
          80 (28.17 % of base) : 242467.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          80 (28.17 % of base) : 242563.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 97336.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 98152.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 98193.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 98236.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 98239.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 98240.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 98171.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 98180.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (27.63 % of base) : 98241.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          12 (27.27 % of base) : 154362.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsStartOfPropertyBody(ushort):ubyte (Tier1)
          96 (26.09 % of base) : 246151.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object,System.Object):System.Object (FullOpts)
          84 (25.93 % of base) : 97383.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (25.61 % of base) : 248353.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.overload.overload19c.overload19c.Derived,System.Object,System.Object):System.Object (FullOpts)
          88 (25.29 % of base) : 247972.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.formalParameter.Methods.method007.method007.Test+MyClass,System.Object,System.Object) (FullOpts)

Top method improvements (percentages):
         -96 (-40.00 % of base) : 235162.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -96 (-40.00 % of base) : 583247.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -80 (-30.30 % of base) : 37427.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Instrumented Tier1)
         -44 (-23.40 % of base) : 375587.dasm - MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
        -104 (-22.81 % of base) : 65191.dasm - Microsoft.Interop.UnitTests.Verifiers.CSharpSourceGeneratorVerifier`1+Test[System.__Canon]:CreateCompilationWithAnalyzers(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.AnalyzerOptions,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:this (Tier1)
         -88 (-21.36 % of base) : 155994.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols[System.__Canon](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
         -88 (-21.36 % of base) : 586384.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols[System.__Canon](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
         -80 (-20.20 % of base) : 177802.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
          -8 (-20.00 % of base) : 352561.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
          -8 (-20.00 % of base) : 352764.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
          -8 (-20.00 % of base) : 352580.dasm - System.Int16:Max(short,short):short (Instrumented Tier1)
          -8 (-20.00 % of base) : 349975.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)
          -8 (-20.00 % of base) : 352373.dasm - System.Int16:Min(short,short):short (Tier1)
          -8 (-20.00 % of base) : 358871.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (Tier1)
          -8 (-20.00 % of base) : 352377.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
          -8 (-20.00 % of base) : 393818.dasm - System.Xml.Schema.XmlSchemaAny:get_ProcessContentsCorrect():int:this (Tier1)
         -88 (-19.13 % of base) : 558159.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreatePropertyGetter[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
          -8 (-18.18 % of base) : 61496.dasm - Microsoft.CodeAnalysis.TypeLayout:get_Kind():int:this (Tier1)
         -68 (-17.53 % of base) : 583933.dasm - System.Reflection.PortableExecutable.PEReader:GetMetadataBlock():System.Reflection.Internal.AbstractMemoryBlock:this (Tier1)
        -848 (-16.88 % of base) : 119091.dasm - System.Linq.Expressions.Expression:Lambda[System.__Canon](System.Linq.Expressions.Expression,System.String,ubyte,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.ParameterExpression]):System.Linq.Expressions.Expression`1[System.__Canon] (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: 159439412 (overridden on cmd)
Total bytes of diff: 159877348 (overridden on cmd)
Total bytes of delta: 437936 (0.27 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1788 : 60716.dasm (2.04 % of base)
         908 : 44150.dasm (6.60 % of base)
         828 : 60895.dasm (0.96 % of base)
         828 : 60557.dasm (0.96 % of base)
         804 : 49397.dasm (5.74 % of base)
         792 : 7586.dasm (5.53 % of base)
         792 : 202232.dasm (11.22 % of base)
         740 : 176028.dasm (6.87 % of base)
         620 : 60740.dasm (1.63 % of base)
         612 : 90899.dasm (5.27 % of base)
         608 : 208995.dasm (7.63 % of base)
         608 : 203766.dasm (7.63 % of base)
         600 : 173985.dasm (7.69 % of base)
         596 : 60385.dasm (1.53 % of base)
         588 : 60319.dasm (1.68 % of base)
         576 : 172987.dasm (3.32 % of base)
         548 : 94392.dasm (4.32 % of base)
         520 : 202328.dasm (7.15 % of base)
         424 : 208676.dasm (5.81 % of base)
         400 : 17203.dasm (2.99 % of base)

Top file improvements (bytes):
       -1328 : 197748.dasm (-5.13 % of base)
        -856 : 181087.dasm (-7.19 % of base)
        -668 : 19054.dasm (-1.31 % of base)
        -656 : 165599.dasm (-3.94 % of base)
        -624 : 148576.dasm (-12.62 % of base)
        -624 : 165830.dasm (-4.30 % of base)
        -576 : 236004.dasm (-1.03 % of base)
        -576 : 241294.dasm (-1.07 % of base)
        -576 : 246645.dasm (-1.03 % of base)
        -576 : 246681.dasm (-1.03 % of base)
        -576 : 234834.dasm (-1.03 % of base)
        -576 : 231646.dasm (-1.03 % of base)
        -576 : 244627.dasm (-1.03 % of base)
        -576 : 247587.dasm (-1.03 % of base)
        -576 : 233335.dasm (-1.03 % of base)
        -576 : 246075.dasm (-1.03 % of base)
        -576 : 246105.dasm (-1.06 % of base)
        -564 : 235719.dasm (-1.00 % of base)
        -564 : 242418.dasm (-1.00 % of base)
        -532 : 150826.dasm (-4.33 % of base)

85 total files with Code Size differences (43 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
        1788 (2.04 % of base) : 60716.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<OrObject_TestData>d__90:MoveNext():ubyte:this (FullOpts)
         908 (6.60 % of base) : 44150.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         828 (0.96 % of base) : 60557.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<AndObject_TestData>d__13:MoveNext():ubyte:this (FullOpts)
         828 (0.96 % of base) : 60895.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<XorObject_TestData>d__116:MoveNext():ubyte:this (FullOpts)
         804 (5.74 % of base) : 49397.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         792 (5.53 % of base) : 7586.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         792 (11.22 % of base) : 202232.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[System.UInt128](System.UInt128,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         740 (6.87 % of base) : 176028.dasm - System.Reflection.Emit.Tests.CustomAttributeBuilderTests:Ctor_AllPrimitives() (FullOpts)
         620 (1.63 % of base) : 60740.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<SubtractObject_TestData>d__109:MoveNext():ubyte:this (FullOpts)
         612 (5.27 % of base) : 90899.dasm - System.Data.Tests.DataColumnCollectionTest:Add():this (FullOpts)
         608 (7.63 % of base) : 208995.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[byte](byte,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         608 (7.63 % of base) : 203766.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[short](short,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         600 (7.69 % of base) : 173985.dasm - System.Xml.Tests.TCReadToDescendant:AddChildren():this (FullOpts)
         596 (1.53 % of base) : 60385.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<MultiplyObject_Idempotent_TestData>d__60:MoveNext():ubyte:this (FullOpts)
         588 (1.68 % of base) : 60319.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<DivideObject_TestData>d__27:MoveNext():ubyte:this (FullOpts)
         576 (3.32 % of base) : 172987.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (FullOpts)
         548 (4.32 % of base) : 94392.dasm - System.Data.Tests.DataTableTest2:GetChanges_ByDataRowState():this (FullOpts)
         520 (7.15 % of base) : 202328.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[int](int,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         424 (5.81 % of base) : 208676.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[uint](uint,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         400 (2.99 % of base) : 17203.dasm - System.IO.Tests.StreamConformanceTests+<ValidateMisuseExceptionsAsync>d__50:MoveNext():this (FullOpts)

Top method improvements (bytes):
       -1328 (-5.13 % of base) : 197748.dasm - System.Tests.ArrayTests+<Sort_Array_Array_Generic_TestData>d__173:MoveNext():ubyte:this (FullOpts)
        -856 (-7.19 % of base) : 181087.dasm - System.Reflection.Tests.FieldTests:TestLiteralFields1() (FullOpts)
        -668 (-1.31 % of base) : 19054.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (FullOpts)
        -656 (-3.94 % of base) : 165599.dasm - XPathTests.FunctionalTests.Location.Paths.AxesCombinationsTests:AxesCombinationsTest291(int) (FullOpts)
        -624 (-12.62 % of base) : 148576.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
        -624 (-4.30 % of base) : 165830.dasm - XPathTests.FunctionalTests.Location.Paths.AxesTests:AxesTest1206(int) (FullOpts)
        -576 (-1.03 % of base) : 247587.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.03 % of base) : 234834.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.03 % of base) : 236004.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Default+ExtensionDataTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.03 % of base) : 244627.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Metadata+ExtensionDataTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.07 % of base) : 241294.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.03 % of base) : 231646.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Metadata+PropertyNameTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.03 % of base) : 233335.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Default+PropertyVisibilityTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.06 % of base) : 246105.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.03 % of base) : 246681.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.03 % of base) : 246075.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -576 (-1.03 % of base) : 246645.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -564 (-1.00 % of base) : 235719.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -564 (-1.00 % of base) : 242418.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Metadata+PropertyVisibilityTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -532 (-4.33 % of base) : 150826.dasm - System.Net.Primitives.Functional.Tests.IPAddressParsingFormatting:.cctor() (FullOpts)

Top method regressions (percentages):
          36 (34.62 % of base) : 40106.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          48 (30.77 % of base) : 34260.dasm - Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)
          28 (30.43 % of base) : 103718.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
          24 (30.00 % of base) : 161242.dasm - System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b__17_0():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
          80 (29.85 % of base) : 101420.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          80 (29.85 % of base) : 103032.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 105995.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.nested01b.nested01b.Test:Bar2(System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 109792.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.nested05c.nested05c.Test:Bar1(System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 109797.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.nested05c.nested05c.Test:Bar3(System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 109824.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04a.order04a.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 109823.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04a.order04a.Test:Bar2():System.Object (FullOpts)
          20 (29.41 % of base) : 110741.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04b.order04b.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 110739.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04b.order04b.Test:Bar2():System.Object (FullOpts)
          20 (29.41 % of base) : 107970.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05a.order05a.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 107969.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05a.order05a.Test:Bar3():System.Object (FullOpts)
          20 (29.41 % of base) : 103535.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05b.order05b.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 103534.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05b.order05b.Test:Bar3():System.Object (FullOpts)
          48 (27.27 % of base) : 151309.dasm - System.Net.Primitives.Functional.Tests.IPAddressTest:GetValidIPAddresses():System.Collections.Generic.IEnumerable`1[System.Object[]] (FullOpts)
          44 (26.83 % of base) : 174637.dasm - System.Xml.Tests.TCXMLIntegrityBase:HelperThisNameNamespace():int:this (FullOpts)
          52 (26.53 % of base) : 133004.dasm - System.Linq.Parallel.Tests.SelectSelectManyTests+<>c:<SelectMany_ArgumentNullException>b__53_4():System.Object:this (FullOpts)

Top method improvements (percentages):
         -40 (-23.81 % of base) : 8491.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 149602.dasm - System.Net.Mail.CheckCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 149587.dasm - System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 155593.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
          -8 (-20.00 % of base) : 157640.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 157922.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 157192.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
          -8 (-20.00 % of base) : 156686.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
          -8 (-20.00 % of base) : 157796.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
          -8 (-20.00 % of base) : 157905.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
        -332 (-17.18 % of base) : 99485.dasm - BasicEventSourceTests.TestUtilities:CheckNoEventSourcesRunning(System.String) (FullOpts)
        -120 (-17.05 % of base) : 22326.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
         -36 (-16.36 % of base) : 174685.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
         -12 (-15.79 % of base) : 48137.dasm - Microsoft.CodeAnalysis.Options.Option2`1[ubyte]:get_DefaultValue():ubyte:this (FullOpts)
         -12 (-15.79 % of base) : 48141.dasm - Microsoft.CodeAnalysis.Options.PerLanguageOption2`1[ubyte]:get_DefaultValue():ubyte:this (FullOpts)
         -12 (-15.79 % of base) : 140228.dasm - System.Linq.Tests.OrderByTests+<>c:<LastOnOrderedMatchingCases>b__30_0(System.Object):int:this (FullOpts)
         -12 (-15.79 % of base) : 231749.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default+<>c:<DictionaryEntryPropInit>b__125_0(System.Object):System.Object:this (FullOpts)
         -12 (-15.79 % of base) : 230185.dasm - System.Text.Json.SourceGeneration.Tests.MetadataAndSerializationContext+<>c:<StructWithCustomConverterPropertyPropInit>b__326_0(System.Object):System.Text.Json.SourceGeneration.Tests.ClassWithCustomConverterProperty+NestedPoco:this (FullOpts)
         -12 (-15.79 % of base) : 232337.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Default+PropertyVisibilityTestsContext_Default+<>c:<Point_2D_StructPropInit>b__296_0(System.Object):int:this (FullOpts)
         -12 (-15.79 % of base) : 232681.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata+<>c:<EmployeeStructPropInit>b__668_0(System.Object):System.String: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: 15016556 (overridden on cmd)
Total bytes of diff: 15019156 (overridden on cmd)
Total bytes of delta: 2600 (0.02 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         528 : 1182.dasm (11.68 % of base)
         420 : 18460.dasm (2.95 % of base)
         408 : 12083.dasm (7.57 % of base)
         388 : 12084.dasm (7.23 % of base)
         300 : 1442.dasm (15.96 % of base)
         284 : 1024.dasm (5.33 % of base)
         232 : 24780.dasm (8.59 % of base)
         232 : 12574.dasm (2.67 % of base)
         228 : 12085.dasm (6.96 % of base)
         208 : 30993.dasm (1.98 % of base)
         180 : 13526.dasm (4.81 % of base)
         176 : 18872.dasm (2.52 % of base)
         176 : 2495.dasm (2.20 % of base)
         176 : 17221.dasm (3.11 % of base)
         168 : 12099.dasm (4.81 % of base)
         168 : 1494.dasm (10.66 % of base)
         144 : 1309.dasm (2.51 % of base)
         136 : 5877.dasm (0.13 % of base)
         116 : 2918.dasm (1.45 % of base)
         112 : 5401.dasm (1.94 % of base)

Top file improvements (bytes):
        -924 : 30208.dasm (-0.51 % of base)
        -764 : 7061.dasm (-10.11 % of base)
        -748 : 4554.dasm (-1.99 % of base)
        -696 : 29894.dasm (-8.67 % of base)
        -548 : 12484.dasm (-3.47 % of base)
        -356 : 2639.dasm (-3.73 % of base)
        -336 : 14164.dasm (-1.01 % of base)
        -264 : 28854.dasm (-1.77 % of base)
        -264 : 29994.dasm (-3.10 % of base)
        -244 : 29524.dasm (-4.56 % of base)
        -240 : 23358.dasm (-2.28 % of base)
        -232 : 28052.dasm (-2.19 % of base)
        -228 : 29148.dasm (-3.50 % of base)
        -224 : 3276.dasm (-4.69 % of base)
        -204 : 16919.dasm (-1.60 % of base)
        -180 : 1782.dasm (-8.06 % of base)
        -168 : 2987.dasm (-1.60 % of base)
        -156 : 1523.dasm (-0.90 % of base)
        -152 : 29886.dasm (-0.86 % of base)
        -144 : 31375.dasm (-9.78 % of base)

93 total files with Code Size differences (51 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
         528 (11.68 % of base) : 1182.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CapsuleTriangleTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         420 (2.95 % of base) : 18460.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         408 (7.57 % of base) : 12083.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessBorderColumn(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
         388 (7.23 % of base) : 12084.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessBorderRow(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
         300 (15.96 % of base) : 1442.dasm - BepuPhysics.Constraints.TwoBodyTypeProcessor`7[BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.Constraints.Contact.Contact1Functions,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose]:Solve(byref,BepuPhysics.Bodies,float,float,int,int):this (FullOpts)
         284 (5.33 % of base) : 1024.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         232 (2.67 % of base) : 12574.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
         232 (8.59 % of base) : 24780.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         228 (6.96 % of base) : 12085.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessCornerTile(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
         208 (1.98 % of base) : 30993.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         180 (4.81 % of base) : 13526.dasm - Microsoft.ML.Transforms.NormalizingTransformer:Train(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.IDataView,Microsoft.ML.Transforms.NormalizingEstimator+ColumnOptionsBase[]):Microsoft.ML.Transforms.NormalizingTransformer (FullOpts)
         176 (2.20 % of base) : 2495.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
         176 (3.11 % of base) : 17221.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         176 (2.52 % of base) : 18872.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator:GetTypeAndRefKind(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator+TypeAndRefKind:this (FullOpts)
         168 (10.66 % of base) : 1494.dasm - BepuPhysics.Constraints.OneBodyTypeProcessor`5[BepuPhysics.Constraints.Contact.Contact1OneBodyPrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.Constraints.Contact.Contact1OneBodyFunctions,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose]:Solve(byref,BepuPhysics.Bodies,float,float,int,int):this (FullOpts)
         168 (4.81 % of base) : 12099.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Bottom(byref,int,System.ReadOnlySpan`1[SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32]]):SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32] (FullOpts)
         144 (2.51 % of base) : 1309.dasm - BepuPhysics.IslandAwakener:PrepareJobs(byref,ubyte,int):System.ValueTuple`2[int,int]:this (FullOpts)
         136 (0.13 % of base) : 5877.dasm - FSharp.Compiler.TcGlobals+TcGlobals:.ctor(ubyte,FSharp.Compiler.AbstractIL.IL+ILGlobals,FSharp.Compiler.TypedTree+CcuThunk,System.String,ubyte,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+CcuThunk]]],ubyte,ubyte,Internal.Utilities.PathMap,FSharp.Compiler.Features+LanguageVersion):this (FullOpts)
         116 (1.45 % of base) : 2918.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
         112 (1.94 % of base) : 5401.dasm - FSharp.Compiler.TypedTreePickle:unpickleObjWithDanglingCcus[System.__Canon](System.String,FSharp.Compiler.AbstractIL.IL+ILScopeRef,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.IL+ILModuleDef],Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],FSharp.Compiler.IO.ReadOnlyByteMemory):FSharp.Compiler.TypedTreePickle+PickledDataWithReferences`1[System.__Canon] (FullOpts)

Top method improvements (bytes):
        -924 (-0.51 % of base) : 30208.dasm - System.Management.Automation.Runspaces.TypeTable:Process_Types_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
        -764 (-10.11 % of base) : 7061.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.AsciiLexer:.cctor() (FullOpts)
        -748 (-1.99 % of base) : 4554.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Lexer:.cctor() (FullOpts)
        -696 (-8.67 % of base) : 29894.dasm - System.Management.Automation.Runspaces.PSSnapInHelpers:InitializeCoreCmdletsAndProviders(System.Management.Automation.PSSnapInInfo,byref,byref,System.String) (FullOpts)
        -548 (-3.47 % of base) : 12484.dasm - Microsoft.ML.Data.Conversion.Conversions:.ctor():this (FullOpts)
        -356 (-3.73 % of base) : 2639.dasm - FSharp.Compiler.CompilerOptions:internalFlags(FSharp.Compiler.CompilerConfig+TcConfigBuilder):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOption] (FullOpts)
        -336 (-1.01 % of base) : 14164.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -264 (-1.77 % of base) : 28854.dasm - System.Management.Automation.Language.CachedReflectionInfo:.cctor() (FullOpts)
        -264 (-3.10 % of base) : 29994.dasm - System.Management.Automation.Runspaces.TypeTable:Process_TypesV3_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
        -244 (-4.56 % of base) : 29524.dasm - System.Management.Automation.ReflectionParameterBinder:.cctor() (FullOpts)
        -240 (-2.28 % of base) : 23358.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
        -232 (-2.19 % of base) : 28052.dasm - System.Management.Automation.Runspaces.InitialSessionState:.cctor() (FullOpts)
        -228 (-3.50 % of base) : 29148.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
        -224 (-4.69 % of base) : 3276.dasm - Microsoft.Build.Shared.FrameworkLocationHelper:.cctor() (FullOpts)
        -204 (-1.60 % of base) : 16919.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -180 (-8.06 % of base) : 1782.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -168 (-1.60 % of base) : 2987.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:openMetadataReader(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+BinaryFile,int,System.Tuple`8[ushort,System.Tuple`2[int,int],ubyte,ubyte,ubyte,ubyte,ubyte,System.Tuple`5[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.IL+ILPlatform],ubyte,int,int,int]],FSharp.Compiler.AbstractIL.ILBinaryReader+PEReader,FSharp.Compiler.IO.ReadOnlyByteMemory,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.ILBinaryReader+PEReader],ubyte):System.Tuple`2[FSharp.Compiler.AbstractIL.IL+ILModuleDef,System.Lazy`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.AbstractIL.IL+ILAssemblyRef]]] (FullOpts)
        -156 (-0.90 % of base) : 1523.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -152 (-0.86 % of base) : 29886.dasm - System.Management.Automation.Runspaces.InitialSessionState:get_BuiltInAliases():System.Management.Automation.Runspaces.SessionStateAliasEntry[] (FullOpts)
        -144 (-9.78 % of base) : 31375.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)

Top method regressions (percentages):
          36 (37.50 % of base) : 28203.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
          32 (20.51 % of base) : 2464.dasm - <StartupCode$FSharp-Compiler-Service>.$Internal.Utilities.Library.Extras:.cctor() (FullOpts)
          32 (20.51 % of base) : 5425.dasm - FSharp.Compiler.AbstractIL.IL+ILAlignment:.cctor() (FullOpts)
          32 (20.51 % of base) : 8751.dasm - FSharp.Compiler.Infos+CallerInfo:.cctor() (FullOpts)
          32 (20.51 % of base) : 10175.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefType:.cctor() (FullOpts)
          32 (20.51 % of base) : 5727.dasm - FSharp.Compiler.TypedTree+TyconFSharpObjModelKind:.cctor() (FullOpts)
          32 (20.51 % of base) : 7938.dasm - FSharp.Compiler.TypedTree+ValBaseOrThisInfo:.cctor() (FullOpts)
          32 (20.51 % of base) : 8481.dasm - FSharp.Compiler.TypedTreeOps+Mutates:.cctor() (FullOpts)
          32 (20.51 % of base) : 26723.dasm - Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)
          32 (20.51 % of base) : 24155.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:.cctor() (FullOpts)
          32 (20.51 % of base) : 31030.dasm - System.Management.Automation.Interpreter.ThrowInstruction:.cctor() (FullOpts)
          32 (20.00 % of base) : 10628.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefExpr:.cctor() (FullOpts)
          32 (20.00 % of base) : 9304.dasm - FSharp.Compiler.TypedTree+TOp:.cctor() (FullOpts)
          32 (20.00 % of base) : 5747.dasm - FSharp.Compiler.TypedTree+ValUseFlag:.cctor() (FullOpts)
          52 (20.00 % of base) : 26403.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:RewriteForEachStatementAsFor(Microsoft.CodeAnalysis.CSharp.BoundForEachStatement,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (FullOpts)
          64 (19.28 % of base) : 15389.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseForStatementExpressionList(byref):Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax]:this (FullOpts)
          28 (16.67 % of base) : 27220.dasm - Microsoft.Cci.Extensions:HasBody(Microsoft.Cci.IMethodDefinition):ubyte (FullOpts)
          40 (16.39 % of base) : 12434.dasm - System.Globalization.CultureInfo:set_CurrentCulture(System.Globalization.CultureInfo) (FullOpts)
          32 (16.33 % of base) : 14359.dasm - Microsoft.CodeAnalysis.CommandLineParser:.cctor() (FullOpts)
          24 (16.22 % of base) : 12278.dasm - SixLabors.ImageSharp.Processing.Processors.Convolution.Parameters.BokehBlurKernelDataProvider:GetParameters(int):System.ValueTuple`2[System.Numerics.Vector4[],float] (FullOpts)

Top method improvements (percentages):
         -36 (-21.95 % of base) : 25825.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
         -12 (-14.29 % of base) : 13798.dasm - Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
         -12 (-14.29 % of base) : 13426.dasm - Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]:<GetValueGetter>b__0(byref):this (FullOpts)
         -12 (-14.29 % of base) : 13792.dasm - Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]:<GetMappingGetter>b__0(byref):this (FullOpts)
        -128 (-13.50 % of base) : 28235.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -12 (-13.04 % of base) : 12776.dasm - Microsoft.ML.Transforms.Text.TextNormalizingTransformer+Mapper+<>c__DisplayClass9_0:<MakeGetterOne>b__0(byref):this (FullOpts)
         -24 (-12.50 % of base) : 16793.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:AddToConcurrentMap(System.Collections.Concurrent.ConcurrentDictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]],System.ReadOnlyMemory`1[ushort]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (FullOpts)
         -60 (-11.45 % of base) : 12221.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifNumber:TrySetValue(System.Object):ubyte:this (FullOpts)
         -16 (-11.43 % of base) : 9288.dasm - Microsoft.FSharp.Collections.Internal+IEnumerator+map2@163[System.__Canon,System.__Canon,System.__Canon]:Dispose():this (FullOpts)
         -40 (-11.36 % of base) : 2868.dasm - Internal.Utilities.FSharpEnvironment+probePathForDotnetHost@420-1:Invoke(System.String):ubyte:this (FullOpts)
         -36 (-10.71 % of base) : 13985.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Options:set_StopWordsRemoverOptions(Microsoft.ML.Transforms.Text.IStopWordsRemoverOptions):this (FullOpts)
        -764 (-10.11 % of base) : 7061.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.AsciiLexer:.cctor() (FullOpts)
         -44 (-10.00 % of base) : 30890.dasm - System.Management.Automation.Language.PSPipeWriterBinder:.ctor():this (FullOpts)
         -12 (-10.00 % of base) : 29615.dasm - System.Management.Automation.ReflectionParameterBinder+<>c:<.cctor>b__4_23(System.Object,System.Object):this (FullOpts)
        -136 (-9.83 % of base) : 31150.dasm - System.Management.Automation.PSObject:GetPropertyCollection(int,System.Management.Automation.Runspaces.TypeTable):System.Collections.ObjectModel.Collection`1[System.Management.Automation.CollectionEntry`1[System.Management.Automation.PSPropertyInfo]] (FullOpts)
        -144 (-9.78 % of base) : 31375.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
         -28 (-9.72 % of base) : 12226.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifShort:TrySetValue(System.Object):ubyte:this (FullOpts)
         -20 (-9.26 % of base) : 31037.dasm - System.Management.Automation.Interpreter.HybridReferenceDictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this (FullOpts)
         -44 (-9.09 % of base) : 13223.dasm - Microsoft.ML.Data.BinaryClassifierScorer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.BinaryClassifierScorer+Arguments,Microsoft.ML.IDataView,Microsoft.ML.Data.ISchemaBoundMapper,Microsoft.ML.Data.RoleMappedSchema):this (FullOpts)
         -12 (-8.82 % of base) : 30038.dasm - System.Collections.Specialized.OrderedDictionary:get_Item(int):System.Object:this (FullOpts)



windows arm64

Diffs are based on 2,397,782 contexts (955,693 MinOpts, 1,442,089 FullOpts).

MISSED contexts: base: 174 (0.01%), diff: 5,300 (0.22%)

Overall (-1,050,688 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.arm64.checked.mch 10,879,288 +5,028 -0.03%
benchmarks.run_pgo.windows.arm64.checked.mch 47,896,244 -51,784 -0.81%
benchmarks.run_tiered.windows.arm64.checked.mch 15,418,760 -4,136 -0.17%
coreclr_tests.run.windows.arm64.checked.mch 508,096,416 -1,451,404 -0.29%
libraries.crossgen2.windows.arm64.checked.mch 67,298,384 -203,856 +0.63%
libraries.pmi.windows.arm64.checked.mch 80,041,792 +49,080 -0.49%
libraries_tests.run.windows.arm64.Release.mch 327,777,900 +11,220 -0.25%
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 167,608,372 +606,696 +0.07%
realworld.run.windows.arm64.checked.mch 15,837,772 -1,844 -0.17%
smoke_tests.nativeaot.windows.arm64.checked.mch 3,980,864 -9,688 -0.15%

FullOpts (-1,050,688 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.arm64.checked.mch 10,878,752 +5,028 -0.03%
benchmarks.run_pgo.windows.arm64.checked.mch 31,605,364 -51,784 -0.81%
benchmarks.run_tiered.windows.arm64.checked.mch 4,125,432 -4,136 -0.17%
coreclr_tests.run.windows.arm64.checked.mch 160,799,344 -1,451,404 -0.29%
libraries.crossgen2.windows.arm64.checked.mch 67,296,748 -203,856 +0.63%
libraries.pmi.windows.arm64.checked.mch 79,921,808 +49,080 -0.49%
libraries_tests.run.windows.arm64.Release.mch 122,685,228 +11,220 -0.25%
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 154,549,116 +606,696 +0.07%
realworld.run.windows.arm64.checked.mch 15,280,848 -1,844 -0.17%
smoke_tests.nativeaot.windows.arm64.checked.mch 3,979,852 -9,688 -0.15%

Example diffs

benchmarks.run.windows.arm64.checked.mch

-36 (-21.95%) : 1738.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M57856_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M57856_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00007FFBA3D6D218h, 00007FFBA5401AB8h +RWD16 dq 00007FFBA3D6D218h, 00007FFBA5401AD0h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-12 (-13.04%) : 4241.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_604(System.Object):System.String:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (64) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.LargeStructWithProperties> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref "V02.[016..024)"
+; V05 cse0 [V05,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -34,16 +35,13 @@ G_M50858_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M50858_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M50858_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x18] ; gcrRegs +[x0] @@ -54,7 +52,7 @@ G_M50858_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=55103955) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_4(System.Object):System.String:this (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=55103955) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_4(System.Object):System.String:this (FullOpts)
; ============================================================ Unwind Info: @@ -65,7 +63,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 4245.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_6012(System.Object):int:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (64) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.LargeStructWithProperties> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "V02.[044..048)"
+; V05 cse0 [V05,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -34,16 +35,13 @@ G_M24240_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M24240_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M24240_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr w0, [x19, #0x34] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -53,7 +51,7 @@ G_M24240_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=852ea14f) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=852ea14f) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
; ============================================================ Unwind Info: @@ -64,7 +62,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+25.81%) : 10827.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)

@@ -18,13 +18,12 @@ ;* V07 tmp7 [V07 ] ( 0, 0 ) ref -> zero-ref ;* V08 tmp8 [V08 ] ( 0, 0 ) ref -> zero-ref ;* V09 tmp9 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 cse0 [V10,T01] ( 5, 5 ) long -> x20 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28339_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28339_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -35,17 +34,20 @@ G_M28339_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs +[x0] mov x19, x0 ; gcrRegs +[x19]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - ldr x15, [x20]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #16 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15] ; byrRegs -[x14]
- ldr x15, [x20, #0x30]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #24 ; byrRegs +[x14] @@ -57,26 +59,31 @@ G_M28339_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movk x0, #0xD1FFAB1E LSL #32 mov w1, #7 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x20, #0x78]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #8 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- add x14, x20, #40
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x19 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15 x19]
- ;; size=100 bbWeight=1 PerfScore 23.00
+ ;; size=132 bbWeight=1 PerfScore 27.00
G_M28339_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 124, prolog size 12, PerfScore 28.50, instruction count 31, allocated bytes for code 124 (MethodHash=13b9914c) for method System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
+; Total bytes of code 156, prolog size 12, PerfScore 33.50, instruction count 39, allocated bytes for code 156 (MethodHash=13b9914c) for method System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -87,7 +94,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ 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) @@ -95,7 +102,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+26.09%) : 12401.dasm - System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)

@@ -8,62 +8,66 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V02 cse1 [V02,T00] ( 5, 4.50) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M40308_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M40308_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M40308_IG07 - ;; size=36 bbWeight=1 PerfScore 7.50
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M40308_IG07 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M40308_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w0, [x19, #0xD1FFAB1E]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
cbnz w0, G_M40308_IG05
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M40308_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, #1
- str w0, [x19, #0xD1FFAB1E] - ;; size=8 bbWeight=0.50 PerfScore 0.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=20 bbWeight=0.50 PerfScore 1.50
G_M40308_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19, #0xD1FFAB1E] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M40308_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M40308_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M40308_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 12, PerfScore 21.75, instruction count 23, allocated bytes for code 92 (MethodHash=ffbb628b) for method System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 20.50, instruction count 29, allocated bytes for code 116 (MethodHash=ffbb628b) for method System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ 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) @@ -71,10 +75,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+34.62%) : 11144.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,65 +9,72 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 2, 1 ) int -> x0 -; V02 cse0 [V02,T00] ( 6, 4.50) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T02] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> x0
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr w0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
cbnz w0, G_M24568_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M24568_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub x0, x19, #216 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M24568_IG07 - ;; size=24 bbWeight=0.50 PerfScore 3.00
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M24568_IG07 + ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #-0x0F]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
mov w1, #1 cmp w0, #0 cinc w0, w1, eq
- str w0, [x19] - ;; size=20 bbWeight=0.50 PerfScore 2.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M24568_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M24568_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M24568_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #4 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG04
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 12, PerfScore 20.75, instruction count 26, allocated bytes for code 104 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 140, prolog size 8, PerfScore 20.50, instruction count 35, allocated bytes for code 140 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ 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) @@ -75,10 +82,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

benchmarks.run_pgo.windows.arm64.checked.mch

-12 (-13.04%) : 25033.dasm - (dynamicClass):Int1Getter(System.Object):int (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M53339_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M53339_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M53339_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr w0, [x19, #0x30] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -51,7 +49,7 @@ G_M53339_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=b44e2fa4) for method (dynamicClass):Int1Getter(System.Object):int (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=b44e2fa4) for method (dynamicClass):Int1Getter(System.Object):int (FullOpts)
; ============================================================ Unwind Info: @@ -62,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 25032.dasm - (dynamicClass):String1Getter(System.Object):System.String (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M3216_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr G_M3216_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M3216_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x08] ; gcrRegs +[x0] @@ -52,7 +50,7 @@ G_M3216_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=c4c0f36f) for method (dynamicClass):String1Getter(System.Object):System.String (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=c4c0f36f) for method (dynamicClass):String1Getter(System.Object):System.String (FullOpts)
; ============================================================ Unwind Info: @@ -63,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 45440.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M25960_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M25960_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M25960_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldrb w0, [x19, #0x20] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -51,7 +49,7 @@ G_M25960_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -62,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+19.35%) : 9176.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -10,34 +10,36 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3 ) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbz x0, G_M28655_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M28655_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG04: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] movz x0, #0xD1FFAB1E @@ -45,8 +47,8 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
mov w1, #2 movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this movk x2, #0xD1FFAB1E LSL #16 @@ -54,19 +56,24 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ldr x2, [x2] blr x2 ; gcrRegs -[x0]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x68]
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0]
b G_M28655_IG03
- ;; size=76 bbWeight=0 PerfScore 0.00
+ ;; size=88 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 12, PerfScore 14.00, instruction count 31, allocated bytes for code 124 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 148, prolog size 12, PerfScore 16.50, instruction count 37, allocated bytes for code 148 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -77,7 +84,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -85,7 +92,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+19.35%) : 10896.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -10,34 +10,36 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3 ) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbz x0, G_M28655_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M28655_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG04: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] movz x0, #0xD1FFAB1E @@ -45,8 +47,8 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
mov w1, #2 movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this movk x2, #0xD1FFAB1E LSL #16 @@ -54,19 +56,24 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ldr x2, [x2] blr x2 ; gcrRegs -[x0]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x68]
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0]
b G_M28655_IG03
- ;; size=76 bbWeight=0 PerfScore 0.00
+ ;; size=88 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 12, PerfScore 14.00, instruction count 31, allocated bytes for code 124 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 148, prolog size 12, PerfScore 16.50, instruction count 37, allocated bytes for code 148 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -77,7 +84,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -85,7 +92,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+19.35%) : 33396.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -10,34 +10,36 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3 ) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbz x0, G_M28655_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M28655_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG04: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] movz x0, #0xD1FFAB1E @@ -45,8 +47,8 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
mov w1, #2 movz x2, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this movk x2, #0xD1FFAB1E LSL #16 @@ -54,19 +56,24 @@ G_M28655_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ldr x2, [x2] blr x2 ; gcrRegs -[x0]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x68]
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0]
b G_M28655_IG03
- ;; size=76 bbWeight=0 PerfScore 0.00
+ ;; size=88 bbWeight=0 PerfScore 0.00
-; Total bytes of code 124, prolog size 12, PerfScore 14.00, instruction count 31, allocated bytes for code 124 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 148, prolog size 12, PerfScore 16.50, instruction count 37, allocated bytes for code 148 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -77,7 +84,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -85,7 +92,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

benchmarks.run_tiered.windows.arm64.checked.mch

-12 (-13.04%) : 21117.dasm - (dynamicClass):Int1Getter(System.Object):int (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M53339_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M53339_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M53339_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr w0, [x19, #0x30] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -51,7 +49,7 @@ G_M53339_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=b44e2fa4) for method (dynamicClass):Int1Getter(System.Object):int (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=b44e2fa4) for method (dynamicClass):Int1Getter(System.Object):int (FullOpts)
; ============================================================ Unwind Info: @@ -62,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 29550.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M25960_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M25960_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M25960_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldrb w0, [x19, #0x20] ;; size=4 bbWeight=1 PerfScore 3.00 @@ -51,7 +49,7 @@ G_M25960_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -62,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-13.04%) : 21116.dasm - (dynamicClass):String1Getter(System.Object):System.String (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> x19 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> x0 "CSE - unknown"
; ; Lcl frame size = 8 @@ -32,16 +33,13 @@ G_M3216_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr G_M3216_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov x1, x19 ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for CORINFO_HELP_UNBOX movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs -[x1]
- ;; size=36 bbWeight=0.25 PerfScore 1.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.50
G_M3216_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x08] ; gcrRegs +[x0] @@ -52,7 +50,7 @@ G_M3216_IG05: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.88, instruction count 23, allocated bytes for code 92 (MethodHash=c4c0f36f) for method (dynamicClass):String1Getter(System.Object):System.String (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=c4c0f36f) for method (dynamicClass):String1Getter(System.Object):System.String (FullOpts)
; ============================================================ Unwind Info: @@ -63,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+15.15%) : 44680.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:SortFixedDistanceSetsByQuality(System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)

@@ -14,23 +14,22 @@ ;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def ; V04 tmp3 [V04,T03] ( 4, 3.50) ref -> x1 ; V05 tmp4 [V05,T00] ( 5, 5 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <System.Comparison`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]>
-; V06 tmp5 [V06,T05] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>> -; V07 cse0 [V07,T04] ( 4, 3 ) long -> x20 "CSE - aggressive"
+; V06 tmp5 [V06,T04] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M20878_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] ;; size=16 bbWeight=1 PerfScore 3.00 G_M20878_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - ldr x1, [x20]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x1, [x0]
; gcrRegs +[x1] cbnz x1, G_M20878_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 @@ -44,7 +43,10 @@ G_M20878_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcr arg pop 0 mov x1, x0 ; gcrRegs +[x1]
- ldr x15, [x20, #-0x10]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x1, #8 ; byrRegs +[x14] @@ -55,12 +57,14 @@ G_M20878_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32 str x14, [x1, #0x18]
- mov x14, x20
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x1 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15]
- ;; size=60 bbWeight=0.50 PerfScore 6.00
+ ;; size=80 bbWeight=0.50 PerfScore 7.25
G_M20878_IG04: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref mov x0, x19 ; gcrRegs +[x0] @@ -71,13 +75,13 @@ G_M20878_IG04: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, ldr wzr, [x0] ;; size=24 bbWeight=1 PerfScore 8.00 G_M20878_IG05: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 br x2 ; gcr arg pop 0
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 132, prolog size 16, PerfScore 25.50, instruction count 33, allocated bytes for code 132 (MethodHash=9044ae71) for method System.Text.RegularExpressions.RegexPrefixAnalyzer:SortFixedDistanceSetsByQuality(System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)
+; Total bytes of code 152, prolog size 16, PerfScore 27.75, instruction count 38, allocated bytes for code 152 (MethodHash=9044ae71) for method System.Text.RegularExpressions.RegexPrefixAnalyzer:SortFixedDistanceSetsByQuality(System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)
; ============================================================ Unwind Info: @@ -88,7 +92,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 33 (0x00021) Actual length = 132 (0x000084)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -96,7 +100,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+32 (+16.67%) : 27564.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier1)

@@ -13,48 +13,50 @@ ; V02 arg2 [V02,T02] ( 3, 3 ) ref -> x2 class-hnd single-def <System.Reflection.ConstructorInfo> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.String,System.Type,System.Reflection.MemberInfo]>
-; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <<unknown class>> -; V06 tmp3 [V06,T05] ( 2, 4 ) ref -> x3 class-hnd single-def "dup spill" <<unknown class>>
+; V05 tmp2 [V05,T03] ( 2, 4 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <<unknown class>> +; V06 tmp3 [V06,T04] ( 2, 4 ) ref -> x3 class-hnd single-def "dup spill" <<unknown class>>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref single-def ;* V08 tmp5 [V08 ] ( 0, 0 ) struct (24) zero-ref <System.ValueTuple`3[System.String,System.Type,System.Reflection.MemberInfo]>
-; V09 tmp6 [V09,T06] ( 4, 3.50) ref -> x3
+; V09 tmp6 [V09,T05] ( 4, 3.50) ref -> x3
; V10 tmp7 [V10,T00] ( 5, 5 ) ref -> x3 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V11 tmp8 [V11,T07] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>> -;* V12 tmp9 [V12,T10] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item1 (fldOffset=0x0)" P-INDEP -; V13 tmp10 [V13,T08] ( 2, 2 ) ref -> x21 single-def "field V04.Item2 (fldOffset=0x8)" P-INDEP -; V14 tmp11 [V14,T09] ( 2, 2 ) ref -> x22 single-def "field V04.Item3 (fldOffset=0x10)" P-INDEP
+; V11 tmp8 [V11,T06] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>> +;* V12 tmp9 [V12,T09] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item1 (fldOffset=0x0)" P-INDEP +; V13 tmp10 [V13,T07] ( 2, 2 ) ref -> x20 single-def "field V04.Item2 (fldOffset=0x8)" P-INDEP +; V14 tmp11 [V14,T08] ( 2, 2 ) ref -> x21 single-def "field V04.Item3 (fldOffset=0x10)" P-INDEP
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref single-def "field V08.Item1 (fldOffset=0x0)" P-INDEP ;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref single-def "field V08.Item2 (fldOffset=0x8)" P-INDEP ;* V17 tmp14 [V17 ] ( 0, 0 ) ref -> zero-ref single-def "field V08.Item3 (fldOffset=0x10)" P-INDEP
-; V18 tmp15 [V18 ] ( 4, 8 ) struct (24) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]> -; V19 cse0 [V19,T03] ( 5, 4 ) long -> x19 "CSE - aggressive"
+; V18 tmp15 [V18 ] ( 4, 8 ) struct (24) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]>
;
-; Lcl frame size = 32
+; Lcl frame size = 24
G_M11059_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]! - stp x19, x20, [sp, #0x30] - stp x21, x22, [sp, #0x40]
+ stp fp, lr, [sp, #-0x40]! + stp x19, x20, [sp, #0x28] + str x21, [sp, #0x38]
mov fp, sp
- stp xzr, xzr, [fp, #0x18] // [V18 tmp15], [V18 tmp15+0x08] - str xzr, [fp, #0x28] // [V18 tmp15+0x10]
+ stp xzr, xzr, [fp, #0x10] // [V18 tmp15], [V18 tmp15+0x08] + str xzr, [fp, #0x20] // [V18 tmp15+0x10]
;; size=24 bbWeight=1 PerfScore 5.50 G_M11059_IG02: ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x1-x2]
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x20, [x19]
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x19, [x0] + ; gcrRegs +[x19] + mov x20, x1
; gcrRegs +[x20]
- mov x21, x1
+ mov x21, x2
; gcrRegs +[x21]
- mov x22, x2 - ; gcrRegs +[x22] - ldr x3, [x19, #0x10]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x3, [x0]
; gcrRegs +[x3] cbnz x3, G_M11059_IG04
- ;; size=32 bbWeight=1 PerfScore 9.50 -G_M11059_IG03: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref
+ ;; size=44 bbWeight=1 PerfScore 11.00 +G_M11059_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x1-x3] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -63,7 +65,10 @@ G_M11059_IG03: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs ; gcrRegs +[x0] mov x3, x0 ; gcrRegs +[x3]
- ldr x15, [x19, #0x08]
+ movz x14, #0xD1FFAB1E + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x3, #8 ; byrRegs +[x14] @@ -74,20 +79,22 @@ G_M11059_IG03: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32 str x14, [x3, #0x18]
- add x14, x19, #16
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x3 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15]
- ;; size=60 bbWeight=0.50 PerfScore 6.00 -G_M11059_IG04: ; bbWeight=1, gcrefRegs=700008 {x3 x20 x21 x22}, byrefRegs=0000 {}, byref
+ ;; size=80 bbWeight=0.50 PerfScore 7.25 +G_M11059_IG04: ; bbWeight=1, gcrefRegs=380008 {x3 x19 x20 x21}, byrefRegs=0000 {}, byref
movz x2, #0xD1FFAB1E movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32
- stp x2, x21, [fp, #0x18] // [V18 tmp15], [V18 tmp15+0x08] - str x22, [fp, #0x28] // [V18 tmp15+0x10] - add x2, fp, #24 // [V18 tmp15] - mov x0, x20
+ stp x2, x20, [fp, #0x10] // [V18 tmp15], [V18 tmp15+0x08] + str x21, [fp, #0x20] // [V18 tmp15+0x10] + add x2, fp, #16 // [V18 tmp15] + mov x0, x19
; gcrRegs +[x0] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 @@ -97,16 +104,16 @@ G_M11059_IG04: ; bbWeight=1, gcrefRegs=700008 {x3 x20 x21 x22}, byrefRegs movk x4, #0xD1FFAB1E LSL #32 ldr x4, [x4] blr x4
- ; gcrRegs -[x3 x20-x22]
+ ; gcrRegs -[x3 x19-x21]
;; size=60 bbWeight=1 PerfScore 11.50 G_M11059_IG05: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x40] - ldp x19, x20, [sp, #0x30] - ldp fp, lr, [sp], #0x50
+ ldr x21, [sp, #0x38] + ldp x19, x20, [sp, #0x28] + ldp fp, lr, [sp], #0x40
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 5.00
-; Total bytes of code 192, prolog size 24, PerfScore 36.50, instruction count 48, allocated bytes for code 192 (MethodHash=9739d4cc) for method System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier1)
+; Total bytes of code 224, prolog size 24, PerfScore 40.25, instruction count 56, allocated bytes for code 224 (MethodHash=9739d4cc) for method System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier1)
; ============================================================ Unwind Info: @@ -117,7 +124,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -125,10 +132,9 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 06 save_regp X#0 Z#6 (0x06); stp x19, x20, [sp, #48] - 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]! - E4 end
+ D0 87 save_reg X#2 Z#7 (0x07); str x21, [sp, #56] + C8 05 save_regp X#0 Z#5 (0x05); stp x19, x20, [sp, #40] + 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end E4 end

+24 (+18.75%) : 938.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)

@@ -9,21 +9,20 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 cse0 [V02,T00] ( 4, 3.50) long -> x19 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 3 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28655_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M28655_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbnz x0, G_M28655_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 @@ -34,8 +33,8 @@ G_M28655_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- mov x20, x0 - ; gcrRegs +[x20]
+ mov x19, x0 + ; gcrRegs +[x19]
movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 @@ -43,35 +42,43 @@ G_M28655_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov x1, #2 bl CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[x0]
- add x14, x20, #8
+ add x14, x19, #8
; byrRegs +[x14] mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15] ; byrRegs -[x14]
- mov x1, x20
+ mov x1, x19
; gcrRegs +[x1] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x2, xzr bl <unknown method>
- ; gcrRegs -[x1 x20] +[x0] - ldr x0, [x19, #-0x68] - ;; size=80 bbWeight=0.50 PerfScore 7.25
+ ; gcrRegs -[x1 x19] +[x0] + movz x0, #0xD1FFAB1E + ; gcrRegs -[x0] + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + ;; size=92 bbWeight=0.50 PerfScore 8.00
G_M28655_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M28655_IG05: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 128, prolog size 12, PerfScore 21.25, instruction count 32, allocated bytes for code 128 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
+; Total bytes of code 152, prolog size 12, PerfScore 24.50, instruction count 38, allocated bytes for code 152 (MethodHash=4bbe9010) for method System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
; ============================================================ Unwind Info: @@ -82,7 +89,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -90,7 +97,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

coreclr_tests.run.windows.arm64.checked.mch

-24 (-23.08%) : 316446.dasm - Test_b99969:DoSpoof() (Tier1-OSR)

@@ -10,7 +10,9 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 2, 2 ) byref -> x0 hoist "CSE - aggressive"
+; V01 cse0 [V01,T00] ( 4, 2 ) long -> x0 "CSE - unknown" +; V02 cse1 [V02,T01] ( 2, 2 ) ref -> x1 "CSE - unknown" +; V03 cse2 [V03,T02] ( 2, 2 ) byref -> x1 hoist "CSE - unknown"
; ; Lcl frame size = 0 @@ -22,45 +24,39 @@ G_M19890_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0] - ; gcrRegs +[x0] - add x0, x0, #13 - ; gcrRegs -[x0] - ; byrRegs +[x0]
+ ldr x1, [x0] + ; gcrRegs +[x1] + add x1, x1, #13 + ; gcrRegs -[x1] + ; byrRegs +[x1]
;; size=20 bbWeight=1 PerfScore 5.00
-G_M19890_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz - ldaprb w1, [x0] - cbz w1, G_M19890_IG03
+G_M19890_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref, isz + ldaprb w2, [x1] + cbz w2, G_M19890_IG03
;; size=8 bbWeight=1 PerfScore 4.00 G_M19890_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0] - 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 w1, #0xD1FFAB1E - movk w1, #0xD1FFAB1E LSL #16 - str w1, [x0, #0x08] - movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> - ; gcrRegs -[x0] - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32
+ ; byrRegs -[x1] + ldr x1, [x0] + ; gcrRegs +[x1] + movz w2, #0xD1FFAB1E + movk w2, #0xD1FFAB1E LSL #16 + str w2, [x1, #0x08]
ldr x0, [x0] ; gcrRegs +[x0] add x0, x0, #12 ; gcrRegs -[x0] ; byrRegs +[x0] mov w1, #1
+ ; gcrRegs -[x1]
stlrb w1, [x0]
- ;; size=56 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
G_M19890_IG05: ; bbWeight=0, epilog, nogc, extend ldp fp, lr, [sp], #0x10 add sp, sp, #32 ret lr ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 8, PerfScore 10.50, instruction count 26, allocated bytes for code 104 (MethodHash=bd6db24d) for method Test_b99969:DoSpoof() (Tier1-OSR)
+; Total bytes of code 80, prolog size 8, PerfScore 10.50, instruction count 20, allocated bytes for code 80 (MethodHash=bd6db24d) for method Test_b99969:DoSpoof() (Tier1-OSR)
; ============================================================ Unwind Info: @@ -71,7 +67,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-36 (-21.95%) : 510217.dasm - FunctionPtr:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M35474_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M35474_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M35474_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M35474_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- add x0, x19, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M35474_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M35474_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00007FFBA0C8D430h, 00007FFBA1E72238h +RWD16 dq 00007FFBA0C8D430h, 00007FFBA1E72250h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=f7a3756d) for method FunctionPtr:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=f7a3756d) for method FunctionPtr:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 605117.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M54112_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M54112_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M54112_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00007FFDD23AD028h, 00007FFDD2F3A688h +RWD16 dq 00007FFDD23AD028h, 00007FFDD2F3A6A0h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=09bf2c9f) for method Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=09bf2c9f) for method Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+28 (+35.00%) : 413020.dasm - calli2:Main():int (FullOpts)

@@ -11,45 +11,51 @@ ;* V01 loc1 [V01 ] ( 0, 0 ) int -> zero-ref ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V04 tmp2 [V04,T01] ( 3, 2 ) int -> x0 -; V05 cse0 [V05,T00] ( 5, 4 ) long -> x19 "CSE - aggressive"
+; V04 tmp2 [V04,T00] ( 3, 2 ) int -> x0
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M37306_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp ;; size=12 bbWeight=1 PerfScore 2.50 G_M37306_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // code for <unknown method> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - blr x19 - mov w20, w0 - add x0, x19, #24
+ movz x0, #0xD1FFAB1E // code for <unknown method> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
blr x0
- cmp w20, w0
+ mov w19, w0 + movz x0, #0xD1FFAB1E // code for <unknown method> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + blr x0 + cmp w19, w0
beq G_M37306_IG04
- ;; size=36 bbWeight=1 PerfScore 6.00
+ ;; size=44 bbWeight=1 PerfScore 7.00
G_M37306_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- blr x19 - b G_M37306_IG05 - ;; size=8 bbWeight=0.50 PerfScore 1.00 -G_M37306_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - add x0, x19, #24
+ movz x0, #0xD1FFAB1E // code for <unknown method> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
blr x0
- ;; size=8 bbWeight=0.50 PerfScore 0.75
+ b G_M37306_IG05 + ;; size=20 bbWeight=0.50 PerfScore 1.75 +G_M37306_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + movz x0, #0xD1FFAB1E // code for <unknown method> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + blr x0 + ;; size=16 bbWeight=0.50 PerfScore 1.25
G_M37306_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref add w0, w0, #100 ;; size=4 bbWeight=1 PerfScore 0.50 G_M37306_IG06: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 13.75, instruction count 20, allocated bytes for code 80 (MethodHash=42386e45) for method calli2:Main():int (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 17.00, instruction count 27, allocated bytes for code 108 (MethodHash=42386e45) for method calli2:Main():int (FullOpts)
; ============================================================ Unwind Info: @@ -60,7 +66,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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) @@ -68,7 +74,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+28 (+36.84%) : 550136.dasm - Test4:.cctor() (FullOpts)

@@ -8,51 +8,57 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 5, 5 ) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M55396_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M55396_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - str xzr, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x1, #3 bl CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[x0]
- add x14, x19, #8
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- stp xzr, xzr, [x19, #0x10] - ;; size=52 bbWeight=1 PerfScore 8.50
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0] + ;; size=88 bbWeight=1 PerfScore 13.50
G_M55396_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 76, prolog size 12, PerfScore 15.00, instruction count 19, allocated bytes for code 76 (MethodHash=d8f4279b) for method Test4:.cctor() (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 17.00, instruction count 26, allocated bytes for code 104 (MethodHash=d8f4279b) for method Test4:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -60,10 +66,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+40.91%) : 555920.dasm - Application:Display(int,System.String,int) (FullOpts)

@@ -7,28 +7,30 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T02] ( 3, 3 ) int -> x0 single-def -; V01 arg1 [V01,T01] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String> -; V02 arg2 [V02,T03] ( 3, 3 ) int -> x19 single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> x0 single-def +; V01 arg1 [V01,T00] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String> +; V02 arg2 [V02,T02] ( 3, 3 ) int -> x19 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T00] ( 5, 5 ) long -> x20 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M61215_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov w19, w2 ;; size=16 bbWeight=1 PerfScore 3.00 G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref ; gcrRegs +[x1]
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - ldr w2, [x20]
+ movz x2, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + ldr w2, [x2]
add w0, w2, w0
- str w0, [x20]
+ movz x2, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + str w0, [x2]
mov x0, x1 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Application:Display(System.String) @@ -38,17 +40,23 @@ G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byre ldr x1, [x1] blr x1 ; gcrRegs -[x0]
- ldr w0, [x20]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
add w0, w0, w19
- str w0, [x20] - ;; size=60 bbWeight=1 PerfScore 16.50
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=96 bbWeight=1 PerfScore 21.00
G_M61215_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 88, prolog size 12, PerfScore 22.50, instruction count 22, allocated bytes for code 88 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
+; Total bytes of code 124, prolog size 12, PerfScore 28.00, instruction count 31, allocated bytes for code 124 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
; ============================================================ Unwind Info: @@ -59,7 +67,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 88 (0x000058)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -67,7 +75,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

libraries.crossgen2.windows.arm64.checked.mch

-24 (-30.00%) : 172439.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)

@@ -9,76 +9,59 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <System.Dynamic.DynamicMetaObject>
+; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Dynamic.DynamicMetaObject>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 3 ) ref -> x19 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
-G_M17334_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M17334_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
- mov x19, x0
+ ;; size=12 bbWeight=1 PerfScore 2.50 +G_M17334_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0] + ldr x19, [x0, #0x08]
; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00 -G_M17334_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ldr x20, [x19, #0x08] - ; gcrRegs +[x20]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x0, [x11]
+ ; gcrRegs -[x0]
blr x0 ; byrRegs +[x0] ldr x0, [x0, #0xD1FFAB1E] ; gcrRegs +[x0] ; byrRegs -[x0]
- cmp x20, x0 - bne G_M17334_IG05 - ;; size=32 bbWeight=1 PerfScore 12.50 -G_M17334_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x19-x20] - mov x0, xzr - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M17334_IG04: ; bbWeight=0.50, epilog, nogc, extend - ldp x19, x20, [sp, #0x10]
+ cmp x19, x0 + csel x0, x19, xzr, ne + ;; size=32 bbWeight=1 PerfScore 12.00 +G_M17334_IG03: ; bbWeight=1, epilog, nogc, extend + ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M17334_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0] +[x19] - ldr x0, [x19, #0x08] - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 1.50 -G_M17334_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
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 20.25, instruction count 20, allocated bytes for code 80 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
+; Total bytes of code 56, prolog size 12, PerfScore 18.50, instruction count 14, allocated bytes for code 56 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 2
- Epilog Count : 2
+ Epilog Count : 1
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) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

-20 (-23.81%) : 153629.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)

@@ -9,74 +9,59 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T00] ( 3, 6 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.ObsoleteAttributeData>
+; V03 cse0 [V03,T02] ( 3, 3 ) ref -> x19 "CSE - unknown"
; ; Lcl frame size = 0
-G_M42863_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M42863_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]! stp x19, x20, [sp, #0x10] mov fp, sp
- mov x19, x0
+ ;; size=12 bbWeight=1 PerfScore 2.50 +G_M42863_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0] + ldr x19, [x0, #0x08]
; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00 -G_M42863_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ldr x20, [x19, #0x08]
+ mov x20, x19
; gcrRegs +[x20] ldrsb wzr, [x20] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x0, [x11]
+ ; gcrRegs -[x0]
blr x0 ; byrRegs +[x0] ldr x0, [x0, #0xD1FFAB1E] ; gcrRegs +[x0] ; byrRegs -[x0] cmp x0, x20
- beq G_M42863_IG05 - ;; size=36 bbWeight=1 PerfScore 15.50 -G_M42863_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x20] - ldr x0, [x19, #0x08] - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 1.50 -G_M42863_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ csel x0, xzr, x19, eq + ;; size=40 bbWeight=1 PerfScore 15.50 +G_M42863_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M42863_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0 x19] - mov x0, xzr - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M42863_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
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 12, PerfScore 23.25, instruction count 21, allocated bytes for code 84 (MethodHash=419e5890) for method Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 21.00, instruction count 16, allocated bytes for code 64 (MethodHash=419e5890) for method Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 2
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

-20 (-23.81%) : 153645.dasm - Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)

@@ -9,74 +9,59 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T00] ( 3, 6 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.ObsoleteAttributeData>
+; V03 cse0 [V03,T02] ( 3, 3 ) ref -> x19 "CSE - unknown"
; ; Lcl frame size = 0
-G_M62322_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M62322_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]! stp x19, x20, [sp, #0x10] mov fp, sp
- mov x19, x0
+ ;; size=12 bbWeight=1 PerfScore 2.50 +G_M62322_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0] + ldr x19, [x0, #0x08]
; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00 -G_M62322_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ldr x20, [x19, #0x08]
+ mov x20, x19
; gcrRegs +[x20] ldrsb wzr, [x20] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x0, [x11]
+ ; gcrRegs -[x0]
blr x0 ; byrRegs +[x0] ldr x0, [x0, #0xD1FFAB1E] ; gcrRegs +[x0] ; byrRegs -[x0] cmp x0, x20
- beq G_M62322_IG05 - ;; size=36 bbWeight=1 PerfScore 15.50 -G_M62322_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x20] - ldr x0, [x19, #0x08] - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 1.50 -G_M62322_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ csel x0, xzr, x19, eq + ;; size=40 bbWeight=1 PerfScore 15.50 +G_M62322_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M62322_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0 x19] - mov x0, xzr - ; gcrRegs +[x0] - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M62322_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
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 12, PerfScore 23.25, instruction count 21, allocated bytes for code 84 (MethodHash=db430c8d) for method Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 21.00, instruction count 16, allocated bytes for code 64 (MethodHash=db430c8d) for method Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 2
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
- ---- Scope 1 - Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) - Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

+24 (+27.27%) : 231368.dasm - System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)

@@ -9,57 +9,67 @@ ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.RoType>
+; V00 this [V00,T00] ( 6, 4.50) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.RoType>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T03] ( 3, 2 ) int -> x0 "Inline return value spill temp" ; V03 tmp2 [V03,T02] ( 3, 3 ) int -> x0 "dup spill" ;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V05 cse0 [V05,T01] ( 4, 3 ) byref -> x19 "CSE - aggressive"
+; V05 cse0 [V05,T01] ( 4, 3 ) long -> x20 "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M59774_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M59774_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x0] - adrp x11, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x11, x11, [LOW RELOC #0xD1FFAB1E] - ldr x11, [x11] - add x11, x0, x11 - ; byrRegs +[x11] - add x19, x11, #80 - ; byrRegs +[x19] - ldar w11, [x19] - ; byrRegs -[x11] - cbnz w11, G_M59774_IG04
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M59774_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x20, [x0] + add x0, x19, x20 + ; byrRegs +[x0] + add x0, x0, #80 + ldar w0, [x0] + ; byrRegs -[x0] + cbnz w0, G_M59774_IG04
;; size=28 bbWeight=1 PerfScore 9.00
-G_M59774_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref
+G_M59774_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + mov x0, x19 + ; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1 ; gcrRegs -[x0]
- stlr w0, [x19]
+ add x1, x19, x20 + ; byrRegs +[x1] + add x1, x1, #80 + stlr w0, [x1]
b G_M59774_IG05
- ;; size=24 bbWeight=0.50 PerfScore 3.50 -G_M59774_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldar w0, [x19] - ;; size=4 bbWeight=0.50 PerfScore 1.50
+ ;; size=36 bbWeight=0.50 PerfScore 4.25 +G_M59774_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; byrRegs -[x1] + add x0, x19, x20 + ; byrRegs +[x0] + add x0, x0, #80 + ldar w0, [x0] + ; byrRegs -[x0] + ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M59774_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19]
+ ; gcrRegs -[x19]
tst w0, #2 cset x0, ne ;; size=8 bbWeight=1 PerfScore 1.00 G_M59774_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
+ ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 88, prolog size 12, PerfScore 21.50, instruction count 22, allocated bytes for code 88 (MethodHash=a9e31681) for method System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)
+; Total bytes of code 112, prolog size 12, PerfScore 22.25, instruction count 28, allocated bytes for code 112 (MethodHash=a9e31681) for method System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)
; ============================================================ Unwind Info: @@ -70,7 +80,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 88 (0x000058)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -78,7 +88,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

+24 (+30.00%) : 230486.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)

@@ -8,9 +8,8 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
+; V00 this [V00,T00] ( 5, 4.50) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) byref -> x19 "CSE - aggressive"
; ; Lcl frame size = 8 @@ -18,34 +17,44 @@ G_M23044_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x20]! str x19, [sp, #0x18] mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M23044_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M23044_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x11, x11, [LOW RELOC #0xD1FFAB1E] - ldr x11, [x11] - add x19, x0, x11 - ; byrRegs +[x19] - ldar x11, [x19] - ; gcrRegs +[x11] - cbnz x11, G_M23044_IG04
+ ; byrRegs -[x0] + cbnz x0, G_M23044_IG04
;; size=24 bbWeight=1 PerfScore 8.50
-G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref - ; gcrRegs -[x11]
+G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0] + mov x0, x19 + ; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- ;; size=16 bbWeight=0.50 PerfScore 2.50 -G_M23044_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldar x0, [x19]
+ ;; size=20 bbWeight=0.50 PerfScore 2.75 +G_M23044_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11]
- ;; size=16 bbWeight=1 PerfScore 7.00
+ ;; size=32 bbWeight=1 PerfScore 11.50
G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 @@ -53,7 +62,7 @@ G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ; gcr arg pop 0 ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 24.50, instruction count 20, allocated bytes for code 80 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
+; Total bytes of code 104, prolog size 16, PerfScore 29.75, instruction count 26, allocated bytes for code 104 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
; ============================================================ Unwind Info: @@ -64,7 +73,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+30.00%) : 231468.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)

@@ -8,9 +8,8 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
+; V00 this [V00,T00] ( 5, 4.50) ref -> x19 this class-hnd single-def <System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) byref -> x19 "CSE - aggressive"
; ; Lcl frame size = 8 @@ -18,34 +17,44 @@ G_M23044_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x20]! str x19, [sp, #0x18] mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M23044_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M23044_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x11, x11, [LOW RELOC #0xD1FFAB1E] - ldr x11, [x11] - add x19, x0, x11 - ; byrRegs +[x19] - ldar x11, [x19] - ; gcrRegs +[x11] - cbnz x11, G_M23044_IG04
+ ; byrRegs -[x0] + cbnz x0, G_M23044_IG04
;; size=24 bbWeight=1 PerfScore 8.50
-G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref - ; gcrRegs -[x11]
+G_M23044_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0] + mov x0, x19 + ; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- ;; size=16 bbWeight=0.50 PerfScore 2.50 -G_M23044_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldar x0, [x19]
+ ;; size=20 bbWeight=0.50 PerfScore 2.75 +G_M23044_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + add x0, x19, x0 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11]
- ;; size=16 bbWeight=1 PerfScore 7.00
+ ;; size=32 bbWeight=1 PerfScore 11.50
G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 @@ -53,7 +62,7 @@ G_M23044_IG05: ; bbWeight=1, epilog, nogc, extend ; gcr arg pop 0 ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 80, prolog size 12, PerfScore 24.50, instruction count 20, allocated bytes for code 80 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
+; Total bytes of code 104, prolog size 16, PerfScore 29.75, instruction count 26, allocated bytes for code 104 (MethodHash=8e39a5fb) for method System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
; ============================================================ Unwind Info: @@ -64,7 +73,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.windows.arm64.checked.mch

-44 (-29.73%) : 264400.dasm - System.Data.Common.DbConnectionOptions:DebugTraceKeyValuePair(System.String,System.String,System.Collections.Hashtable) (FullOpts)

@@ -13,15 +13,16 @@ ; V02 arg2 [V02,T00] ( 5, 4 ) ref -> x2 class-hnd single-def <System.Collections.Hashtable> ;* V03 loc0 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String> ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 6, 3 ) ref -> x1
+; V05 tmp1 [V05,T03] ( 4, 2.25) ref -> x1
;* V06 tmp2 [V06 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-; V07 tmp3 [V07,T04] ( 2, 2 ) int -> x0 "spilling unroll qmark"
+;* V07 tmp3 [V07,T05] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V08 tmp4 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr" ;* V09 tmp5 [V09 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
-; V10 tmp6 [V10,T05] ( 3, 2 ) ref -> x0 single-def "argument with side effect" -; V11 rat0 [V11,T02] ( 4, 3.50) ref -> x1 "replacement local" -; V12 rat1 [V12,T06] ( 3, 1 ) long -> x2 "CSE for expectedClsNode" -; V13 rat2 [V13,T07] ( 3, 3 ) simd16 -> d16 "ReplaceWithLclVar is creating a new local variable"
+; V10 tmp6 [V10,T04] ( 3, 2 ) ref -> x0 single-def "argument with side effect" +;* V11 cse0 [V11,T07] ( 0, 0 ) int -> zero-ref "CSE - unknown" +; V12 rat0 [V12,T02] ( 4, 3.50) ref -> x1 "replacement local" +; V13 rat1 [V13,T06] ( 3, 1 ) long -> x2 "CSE for expectedClsNode" +;* V14 rat2 [V14,T08] ( 0, 0 ) simd16 -> zero-ref "ReplaceWithLclVar is creating a new local variable"
; ; Lcl frame size = 0 @@ -59,36 +60,21 @@ G_M59485_IG05: ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {} movk x2, #0xD1FFAB1E LSL #32 ldr x3, [x1] cmp x3, x2
- bne G_M59485_IG11
+ bne G_M59485_IG09
;; size=24 bbWeight=0.25 PerfScore 1.50 G_M59485_IG06: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0]
- cbz x1, G_M59485_IG10
+ cbz x1, G_M59485_IG08
;; size=4 bbWeight=1 PerfScore 1.00
-G_M59485_IG07: ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz - ldr w2, [x1, #0x08] - cmp w2, #8 - bne G_M59485_IG09 - ;; size=12 bbWeight=0.25 PerfScore 1.12 -G_M59485_IG08: ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz - ldr q16, [x1, #0x0C] - ldr q17, [@RWD00] - eor v16.2d, v16.2d, v17.2d - umaxp v16.4s, v16.4s, v16.4s - umov x0, v16.d[0] - cmp x0, #0 - cset x0, eq - cbnz w0, G_M59485_IG10 - ;; size=32 bbWeight=0.50 PerfScore 4.75 -G_M59485_IG09: ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+G_M59485_IG07: ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
ldr wzr, [x1, #0x08] ;; size=4 bbWeight=0.25 PerfScore 0.75
-G_M59485_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M59485_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x1] ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-G_M59485_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M59485_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x0] mov x1, x0 ; gcrRegs +[x1] @@ -98,10 +84,8 @@ G_M59485_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 { ; gcrRegs -[x1] +[x0] brk_windows #0 ;; size=16 bbWeight=0 PerfScore 0.00
-RWD00 dq 0073007300610070h, 00640072006F0077h
- -; Total bytes of code 148, prolog size 8, PerfScore 20.62, instruction count 37, allocated bytes for code 148 (MethodHash=d8ab17a2) for method System.Data.Common.DbConnectionOptions:DebugTraceKeyValuePair(System.String,System.String,System.Collections.Hashtable) (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 14.75, instruction count 26, allocated bytes for code 104 (MethodHash=d8ab17a2) for method System.Data.Common.DbConnectionOptions:DebugTraceKeyValuePair(System.String,System.String,System.Collections.Hashtable) (FullOpts)
; ============================================================ Unwind Info: @@ -112,7 +96,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 37 (0x00025) Actual length = 148 (0x000094)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-40 (-23.81%) : 161082.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)

@@ -9,19 +9,16 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M62751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -34,19 +31,11 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- str x14, [x0, #0x18] - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - add x14, x19, #0xD1FFAB1E - str x14, [x0, #0x20] - movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x14, x20
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF @@ -63,34 +52,36 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- stp x14, x19, [x0, #0x18] - add x14, x20, #8
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=144 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M62751_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00007FFC914D3B88h, 00007FFC8EC31E48h +RWD16 dq 00007FFC94982680h, 00007FFC8EC31C08h
-; Total bytes of code 168, prolog size 12, PerfScore 28.00, instruction count 42, allocated bytes for code 168 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-40 (-23.81%) : 136024.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)

@@ -9,19 +9,16 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M62751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -34,19 +31,11 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- str x14, [x0, #0x18] - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - add x14, x19, #0xD1FFAB1E - str x14, [x0, #0x20] - movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x14, x20
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF @@ -63,34 +52,36 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- stp x14, x19, [x0, #0x18] - add x14, x20, #8
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=144 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M62751_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00007FFC91413720h, 00007FFC8EC308E8h +RWD16 dq 00007FFC94571FE8h, 00007FFC8EC306A8h
-; Total bytes of code 168, prolog size 12, PerfScore 28.00, instruction count 42, allocated bytes for code 168 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+28 (+29.17%) : 6630.dasm - Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)

@@ -7,16 +7,17 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 4, 3.50) ref -> x0 class-hnd single-def <System.String> -; V01 loc0 [V01,T00] ( 6, 19 ) int -> x1
+; V00 arg0 [V00,T05] ( 4, 3.50) ref -> x0 class-hnd single-def <System.String> +; V01 loc0 [V01,T00] ( 7, 23 ) int -> x1
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 6 ) int -> x2 "CSE - aggressive" -; V04 cse1 [V04,T04] ( 2, 2 ) int -> x2 "CSE - aggressive" -; V05 cse2 [V05,T01] ( 3, 6.50) byref -> x0 hoist "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 4, 8 ) int -> x2 "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 6.50) byref -> x0 hoist "CSE - unknown" +; V05 cse2 [V05,T04] ( 3, 6 ) int -> x3 "CSE - unknown" +; V06 cse3 [V06,T01] ( 5, 14 ) int -> x4 multi-def "CSE - unknown"
; ; Lcl frame size = 0
-G_M53831_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M53831_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 @@ -24,8 +25,8 @@ G_M53831_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] mov w1, wzr ldr w2, [x0, #0x08]
- sub w2, w2, #1 - cmp w2, #0
+ sub w3, w2, #1 + cmp w3, #0
ble G_M53831_IG07 ;; size=20 bbWeight=1 PerfScore 5.50 G_M53831_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref @@ -34,21 +35,26 @@ G_M53831_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b ; byrRegs +[x0] ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M53831_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- ldrh w3, [x0, w1, UXTW #2] - cmp w3, #46
+ cmp w1, w2 + bhs G_M53831_IG11 + ldrh w4, [x0, w1, UXTW #2] + cmp w4, #46
bne G_M53831_IG06
- ;; size=12 bbWeight=4 PerfScore 18.00
+ ;; size=20 bbWeight=4 PerfScore 24.00
G_M53831_IG05: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- add w3, w1, #1 - ldrh w3, [x0, w3, UXTW #2] - cmp w3, #46
+ add w4, w1, #1 + cmp w4, w2 + bhs G_M53831_IG11 + ldrh w4, [x0, w4, UXTW #2] + cmp w4, #46
beq G_M53831_IG09
- ;; size=16 bbWeight=2 PerfScore 10.00
+ ;; size=24 bbWeight=2 PerfScore 13.00
G_M53831_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- add w1, w1, #1 - cmp w2, w1
+ add w4, w1, #1 + sxtw w1, w4 + cmp w3, w1
bgt G_M53831_IG04
- ;; size=12 bbWeight=4 PerfScore 8.00
+ ;; size=16 bbWeight=4 PerfScore 10.00
G_M53831_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; byrRegs -[x0] mov w0, wzr @@ -64,8 +70,13 @@ G_M53831_IG10: ; bbWeight=0.50, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M53831_IG11: ; 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 96, prolog size 8, PerfScore 45.75, instruction count 24, allocated bytes for code 96 (MethodHash=36dc2db8) for method Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 56.75, instruction count 31, allocated bytes for code 124 (MethodHash=36dc2db8) for method Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -76,7 +87,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+36 (+31.03%) : 4530.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)

@@ -9,20 +9,18 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 6, 4.50) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M15570_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M15570_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbnz x0, G_M15570_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 @@ -37,42 +35,52 @@ G_M15570_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ldr x1, [x1] blr x1 ; gcrRegs +[x0]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15]
- mov x14, x19
bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0] cbnz x0, G_M15570_IG04 movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- str x0, [x19] - ;; size=68 bbWeight=0.50 PerfScore 7.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str x0, [x1] + ;; size=100 bbWeight=0.50 PerfScore 9.75
G_M15570_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M15570_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 116, prolog size 12, PerfScore 22.75, instruction count 29, allocated bytes for code 116 (MethodHash=1e56c32d) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
+; Total bytes of code 152, prolog size 8, PerfScore 23.25, instruction count 38, allocated bytes for code 152 (MethodHash=1e56c32d) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -80,10 +88,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+44 (+31.43%) : 264774.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,33 +9,29 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T02] ( 2, 1 ) int -> x0 -;* V02 cse0 [V02,T03] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V03 cse1 [V03,T00] ( 7, 5 ) long -> x19 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> x0 +;* V02 cse0 [V02,T01] ( 0, 0 ) long -> zero-ref "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M24568_IG08 - ;; size=36 bbWeight=1 PerfScore 7.50
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M24568_IG08 + ;; size=20 bbWeight=1 PerfScore 5.50
G_M24568_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w0, [x19, #0xD8]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
cbnz w0, G_M24568_IG06
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -44,44 +40,57 @@ G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr tbz w0, #0, G_M24568_IG09 ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M24568_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #0xC9]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
mov w1, #1 cmp w0, #0 cinc w0, w1, eq
- str w0, [x19, #0xD8] - ;; size=20 bbWeight=0.50 PerfScore 2.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M24568_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19, #0xD8] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M24568_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M24568_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #8 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M24568_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #4 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG05
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 12, PerfScore 26.50, instruction count 35, allocated bytes for code 140 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 184, prolog size 8, PerfScore 26.00, instruction count 46, allocated bytes for code 184 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -89,10 +98,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

libraries_tests.run.windows.arm64.Release.mch

-24 (-27.27%) : 619360.dasm - System.Text.RegularExpressions.RegexParser:IsSpace(ushort):ubyte (Tier1)

@@ -9,7 +9,7 @@ ; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 5, 3.27) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;* V01 loc0 [V01 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]> @@ -17,16 +17,17 @@ ;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref single-def "field V01._length (fldOffset=0x8)" P-INDEP ;* V06 tmp4 [V06 ] ( 0, 0 ) byref -> zero-ref single-def "field V03._reference (fldOffset=0x0)" P-INDEP ;* V07 tmp5 [V07 ] ( 0, 0 ) int -> zero-ref single-def "field V03._length (fldOffset=0x8)" P-INDEP
+; V08 cse0 [V08,T01] ( 3, 2.13) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0
-G_M36538_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M36538_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 G_M36538_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- uxth w1, w0 - cmp w1, #32
+ uxth w0, w0 + cmp w0, #32
ble G_M36538_IG05 ;; size=12 bbWeight=1 PerfScore 2.00 G_M36538_IG03: ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -36,28 +37,20 @@ G_M36538_IG04: ; bbWeight=0.87, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=0.87 PerfScore 1.73
-G_M36538_IG05: ; bbWeight=0.13, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz - uxth w1, w0 - cmp w1, #128 - bhs G_M36538_IG07 - uxth w0, w0
+G_M36538_IG05: ; bbWeight=0.13, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldrb w0, [x1, w0, UXTW #2] cmp w0, #1 cset x0, eq
- ;; size=40 bbWeight=0.13 PerfScore 1.07
+ ;; size=24 bbWeight=0.13 PerfScore 0.73
G_M36538_IG06: ; bbWeight=0.13, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=0.13 PerfScore 0.27
-G_M36538_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - bl CORINFO_HELP_RNGCHKFAIL - brk_windows #0 - ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 88, prolog size 8, PerfScore 7.00, instruction count 22, allocated bytes for code 88 (MethodHash=4a597145) for method System.Text.RegularExpressions.RegexParser:IsSpace(ushort):ubyte (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 6.67, instruction count 16, allocated bytes for code 64 (MethodHash=4a597145) for method System.Text.RegularExpressions.RegexParser:IsSpace(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: @@ -68,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 88 (0x000058)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-48 (-25.53%) : 398112.dasm - MS.Internal.Xml.Cache.XPathNode:SetSimilarElement(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)

@@ -9,7 +9,7 @@ ; 0 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 14, 4.23) byref -> x19 this single-def
+; V00 this [V00,T00] ( 5, 4.02) byref -> x19 this single-def
; V01 arg1 [V01,T03] ( 3, 2.02) ref -> x0 class-hnd single-def <MS.Internal.Xml.Cache.XPathNodeInfoTable> ; V02 arg2 [V02,T01] ( 4, 3.02) ref -> x7 class-hnd single-def <MS.Internal.Xml.Cache.XPathNode[]> ; V03 arg3 [V03,T02] ( 3, 3 ) int -> x3 single-def @@ -32,6 +32,7 @@ ;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom> ;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom> ;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom>
+; V23 cse0 [V23,T04] ( 11, 2.21) ref -> x6 "CSE - unknown"
; ; Lcl frame size = 24 @@ -49,54 +50,38 @@ G_M62460_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=28 bbWeight=1 PerfScore 4.50 G_M62460_IG02: ; bbWeight=1, gcrefRegs=0081 {x0 x7}, byrefRegs=80000 {x19}, byref, isz strh w3, [x19, #0x18]
- ldr x1, [x19]
+ ldr x6, [x19] + ; gcrRegs +[x6] + ldr x1, [x6, #0x38]
; gcrRegs +[x1]
- ldr x1, [x1, #0x38]
cmp x7, x1 bne G_M62460_IG04 ;; size=20 bbWeight=1 PerfScore 8.50 G_M62460_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x0-x1 x7]
+ ; gcrRegs -[x0-x1 x6-x7]
; byrRegs -[x19] ldr x19, [sp, #0x28] ldp fp, lr, [sp, #0x18] add sp, sp, #48 ret lr ;; size=16 bbWeight=1 PerfScore 4.50
-G_M62460_IG04: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0081 {x0 x7}, byrefRegs=80000 {x19}, gcvars, byref - ; gcrRegs +[x0 x7]
+G_M62460_IG04: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=00C1 {x0 x6 x7}, byrefRegs=80000 {x19}, gcvars, byref + ; gcrRegs +[x0 x6-x7]
; byrRegs +[x19]
- ldr x1, [x19]
+ ldr x1, [x6, #0x40]
; gcrRegs +[x1]
- ldr x1, [x1, #0x40]
str x1, [sp] // [V04 OutArgs]
- ldr x1, [x19] - ldr w1, [x1, #0x58]
+ ldr w1, [x6, #0x58]
; gcrRegs -[x1] str w1, [sp, #0x08] // [V04 OutArgs+0x08]
- ldr x1, [x19] - ; gcrRegs +[x1] - ldr w1, [x1, #0x5C] - ; gcrRegs -[x1]
+ ldr w1, [x6, #0x5C]
str w1, [sp, #0x10] // [V04 OutArgs+0x10]
- ldr x1, [x19] - ; gcrRegs +[x1] - ldr x1, [x1, #0x08] - ldr x2, [x19] - ; gcrRegs +[x2] - ldr x2, [x2, #0x10] - ldr x3, [x19] - ; gcrRegs +[x3] - ldr x3, [x3, #0x18] - ldr x4, [x19] - ; gcrRegs +[x4] - ldr x4, [x4, #0x20] - ldr x5, [x19]
+ ldp x1, x2, [x6, #0x08] + ; gcrRegs +[x1-x2] + ldp x3, x4, [x6, #0x18] + ; gcrRegs +[x3-x4] + ldp x5, x6, [x6, #0x28]
; gcrRegs +[x5]
- ldr x5, [x5, #0x28] - ldr x6, [x19] - ; gcrRegs +[x6] - ldr x6, [x6, #0x30]
movz x8, #0xD1FFAB1E // code for MS.Internal.Xml.Cache.XPathNodeInfoTable:Create(System.String,System.String,System.String,System.String,MS.Internal.Xml.Cache.XPathNode[],MS.Internal.Xml.Cache.XPathNode[],MS.Internal.Xml.Cache.XPathNode[],System.Xml.XPath.XPathDocument,int,int):MS.Internal.Xml.Cache.XPathNodeInfoAtom:this movk x8, #0xD1FFAB1E LSL #16 movk x8, #0xD1FFAB1E LSL #32 @@ -112,9 +97,9 @@ G_M62460_IG04: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=008 ; gcrRegs -[x0 x15] ; byrRegs -[x14 x19] b G_M62460_IG03
- ;; size=124 bbWeight=0.02 PerfScore 1.60
+ ;; size=76 bbWeight=0.02 PerfScore 0.83
-; Total bytes of code 188, prolog size 16, PerfScore 19.10, instruction count 47, allocated bytes for code 188 (MethodHash=7c670c03) for method MS.Internal.Xml.Cache.XPathNode:SetSimilarElement(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
+; Total bytes of code 140, prolog size 16, PerfScore 18.33, instruction count 35, allocated bytes for code 140 (MethodHash=7c670c03) for method MS.Internal.Xml.Cache.XPathNode:SetSimilarElement(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
; ============================================================ Unwind Info: @@ -125,7 +110,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
+ 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)

-44 (-23.40%) : 397962.dasm - MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)

@@ -9,7 +9,7 @@ ; 0 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 14, 4.04) byref -> x19 this single-def
+; V00 this [V00,T00] ( 5, 4.00) byref -> x19 this single-def
; V01 arg1 [V01,T03] ( 3, 2.00) ref -> x0 class-hnd single-def <MS.Internal.Xml.Cache.XPathNodeInfoTable> ; V02 arg2 [V02,T01] ( 4, 3.00) ref -> x6 class-hnd single-def <MS.Internal.Xml.Cache.XPathNode[]> ; V03 arg3 [V03,T02] ( 3, 3 ) int -> x3 single-def @@ -32,6 +32,7 @@ ;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom> ;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom> ;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <MS.Internal.Xml.Cache.XPathNodeInfoAtom>
+; V23 cse0 [V23,T04] ( 11, 2.04) ref -> x7 "CSE - unknown"
; ; Lcl frame size = 24 @@ -49,53 +50,38 @@ G_M1111_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=28 bbWeight=1 PerfScore 4.50 G_M1111_IG02: ; bbWeight=1, gcrefRegs=0041 {x0 x6}, byrefRegs=80000 {x19}, byref, isz strh w3, [x19, #0x14]
- ldr x1, [x19]
+ ldr x7, [x19] + ; gcrRegs +[x7] + ldr x1, [x7, #0x30]
; gcrRegs +[x1]
- ldr x1, [x1, #0x30]
cmp x6, x1 bne G_M1111_IG04 ;; size=20 bbWeight=1 PerfScore 8.50 G_M1111_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x0-x1 x6]
+ ; gcrRegs -[x0-x1 x6-x7]
; byrRegs -[x19] ldr x19, [sp, #0x28] ldp fp, lr, [sp, #0x18] add sp, sp, #48 ret lr ;; size=16 bbWeight=1 PerfScore 4.50
-G_M1111_IG04: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0041 {x0 x6}, byrefRegs=80000 {x19}, gcvars, byref - ; gcrRegs +[x0 x6]
+G_M1111_IG04: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=00C1 {x0 x6 x7}, byrefRegs=80000 {x19}, gcvars, byref + ; gcrRegs +[x0 x6-x7]
; byrRegs +[x19]
- ldr x1, [x19]
+ ldr x1, [x7, #0x40]
; gcrRegs +[x1]
- ldr x1, [x1, #0x40]
str x1, [sp] // [V04 OutArgs]
- ldr x1, [x19] - ldr w1, [x1, #0x58]
+ ldr w1, [x7, #0x58]
; gcrRegs -[x1] str w1, [sp, #0x08] // [V04 OutArgs+0x08]
- ldr x1, [x19] - ; gcrRegs +[x1] - ldr w1, [x1, #0x5C] - ; gcrRegs -[x1]
+ ldr w1, [x7, #0x5C]
str w1, [sp, #0x10] // [V04 OutArgs+0x10]
- ldr x1, [x19] - ; gcrRegs +[x1] - ldr x1, [x1, #0x08] - ldr x2, [x19] - ; gcrRegs +[x2] - ldr x2, [x2, #0x10] - ldr x3, [x19] - ; gcrRegs +[x3] - ldr x3, [x3, #0x18] - ldr x4, [x19] - ; gcrRegs +[x4] - ldr x4, [x4, #0x20] - ldr x5, [x19]
+ ldp x1, x2, [x7, #0x08] + ; gcrRegs +[x1-x2] + ldp x3, x4, [x7, #0x18] + ; gcrRegs +[x3-x4] + ldr x5, [x7, #0x28]
; gcrRegs +[x5]
- ldr x5, [x5, #0x28] - ldr x7, [x19] - ; gcrRegs +[x7]
ldr x7, [x7, #0x38] movz x8, #0xD1FFAB1E // code for MS.Internal.Xml.Cache.XPathNodeInfoTable:Create(System.String,System.String,System.String,System.String,MS.Internal.Xml.Cache.XPathNode[],MS.Internal.Xml.Cache.XPathNode[],MS.Internal.Xml.Cache.XPathNode[],System.Xml.XPath.XPathDocument,int,int):MS.Internal.Xml.Cache.XPathNodeInfoAtom:this movk x8, #0xD1FFAB1E LSL #16 @@ -112,9 +98,9 @@ G_M1111_IG04: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0041 ; gcrRegs -[x0 x15] ; byrRegs -[x14 x19] b G_M1111_IG03
- ;; size=124 bbWeight=0.00 PerfScore 0.30
+ ;; size=80 bbWeight=0.00 PerfScore 0.16
-; Total bytes of code 188, prolog size 16, PerfScore 17.80, instruction count 47, allocated bytes for code 188 (MethodHash=c416fba8) for method MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
+; Total bytes of code 144, prolog size 16, PerfScore 17.66, instruction count 36, allocated bytes for code 144 (MethodHash=c416fba8) for method MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
; ============================================================ Unwind Info: @@ -125,7 +111,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+45.45%) : 591505.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)

@@ -8,8 +8,9 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 46808 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.06) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -17,36 +18,52 @@ G_M7274_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movn w1, #0xD1FFAB1E - add w1, w1, w0, UXTH
+G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
uxth w0, w0
- mov w2, #0xD1FFAB1E
+ movn w1, #0xD1FFAB1E + add w1, w0, w1
cmp w1, #2
- ccmp w0, w2, z, hi - cinc w0, wzr, eq - ;; size=28 bbWeight=1 PerfScore 4.00 -G_M7274_IG03: ; bbWeight=1, epilog, nogc, extend
+ bhi G_M7274_IG05 + ;; size=20 bbWeight=1 PerfScore 3.00 +G_M7274_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, #1 + ;; size=4 bbWeight=1 PerfScore 0.50 +G_M7274_IG04: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
+G_M7274_IG05: ; bbWeight=0.06, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + mov w1, #0xD1FFAB1E + cmp w0, w1 + beq G_M7274_IG03 + ;; size=12 bbWeight=0.06 PerfScore 0.11 +G_M7274_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M7274_IG07: ; bbWeight=0, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 7.50, instruction count 11, allocated bytes for code 44 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 7.11, instruction count 16, allocated bytes for code 64 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 1
+ Epilog Count : 2
E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
+ ---- Scope 1 + Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) + Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

+20 (+45.45%) : 52555.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)

@@ -8,8 +8,9 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 80704 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.14) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -17,36 +18,52 @@ G_M7274_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movn w1, #0xD1FFAB1E - add w1, w1, w0, UXTH
+G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
uxth w0, w0
- mov w2, #0xD1FFAB1E
+ movn w1, #0xD1FFAB1E + add w1, w0, w1
cmp w1, #2
- ccmp w0, w2, z, hi - cinc w0, wzr, eq - ;; size=28 bbWeight=1 PerfScore 4.00 -G_M7274_IG03: ; bbWeight=1, epilog, nogc, extend
+ bhi G_M7274_IG05 + ;; size=20 bbWeight=1 PerfScore 3.00 +G_M7274_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, #1 + ;; size=4 bbWeight=1 PerfScore 0.50 +G_M7274_IG04: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
+G_M7274_IG05: ; bbWeight=0.14, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + mov w1, #0xD1FFAB1E + cmp w0, w1 + beq G_M7274_IG03 + ;; size=12 bbWeight=0.14 PerfScore 0.27 +G_M7274_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M7274_IG07: ; bbWeight=0, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 7.50, instruction count 11, allocated bytes for code 44 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 7.27, instruction count 16, allocated bytes for code 64 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 1
+ Epilog Count : 2
E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
+ ---- Scope 1 + Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) + Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

+20 (+45.45%) : 85083.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)

@@ -8,8 +8,9 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 142016 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.06) int -> x0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -17,36 +18,52 @@ G_M7274_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x10]! mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movn w1, #0xD1FFAB1E - add w1, w1, w0, UXTH
+G_M7274_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
uxth w0, w0
- mov w2, #0xD1FFAB1E
+ movn w1, #0xD1FFAB1E + add w1, w0, w1
cmp w1, #2
- ccmp w0, w2, z, hi - cinc w0, wzr, eq - ;; size=28 bbWeight=1 PerfScore 4.00 -G_M7274_IG03: ; bbWeight=1, epilog, nogc, extend
+ bhi G_M7274_IG05 + ;; size=20 bbWeight=1 PerfScore 3.00 +G_M7274_IG03: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, #1 + ;; size=4 bbWeight=1.00 PerfScore 0.50 +G_M7274_IG04: ; bbWeight=1.00, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr
- ;; size=8 bbWeight=1 PerfScore 2.00
+ ;; size=8 bbWeight=1.00 PerfScore 2.00 +G_M7274_IG05: ; bbWeight=0.06, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + mov w1, #0xD1FFAB1E + cmp w0, w1 + beq G_M7274_IG03 + ;; size=12 bbWeight=0.06 PerfScore 0.12 +G_M7274_IG06: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0.00 PerfScore 0.00 +G_M7274_IG07: ; bbWeight=0.00, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 7.50, instruction count 11, allocated bytes for code 44 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 7.12, instruction count 16, allocated bytes for code 64 (MethodHash=6133e395) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 1
- Epilog Count : 1
+ Epilog Count : 2
E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01)
+ ---- Scope 1 + Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) + Epilog Start Index : 1 (0x01)
---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----

librariestestsnotieredcompilation.run.windows.arm64.Release.mch

-40 (-23.81%) : 11430.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)

@@ -9,19 +9,16 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M62751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -34,19 +31,11 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- str x14, [x0, #0x18] - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - add x14, x19, #0xD1FFAB1E - str x14, [x0, #0x20] - movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x14, x20
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF @@ -63,34 +52,36 @@ G_M62751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x14, #0xD1FFAB1E
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32
- stp x14, x19, [x0, #0x18] - add x14, x20, #8
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=144 bbWeight=1 PerfScore 22.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M62751_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00007FFEF289D7A0h, 00007FFEF6881E48h +RWD16 dq 00007FFEFABB9EB8h, 00007FFEF6881C08h
-; Total bytes of code 168, prolog size 12, PerfScore 28.00, instruction count 42, allocated bytes for code 168 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=85f30ae0) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -98,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 157818.dasm - System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M48371_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M48371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M48371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M48371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M48371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M48371_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00007FFB21F9D7A0h, 00007FFB247C92C0h +RWD16 dq 00007FFB21F9D7A0h, 00007FFB247C92D8h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=f5cf430c) for method System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=f5cf430c) for method System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-36 (-21.95%) : 159914.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M57856_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M57856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - add x14, x21, #24 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M57856_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00007FFC47EFD7A0h, 00007FFC4ACB0480h +RWD16 dq 00007FFC47EFD7A0h, 00007FFC4ACB0498h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=eade1dff) for method System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+28 (+30.43%) : 108167.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)

@@ -10,55 +10,61 @@ ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Object>
-; V02 cse0 [V02,T00] ( 5, 5 ) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M9155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M9155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, #91 movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 str w0, [x1]
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - stp xzr, xzr, [x19] - str xzr, [x19, #0x10]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0] + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + str xzr, [x0]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0]
- add x14, x19, #24
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=68 bbWeight=1 PerfScore 11.00
+ ;; size=104 bbWeight=1 PerfScore 16.00
G_M9155_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 92, prolog size 12, PerfScore 17.50, instruction count 23, allocated bytes for code 92 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 19.50, instruction count 30, allocated bytes for code 120 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -66,10 +72,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+48 (+30.77%) : 36247.dasm - Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)

@@ -10,75 +10,85 @@ ; ; V00 this [V00,T00] ( 6, 6 ) ref -> x19 this class-hnd single-def <Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) long -> x20 "CSE - aggressive" -; V03 cse1 [V03,T02] ( 5, 5 ) long -> x21 "CSE - aggressive"
; ; Lcl frame size = 8 G_M54721_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M54721_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #33 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x21, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - ldr x15, [x21]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #8 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #34 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x21, #0x10]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #16 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #35 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x21, #0x20]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #48 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- mov x0, x20
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #32 bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ldr x15, [x21, #0x30]
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32 + ldr x15, [x14]
; gcrRegs +[x15] add x14, x19, #56 ; byrRegs +[x14] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15 x19] ; byrRegs -[x14]
- ;; size=120 bbWeight=1 PerfScore 29.00
+ ;; size=176 bbWeight=1 PerfScore 36.00
G_M54721_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 156, prolog size 16, PerfScore 38.00, instruction count 39, allocated bytes for code 156 (MethodHash=47732a3e) for method Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)
+; Total bytes of code 204, prolog size 12, PerfScore 43.00, instruction count 51, allocated bytes for code 204 (MethodHash=47732a3e) for method Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -89,7 +99,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ 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) @@ -97,9 +107,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

+36 (+34.62%) : 40392.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,65 +9,72 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 2, 1 ) int -> x0 -; V02 cse0 [V02,T00] ( 6, 4.50) long -> x19 "CSE - aggressive" -; V03 rat0 [V03,T02] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> x0
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - ldr w0, [x19]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0]
cbnz w0, G_M24568_IG05 ;; size=20 bbWeight=1 PerfScore 5.50 G_M24568_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub x0, x19, #216 - movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr w1, [x1] - tbz w1, #0, G_M24568_IG07 - ;; size=24 bbWeight=0.50 PerfScore 3.00
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + tbz w0, #0, G_M24568_IG07 + ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #-0x0F]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
mov w1, #1 cmp w0, #0 cinc w0, w1, eq
- str w0, [x19] - ;; size=20 bbWeight=0.50 PerfScore 2.75
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + str w0, [x1] + ;; size=44 bbWeight=0.50 PerfScore 4.25
G_M24568_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M24568_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M24568_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
mov w1, #4 bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE b G_M24568_IG04
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 12, PerfScore 20.75, instruction count 26, allocated bytes for code 104 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 140, prolog size 8, PerfScore 20.50, instruction count 35, allocated bytes for code 140 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ 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) @@ -75,10 +82,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

realworld.run.windows.arm64.checked.mch

-36 (-21.95%) : 26868.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)

@@ -9,26 +9,19 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V02 tmp2 [V02,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> -; V03 cse0 [V03,T02] ( 3, 3 ) long -> x19 "CSE - aggressive" -; V04 cse1 [V04,T03] ( 3, 3 ) long -> x20 "CSE - aggressive" -; V05 cse2 [V05,T04] ( 3, 3 ) long -> x21 "CSE - aggressive" -; V06 cse3 [V06,T05] ( 3, 3 ) long -> x22 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> +; V02 tmp2 [V02,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; ; Lcl frame size = 0 G_M38922_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x10] - stp x21, x22, [sp, #0x20]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50 -G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -38,23 +31,18 @@ G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - str x20, [x0, #0x18] - movz x21, #0xD1FFAB1E // code for <unknown method> - movk x21, #0xD1FFAB1E LSL #16 - movk x21, #0xD1FFAB1E LSL #32 - str x21, [x0, #0x20] - movz x22, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x22, #0xD1FFAB1E LSL #16 - movk x22, #0xD1FFAB1E LSL #32 - mov x14, x22
+ ldr q16, [@RWD00] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] add x14, x0, #8 @@ -64,34 +52,36 @@ G_M38922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14]
- str x20, [x0, #0x18] - sub x14, x21, #72 - str x14, [x0, #0x20] - add x14, x22, #8
+ ldr q16, [@RWD16] + str q16, [x0, #0x18] + movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 21.50
+ ;; size=112 bbWeight=1 PerfScore 21.00
G_M38922_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00 +RWD00 dq 00007FF86A33D218h, 00007FF86A4A1DE8h +RWD16 dq 00007FF86A33D218h, 00007FF86A4A1DA0h
-; Total bytes of code 164, prolog size 16, PerfScore 29.00, instruction count 41, allocated bytes for code 164 (MethodHash=9f2a67f5) for method Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
+ +; Total bytes of code 128, prolog size 8, PerfScore 24.50, instruction count 32, allocated bytes for code 128 (MethodHash=9f2a67f5) for method Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -99,10 +89,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- E6 save_next - C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-12 (-14.29%) : 13237.dasm - Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>cDisplayClass3_1[float]:b0(byref):this (FullOpts)

@@ -7,31 +7,27 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]>
+; V00 this [V00,T00] ( 6, 6 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]>
; V01 arg1 [V01,T03] ( 3, 3 ) byref -> x20 single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T04] ( 3, 3 ) byref -> x21 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" -; V05 rat1 [V05,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
+; V03 rat0 [V03,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" +; V04 rat1 [V04,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M3149_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]! + stp x19, x20, [sp, #0x10]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] mov x20, x1 ; byrRegs +[x20]
- ;; size=24 bbWeight=1 PerfScore 4.50
+ ;; size=20 bbWeight=1 PerfScore 3.50
G_M3149_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref ldr x2, [x19, #0x08] ; gcrRegs +[x2]
- add x21, x19, #24 - ; byrRegs +[x21] - mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] ldr x0, [x2, #0x08] ; gcrRegs +[x0] @@ -42,7 +38,7 @@ G_M3149_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20} ; byrRegs -[x1] ldr x3, [x19, #0x10] ; gcrRegs +[x3]
- mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] mov x2, x20 ; byrRegs +[x2] @@ -50,15 +46,14 @@ G_M3149_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20} ; gcrRegs +[x0] ldr x3, [x3, #0x18] ; gcrRegs -[x3]
- ;; size=44 bbWeight=1 PerfScore 21.00
+ ;; size=40 bbWeight=1 PerfScore 20.50
G_M3149_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
br x3
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 16, PerfScore 30.50, instruction count 21, allocated bytes for code 84 (MethodHash=ab8bf3b2) for method Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]:<GetMappingGetter>b__0(byref):this (FullOpts)
+; Total bytes of code 72, prolog size 12, PerfScore 27.00, instruction count 18, allocated bytes for code 72 (MethodHash=ab8bf3b2) for method Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]:<GetMappingGetter>b__0(byref):this (FullOpts)
; ============================================================ Unwind Info: @@ -69,7 +64,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ 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) @@ -77,9 +72,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

-12 (-14.29%) : 13002.dasm - Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>cDisplayClass18_02[Microsoft.ML.Data.VBuffer1[float],float]:b0(byref):this (FullOpts)

@@ -7,31 +7,27 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]>
+; V00 this [V00,T00] ( 6, 6 ) ref -> x19 this class-hnd single-def <Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]>
; V01 arg1 [V01,T03] ( 3, 3 ) byref -> x20 single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T04] ( 3, 3 ) byref -> x21 "CSE - aggressive" -; V04 rat0 [V04,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" -; V05 rat1 [V05,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
+; V03 rat0 [V03,T01] ( 3, 6 ) ref -> x2 "delegate invoke call" +; V04 rat1 [V04,T02] ( 3, 6 ) ref -> x3 "delegate invoke call"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M41554_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]! + stp x19, x20, [sp, #0x10]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] mov x20, x1 ; byrRegs +[x20]
- ;; size=24 bbWeight=1 PerfScore 4.50
+ ;; size=20 bbWeight=1 PerfScore 3.50
G_M41554_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref ldr x2, [x19, #0x08] ; gcrRegs +[x2]
- add x21, x19, #24 - ; byrRegs +[x21] - mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] ldr x0, [x2, #0x08] ; gcrRegs +[x0] @@ -42,7 +38,7 @@ G_M41554_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; byrRegs -[x1] ldr x3, [x19, #0x10] ; gcrRegs +[x3]
- mov x1, x21
+ add x1, x19, #24
; byrRegs +[x1] mov x2, x20 ; byrRegs +[x2] @@ -50,15 +46,14 @@ G_M41554_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20 ; gcrRegs +[x0] ldr x3, [x3, #0x18] ; gcrRegs -[x3]
- ;; size=44 bbWeight=1 PerfScore 21.00
+ ;; size=40 bbWeight=1 PerfScore 20.50
G_M41554_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
br x3
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 84, prolog size 16, PerfScore 30.50, instruction count 21, allocated bytes for code 84 (MethodHash=aeed5dad) for method Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]:<GetValueGetter>b__0(byref):this (FullOpts)
+; Total bytes of code 72, prolog size 12, PerfScore 27.00, instruction count 18, allocated bytes for code 72 (MethodHash=aeed5dad) for method Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]:<GetValueGetter>b__0(byref):this (FullOpts)
; ============================================================ Unwind Info: @@ -69,7 +64,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ 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) @@ -77,9 +72,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40] - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

+32 (+20.51%) : 6008.dasm - FSharp.Compiler.AbstractIL.IL+ILAlignment:.cctor() (FullOpts)

@@ -13,81 +13,87 @@ ; V02 tmp2 [V02,T01] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.AbstractIL.IL+ILAlignment> ; V03 tmp3 [V03,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.AbstractIL.IL+ILAlignment> ; V04 tmp4 [V04,T03] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.AbstractIL.IL+ILAlignment>
-; V05 cse0 [V05,T04] ( 5, 5 ) long -> x19 "CSE - aggressive" -; V06 cse1 [V06,T05] ( 5, 5 ) long -> x20 "CSE - aggressive"
; ; Lcl frame size = 0 G_M38116_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M38116_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] str wzr, [x0, #0x08]
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x14, x20
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] mov w14, #1 str w14, [x0, #0x08]
- add x14, x20, #8
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] mov w14, #2 str w14, [x0, #0x08]
- add x14, x20, #16
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] mov w14, #3 str w14, [x0, #0x08]
- add x14, x20, #24
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 22.50
+ ;; size=172 bbWeight=1 PerfScore 27.50
G_M38116_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 156, prolog size 12, PerfScore 28.00, instruction count 39, allocated bytes for code 156 (MethodHash=ea156b1b) for method FSharp.Compiler.AbstractIL.IL+ILAlignment:.cctor() (FullOpts)
+; Total bytes of code 188, prolog size 8, PerfScore 31.00, instruction count 47, allocated bytes for code 188 (MethodHash=ea156b1b) for method FSharp.Compiler.AbstractIL.IL+ILAlignment:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -95,10 +101,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+32 (+20.51%) : 25376.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:.cctor() (FullOpts)

@@ -13,89 +13,95 @@ ; V02 tmp2 [V02,T01] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet> ; V03 tmp3 [V03,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet> ; V04 tmp4 [V04,T03] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet>
-;* V05 tmp5 [V05,T06] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -;* V06 tmp6 [V06,T07] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -;* V07 tmp7 [V07,T08] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -;* V08 tmp8 [V08,T09] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -;* V09 tmp9 [V09,T10] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -;* V10 tmp10 [V10,T11] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -;* V11 tmp11 [V11,T12] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -;* V12 tmp12 [V12,T13] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -; V13 cse0 [V13,T04] ( 5, 5 ) long -> x19 "CSE - aggressive" -; V14 cse1 [V14,T05] ( 5, 5 ) long -> x20 "CSE - aggressive"
+;* V05 tmp5 [V05,T04] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V06 tmp6 [V06,T05] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V07 tmp7 [V07,T06] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V08 tmp8 [V08,T07] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V09 tmp9 [V09,T08] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V10 tmp10 [V10,T09] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V11 tmp11 [V11,T10] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V12 tmp12 [V12,T11] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
; ; Lcl frame size = 0 G_M22985_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M22985_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x19, #0xD1FFAB1E - movk x19, #0xD1FFAB1E LSL #16 - movk x19, #0xD1FFAB1E LSL #32 - mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] mov w14, #0xD1FFAB1E strh w14, [x0, #0x08]
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - mov x14, x20
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] strh wzr, [x0, #0x08]
- add x14, x20, #8
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] mov w14, #0xD1FFAB1E strh w14, [x0, #0x08]
- add x14, x20, #16
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- mov x0, x19
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] mov w14, #1 strh w14, [x0, #0x08]
- add x14, x20, #24
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x14, #0xD1FFAB1E LSL #16 + movk x14, #0xD1FFAB1E LSL #32
mov x15, x0 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x15]
- ;; size=132 bbWeight=1 PerfScore 22.50
+ ;; size=172 bbWeight=1 PerfScore 27.50
G_M22985_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 156, prolog size 12, PerfScore 28.00, instruction count 39, allocated bytes for code 156 (MethodHash=6c4aa636) for method Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:.cctor() (FullOpts)
+; Total bytes of code 188, prolog size 8, PerfScore 31.00, instruction count 47, allocated bytes for code 188 (MethodHash=6c4aa636) for method Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:.cctor() (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -103,10 +109,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+36 (+37.50%) : 31621.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)

@@ -9,22 +9,21 @@ ; ; V00 arg0 [V00,T00] ( 4, 3 ) ref -> x19 class-hnd single-def <System.Action> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 4.50) long -> x20 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M64219_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp mov x19, x0 ; gcrRegs +[x19] ;; size=16 bbWeight=1 PerfScore 3.00 G_M64219_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - ldrb w0, [x20]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
cbnz w0, G_M64219_IG04 ;; size=20 bbWeight=1 PerfScore 5.50 G_M64219_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref @@ -33,12 +32,18 @@ G_M64219_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0
- strb w0, [x20, #0x01] - ;; size=24 bbWeight=0.50 PerfScore 3.25
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + strb w0, [x1] + ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M64219_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ldrb w0, [x20, #0x01]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0]
cbz w0, G_M64219_IG06
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x08] ; gcrRegs +[x0] @@ -47,15 +52,18 @@ G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcrRegs -[x0 x19] ;; size=12 bbWeight=0.50 PerfScore 3.50 G_M64219_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x20, #0x01] - ;; size=4 bbWeight=1 PerfScore 3.00
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldrb w0, [x0] + ;; size=16 bbWeight=1 PerfScore 4.50
G_M64219_IG07: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 96, prolog size 12, PerfScore 25.25, instruction count 24, allocated bytes for code 96 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 30.00, instruction count 33, allocated bytes for code 132 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -66,7 +74,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -74,7 +82,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! E4 end E4 end

smoke_tests.nativeaot.windows.arm64.checked.mch

-8 (-14.29%) : 9401.dasm - System.Func`1[int]:InvokeOpenStaticThunk():int:this (FullOpts)

@@ -7,44 +7,43 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 3.60) ref -> x1 this class-hnd exact single-def <System.Func`1[int]>
+; V00 this [V00,T00] ( 5, 3.50) ref -> x0 this class-hnd exact single-def <System.Func`1[int]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) int -> zero-ref "calli"
+; V03 cse0 [V03,T01] ( 5, 1.10) long -> x1 multi-def "CSE - unknown"
; ; Lcl frame size = 0 G_M17141_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x10]! mov fp, sp
- mov x1, x0 - ; gcrRegs +[x1] - ;; size=12 bbWeight=1 PerfScore 2.00 -G_M17141_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz - ldr w0, [x1, #0x18] - tbnz w0, #1, G_M17141_IG05
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M17141_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x0] + ldr w1, [x0, #0x18] + tbnz w1, #1, G_M17141_IG05
;; size=8 bbWeight=1 PerfScore 4.00
-G_M17141_IG03: ; bbWeight=0.40, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref - ldr x0, [x1, #0x18]
+G_M17141_IG03: ; bbWeight=0.40, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ldr x1, [x0, #0x18]
;; size=4 bbWeight=0.40 PerfScore 1.20 G_M17141_IG04: ; bbWeight=0.40, epilog, nogc, extend ldp fp, lr, [sp], #0x10
- br x0
+ br x1
; gcr arg pop 0 ;; size=8 bbWeight=0.40 PerfScore 0.80
-G_M17141_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref - ldr x0, [x1, #0x18] - ldr x0, [x0, #0x06] - ldr x1, [x1, #0x18] - ; gcrRegs -[x1]
+G_M17141_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref + ldr x1, [x0, #0x18] + ldr x0, [x1, #0x06] + ; gcrRegs -[x0]
ldr x1, [x1, #-0x02]
- ;; size=16 bbWeight=0.10 PerfScore 1.20
+ ;; size=12 bbWeight=0.10 PerfScore 0.90
G_M17141_IG06: ; bbWeight=0.10, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x1 ; gcr arg pop 0 ;; size=8 bbWeight=0.10 PerfScore 0.20
-; Total bytes of code 56, prolog size 12, PerfScore 9.40, instruction count 14, allocated bytes for code 56 (MethodHash=3b73bd0a) for method System.Func`1[int]:InvokeOpenStaticThunk():int:this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 8.60, instruction count 12, allocated bytes for code 48 (MethodHash=3b73bd0a) for method System.Func`1[int]:InvokeOpenStaticThunk():int:this (FullOpts)
; ============================================================ Unwind Info: @@ -55,7 +54,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-14.29%) : 9433.dasm - System.Func1[System.ValueTuple2[int,System.Canon]]:InvokeOpenStaticThunk():System.ValueTuple`2[int,System.Canon]:this (FullOpts)

@@ -7,46 +7,45 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 3.60) ref -> x1 this class-hnd exact single-def <System.Func`1[System.ValueTuple`2[int,System.__Canon]]>
+; V00 this [V00,T00] ( 5, 3.50) ref -> x0 this class-hnd exact single-def <System.Func`1[System.ValueTuple`2[int,System.__Canon]]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "calli" <System.ValueTuple`2[int,System.__Canon]> ;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref "field V02.Item2 (fldOffset=0x0)" P-DEP ;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "field V02.Item1 (fldOffset=0x8)" P-DEP
+; V05 cse0 [V05,T01] ( 5, 1.10) long -> x1 multi-def "CSE - unknown"
; ; Lcl frame size = 0 G_M34933_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x10]! mov fp, sp
- mov x1, x0 - ; gcrRegs +[x1] - ;; size=12 bbWeight=1 PerfScore 2.00 -G_M34933_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz - ldr w0, [x1, #0x18] - tbnz w0, #1, G_M34933_IG05
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M34933_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x0] + ldr w1, [x0, #0x18] + tbnz w1, #1, G_M34933_IG05
;; size=8 bbWeight=1 PerfScore 4.00
-G_M34933_IG03: ; bbWeight=0.40, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref - ldr x0, [x1, #0x18]
+G_M34933_IG03: ; bbWeight=0.40, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ldr x1, [x0, #0x18]
;; size=4 bbWeight=0.40 PerfScore 1.20 G_M34933_IG04: ; bbWeight=0.40, epilog, nogc, extend ldp fp, lr, [sp], #0x10
- br x0
+ br x1
; gcr arg pop 0 ;; size=8 bbWeight=0.40 PerfScore 0.80
-G_M34933_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref - ldr x0, [x1, #0x18] - ldr x0, [x0, #0x06] - ldr x1, [x1, #0x18] - ; gcrRegs -[x1]
+G_M34933_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref + ldr x1, [x0, #0x18] + ldr x0, [x1, #0x06] + ; gcrRegs -[x0]
ldr x1, [x1, #-0x02]
- ;; size=16 bbWeight=0.10 PerfScore 1.20
+ ;; size=12 bbWeight=0.10 PerfScore 0.90
G_M34933_IG06: ; bbWeight=0.10, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x1 ; gcr arg pop 0 ;; size=8 bbWeight=0.10 PerfScore 0.20
-; Total bytes of code 56, prolog size 12, PerfScore 9.40, instruction count 14, allocated bytes for code 56 (MethodHash=0c0d778a) for method System.Func`1[System.ValueTuple`2[int,System.__Canon]]:InvokeOpenStaticThunk():System.ValueTuple`2[int,System.__Canon]:this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 8.60, instruction count 12, allocated bytes for code 48 (MethodHash=0c0d778a) for method System.Func`1[System.ValueTuple`2[int,System.__Canon]]:InvokeOpenStaticThunk():System.ValueTuple`2[int,System.__Canon]:this (FullOpts)
; ============================================================ Unwind Info: @@ -57,7 +56,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-14.29%) : 9246.dasm - System.Action:InvokeOpenStaticThunk():this (FullOpts)

@@ -7,43 +7,42 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 3.60) ref -> x1 this class-hnd exact single-def <System.Action>
+; V00 this [V00,T00] ( 5, 3.50) ref -> x0 this class-hnd exact single-def <System.Action>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 5, 1.10) long -> x1 multi-def "CSE - unknown"
; ; Lcl frame size = 0 G_M62520_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x10]! mov fp, sp
- mov x1, x0 - ; gcrRegs +[x1] - ;; size=12 bbWeight=1 PerfScore 2.00 -G_M62520_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz - ldr w0, [x1, #0x18] - tbnz w0, #1, G_M62520_IG05
+ ;; size=8 bbWeight=1 PerfScore 1.50 +G_M62520_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x0] + ldr w1, [x0, #0x18] + tbnz w1, #1, G_M62520_IG05
;; size=8 bbWeight=1 PerfScore 4.00
-G_M62520_IG03: ; bbWeight=0.40, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref - ldr x0, [x1, #0x18]
+G_M62520_IG03: ; bbWeight=0.40, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ldr x1, [x0, #0x18]
;; size=4 bbWeight=0.40 PerfScore 1.20 G_M62520_IG04: ; bbWeight=0.40, epilog, nogc, extend ldp fp, lr, [sp], #0x10
- br x0
+ br x1
; gcr arg pop 0 ;; size=8 bbWeight=0.40 PerfScore 0.80
-G_M62520_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref - ldr x0, [x1, #0x18] - ldr x0, [x0, #0x06] - ldr x1, [x1, #0x18] - ; gcrRegs -[x1]
+G_M62520_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref + ldr x1, [x0, #0x18] + ldr x0, [x1, #0x06] + ; gcrRegs -[x0]
ldr x1, [x1, #-0x02]
- ;; size=16 bbWeight=0.10 PerfScore 1.20
+ ;; size=12 bbWeight=0.10 PerfScore 0.90
G_M62520_IG06: ; bbWeight=0.10, epilog, nogc, extend ldp fp, lr, [sp], #0x10 br x1 ; gcr arg pop 0 ;; size=8 bbWeight=0.10 PerfScore 0.20
-; Total bytes of code 56, prolog size 12, PerfScore 9.40, instruction count 14, allocated bytes for code 56 (MethodHash=f9b70bc7) for method System.Action:InvokeOpenStaticThunk():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 8.60, instruction count 12, allocated bytes for code 48 (MethodHash=f9b70bc7) for method System.Action:InvokeOpenStaticThunk():this (FullOpts)
; ============================================================ Unwind Info: @@ -54,7 +53,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+15.00%) : 6393.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)

@@ -11,64 +11,68 @@ ; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd exact single-def <Internal.TypeSystem.MethodForInstantiatedType> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 8) zero-ref "guarded devirt return temp" <Internal.TypeSystem.Instantiation>
-; V03 tmp2 [V03,T00] ( 6, 6.33) ref -> x0 single-def "guarded devirt arg temp"
+; V03 tmp2 [V03,T00] ( 5, 5.67) ref -> x0 single-def "guarded devirt arg temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.NoMetadata.RuntimeMethodDesc> ;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.InstantiatedMethod> ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.MethodForInstantiatedType>
-; V07 tmp6 [V07,T02] ( 2, 1 ) ref -> x0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP
+; V07 tmp6 [V07,T03] ( 2, 1 ) ref -> x0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP +; V08 cse0 [V08,T02] ( 3, 2.33) long -> x19 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M20372_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M20372_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x0] ldr x0, [x0, #0x20]
- ldr x1, [x0] - adrp x2, [HIGH RELOC #0xD1FFAB1E] - add x2, x2, [LOW RELOC #0xD1FFAB1E] - cmp x1, x2
+ ldr x19, [x0] + adrp x1, [HIGH RELOC #0xD1FFAB1E] + add x1, x1, [LOW RELOC #0xD1FFAB1E] + cmp x19, x1
bne G_M20372_IG04 ;; size=24 bbWeight=1 PerfScore 8.50 G_M20372_IG03: ; bbWeight=0.17, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
b Internal.TypeSystem.NoMetadata.RuntimeMethodDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=8 bbWeight=0.17 PerfScore 0.34
+ ;; size=12 bbWeight=0.17 PerfScore 0.68
G_M20372_IG04: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- ldr x1, [x0] - adrp x2, [HIGH RELOC #0xD1FFAB1E] - add x2, x2, [LOW RELOC #0xD1FFAB1E] - cmp x1, x2
+ adrp x1, [HIGH RELOC #0xD1FFAB1E] + add x1, x1, [LOW RELOC #0xD1FFAB1E] + cmp x19, x1
bne G_M20372_IG07
- ;; size=20 bbWeight=0.33 PerfScore 1.82
+ ;; size=16 bbWeight=0.33 PerfScore 0.82
G_M20372_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref ldr x0, [x0, #0x50] ;; size=4 bbWeight=0.50 PerfScore 1.50 G_M20372_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M20372_IG07: ; bbWeight=0.17, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
b Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=8 bbWeight=0.17 PerfScore 0.33
+ ;; size=12 bbWeight=0.17 PerfScore 0.66
-; Total bytes of code 80, prolog size 8, PerfScore 14.98, instruction count 20, allocated bytes for code 80 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 92, prolog size 12, PerfScore 16.66, instruction count 23, allocated bytes for code 92 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 3 E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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) @@ -82,7 +86,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]!
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

+12 (+15.00%) : 11795.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)

@@ -10,64 +10,68 @@ ; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd exact single-def <Internal.TypeSystem.MethodForInstantiatedType> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 8) zero-ref "guarded devirt return temp" <Internal.TypeSystem.Instantiation>
-; V03 tmp2 [V03,T00] ( 6, 6.33) ref -> x0 single-def "guarded devirt arg temp"
+; V03 tmp2 [V03,T00] ( 5, 5.67) ref -> x0 single-def "guarded devirt arg temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.NoMetadata.RuntimeMethodDesc> ;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.InstantiatedMethod> ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.MethodForInstantiatedType>
-; V07 tmp6 [V07,T02] ( 2, 1 ) ref -> x0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP
+; V07 tmp6 [V07,T03] ( 2, 1 ) ref -> x0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP +; V08 cse0 [V08,T02] ( 3, 2.33) long -> x19 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M20372_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M20372_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x0] ldr x0, [x0, #0x20]
- ldr x1, [x0] - adrp x2, [HIGH RELOC #0xD1FFAB1E] - add x2, x2, [LOW RELOC #0xD1FFAB1E] - cmp x1, x2
+ ldr x19, [x0] + adrp x1, [HIGH RELOC #0xD1FFAB1E] + add x1, x1, [LOW RELOC #0xD1FFAB1E] + cmp x19, x1
bne G_M20372_IG04 ;; size=24 bbWeight=1 PerfScore 8.50 G_M20372_IG03: ; bbWeight=0.17, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
b Internal.TypeSystem.NoMetadata.RuntimeMethodDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=8 bbWeight=0.17 PerfScore 0.34
+ ;; size=12 bbWeight=0.17 PerfScore 0.68
G_M20372_IG04: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- ldr x1, [x0] - adrp x2, [HIGH RELOC #0xD1FFAB1E] - add x2, x2, [LOW RELOC #0xD1FFAB1E] - cmp x1, x2
+ adrp x1, [HIGH RELOC #0xD1FFAB1E] + add x1, x1, [LOW RELOC #0xD1FFAB1E] + cmp x19, x1
bne G_M20372_IG07
- ;; size=20 bbWeight=0.33 PerfScore 1.82
+ ;; size=16 bbWeight=0.33 PerfScore 0.82
G_M20372_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref ldr x0, [x0, #0x50] ;; size=4 bbWeight=0.50 PerfScore 1.50 G_M20372_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M20372_IG07: ; bbWeight=0.17, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
b Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=8 bbWeight=0.17 PerfScore 0.33
+ ;; size=12 bbWeight=0.17 PerfScore 0.66
-; Total bytes of code 80, prolog size 8, PerfScore 14.98, instruction count 20, allocated bytes for code 80 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 92, prolog size 12, PerfScore 16.66, instruction count 23, allocated bytes for code 92 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 3 E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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) @@ -81,7 +85,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]!
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end + E4 end
E4 end E4 end

+16 (+17.39%) : 10346.dasm - System.Threading.ManualResetEventSlim:get_WaitHandle():System.Threading.WaitHandle:this (FullOpts)

@@ -7,11 +7,11 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 4.50) ref -> x0 this class-hnd single-def <System.Threading.ManualResetEventSlim>
+; V00 this [V00,T00] ( 8, 6 ) ref -> x19 this class-hnd single-def <System.Threading.ManualResetEventSlim>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V03 tmp2 [V03 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V04 cse0 [V04,T01] ( 4, 3.50) byref -> x19 "CSE - aggressive"
+; V04 cse0 [V04,T01] ( 3, 1.50) ref -> x1 "CSE - unknown"
; ; Lcl frame size = 8 @@ -19,54 +19,63 @@ G_M61270_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, stp fp, lr, [sp, #-0x20]! str x19, [sp, #0x18] mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50 -G_M61270_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ mov x19, x0 + ; gcrRegs +[x19] + ;; size=16 bbWeight=1 PerfScore 3.00 +G_M61270_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + add x0, x19, #24 + ; byrRegs +[x0] + ldar w0, [x0] + ; byrRegs -[x0] + tbnz w0, #30, G_M61270_IG06 + add x0, x19, #16 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
- add x1, x0, #24 - ; byrRegs +[x1] - ldar w1, [x1] - ; byrRegs -[x1] - tbnz w1, #30, G_M61270_IG06 - add x19, x0, #16 - ; byrRegs +[x19] - ldar x1, [x19] - ; gcrRegs +[x1] - cbnz x1, G_M61270_IG04
+ ; byrRegs -[x0] + cbnz x0, G_M61270_IG04
;; size=24 bbWeight=1 PerfScore 9.00
-G_M61270_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz - ; gcrRegs -[x1]
+G_M61270_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] + mov x0, x19 + ; gcrRegs +[x0]
bl <unknown method> ; gcrRegs -[x0]
- ldar x0, [x19]
+ add x0, x19, #16 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
cbnz x0, G_M61270_IG04
- adrp x0, [HIGH RELOC #0xD1FFAB1E] - ; gcrRegs -[x0] - add x0, x0, [LOW RELOC #0xD1FFAB1E] - ; gcrRegs +[x0]
adrp x1, [HIGH RELOC #0xD1FFAB1E] add x1, x1, [LOW RELOC #0xD1FFAB1E] ; gcrRegs +[x1]
+ mov x0, x1
bl <unknown method> ; gcrRegs -[x0-x1]
- ;; size=32 bbWeight=0.50 PerfScore 4.00 -G_M61270_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ldar x0, [x19]
+ ;; size=36 bbWeight=0.50 PerfScore 4.25 +G_M61270_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + add x0, x19, #16 + ; byrRegs +[x0] + ldar x0, [x0]
; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 3.00
+ ; byrRegs -[x0] + ;; size=8 bbWeight=1 PerfScore 3.50
G_M61270_IG05: ; bbWeight=1, epilog, nogc, extend ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 ret lr ;; size=12 bbWeight=1 PerfScore 4.00
-G_M61270_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref - ; byrRegs -[x19] - bl System.ThrowHelper:ThrowObjectDisposedException(System.Object)
+G_M61270_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
+ mov x0, x19 + ; gcrRegs +[x0] + bl System.ThrowHelper:ThrowObjectDisposedException(System.Object) + ; gcrRegs -[x0 x19]
brk_windows #0
- ;; size=8 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 12, PerfScore 22.50, instruction count 23, allocated bytes for code 92 (MethodHash=88ac10a9) for method System.Threading.ManualResetEventSlim:get_WaitHandle():System.Threading.WaitHandle:this (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 23.75, instruction count 27, allocated bytes for code 108 (MethodHash=88ac10a9) for method System.Threading.ManualResetEventSlim:get_WaitHandle():System.Threading.WaitHandle:this (FullOpts)
; ============================================================ Unwind Info: @@ -77,7 +86,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ 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)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.windows.arm64.checked.mch 6,410 3,083 2,477 850 -34,536 +39,564 -0.0080%
benchmarks.run_pgo.windows.arm64.checked.mch 13,460 9,118 3,351 991 -105,124 +53,340 -0.2215%
benchmarks.run_tiered.windows.arm64.checked.mch 2,683 1,721 730 232 -16,356 +12,220 -0.0385%
coreclr_tests.run.windows.arm64.checked.mch 115,844 47,593 55,624 12,627 -2,231,240 +779,836 -0.1415%
libraries.crossgen2.windows.arm64.checked.mch 37,311 20,389 12,111 4,811 -366,824 +162,968 +0.0848%
libraries.pmi.windows.arm64.checked.mch 40,816 17,120 18,881 4,815 -202,256 +251,336 -0.0642%
libraries_tests.run.windows.arm64.Release.mch 60,487 28,887 24,013 7,587 -495,640 +506,860 -0.0847%
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 91,820 24,590 57,419 9,811 -407,128 +1,013,824 +0.0207%
realworld.run.windows.arm64.checked.mch 7,040 2,972 3,179 889 -51,004 +49,160 -0.0350%
smoke_tests.nativeaot.windows.arm64.checked.mch 4,138 2,671 966 501 -21,548 +11,860 -0.0258%
380,009 158,144 178,751 43,114 -3,931,656 +2,880,968

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,575 4 24,571 5 (0.02%) 81 (0.33%)
benchmarks.run_pgo.windows.arm64.checked.mch 98,085 48,818 49,267 4 (0.00%) 19 (0.02%)
benchmarks.run_tiered.windows.arm64.checked.mch 48,881 37,115 11,766 4 (0.01%) 12 (0.02%)
coreclr_tests.run.windows.arm64.checked.mch 618,131 379,773 238,358 8 (0.00%) 584 (0.09%)
libraries.crossgen2.windows.arm64.checked.mch 276,135 15 276,120 0 (0.00%) 43 (0.02%)
libraries.pmi.windows.arm64.checked.mch 310,397 6 310,391 19 (0.01%) 503 (0.16%)
libraries_tests.run.windows.arm64.Release.mch 650,367 468,332 182,035 18 (0.00%) 411 (0.06%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 313,797 21,619 292,178 115 (0.04%) 3,576 (1.13%)
realworld.run.windows.arm64.checked.mch 33,257 3 33,254 1 (0.00%) 53 (0.16%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,157 8 24,149 0 (0.00%) 18 (0.07%)
2,397,782 955,693 1,442,089 174 (0.01%) 5,300 (0.22%)

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: 10879288 (overridden on cmd)
Total bytes of diff: 10884316 (overridden on cmd)
Total bytes of delta: 5028 (0.05 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         776 : 21076.dasm (4.03 % of base)
         428 : 16328.dasm (3.01 % of base)
         292 : 8549.dasm (0.84 % of base)
         284 : 825.dasm (5.33 % of base)
         224 : 18349.dasm (5.06 % of base)
         188 : 6037.dasm (1.64 % of base)
         176 : 18348.dasm (4.05 % of base)
         160 : 20999.dasm (2.28 % of base)
         160 : 19308.dasm (3.46 % of base)
         112 : 15936.dasm (2.16 % of base)
         112 : 19763.dasm (3.14 % of base)
         108 : 6572.dasm (1.79 % of base)
         108 : 15685.dasm (4.76 % of base)
         108 : 8716.dasm (1.00 % of base)
         108 : 17224.dasm (13.64 % of base)
         104 : 17116.dasm (2.26 % of base)
         104 : 22107.dasm (0.97 % of base)
         100 : 7216.dasm (2.20 % of base)
          96 : 13431.dasm (9.45 % of base)
          96 : 13894.dasm (9.45 % of base)

Top file improvements (bytes):
        -832 : 7702.dasm (-6.97 % of base)
        -320 : 6578.dasm (-8.57 % of base)
        -320 : 6137.dasm (-12.64 % of base)
        -304 : 21263.dasm (-4.32 % of base)
        -260 : 5965.dasm (-5.85 % of base)
        -204 : 7106.dasm (-1.60 % of base)
        -188 : 13675.dasm (-8.42 % of base)
        -168 : 417.dasm (-2.36 % of base)
        -152 : 7397.dasm (-1.44 % of base)
        -144 : 7371.dasm (-2.13 % of base)
        -144 : 18021.dasm (-5.14 % of base)
        -144 : 10374.dasm (-5.50 % of base)
        -144 : 2957.dasm (-9.78 % of base)
        -144 : 7291.dasm (-3.94 % of base)
        -136 : 6725.dasm (-1.71 % of base)
        -136 : 6818.dasm (-1.19 % of base)
        -132 : 12214.dasm (-2.07 % of base)
        -132 : 16872.dasm (-6.72 % of base)
        -128 : 19609.dasm (-0.33 % of base)
        -128 : 24422.dasm (-13.50 % of base)

94 total files with Code Size differences (40 improved, 54 regressed), 20 unchanged.

Top method regressions (bytes):
         776 (4.03 % of base) : 21076.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         428 (3.01 % of base) : 16328.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         292 (0.84 % of base) : 8549.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         284 (5.33 % of base) : 825.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         224 (5.06 % of base) : 18349.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         188 (1.64 % of base) : 6037.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         176 (4.05 % of base) : 18348.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         160 (2.28 % of base) : 20999.dasm - System.Security.Cryptography.CryptoConfig:get_DefaultNameHT():System.Collections.Generic.Dictionary`2[System.String,System.Object] (FullOpts)
         160 (3.46 % of base) : 19308.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         112 (2.16 % of base) : 15936.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         112 (3.14 % of base) : 19763.dasm - PerfLabTests.GetMember:GetMethod20():this (FullOpts)
         108 (1.00 % of base) : 8716.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (FullOpts)
         108 (13.64 % of base) : 17224.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (FullOpts)
         108 (4.76 % of base) : 15685.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (FullOpts)
         108 (1.79 % of base) : 6572.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this (FullOpts)
         104 (0.97 % of base) : 22107.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
         104 (2.26 % of base) : 17116.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         100 (2.20 % of base) : 7216.dasm - Utf8Json.Internal.Emit.MetaType:.ctor(System.Type,System.Func`2[System.String,System.String],ubyte):this (FullOpts)
          96 (9.45 % of base) : 13894.dasm - System.Xml.Linq.Perf_XElement:CreateElementsWithNamespace():System.Xml.Linq.XElement:this (FullOpts)
          96 (9.45 % of base) : 13431.dasm - System.Xml.Linq.Perf_XElement:CreateWithElements():System.Xml.Linq.XElement:this (FullOpts)

Top method improvements (bytes):
        -832 (-6.97 % of base) : 7702.dasm - Product:CreateLists() (FullOpts)
        -320 (-12.64 % of base) : 6137.dasm - ProtoBuf.Internal.Serializers.DefaultValueDecorator:EmitBranchIfDefaultValue(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.CodeLabel):this (FullOpts)
        -320 (-8.57 % of base) : 6578.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
        -304 (-4.32 % of base) : 21263.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_LocationFormatter1:Serialize(byref,int,MicroBenchmarks.Serializers.Location,MessagePack.IFormatterResolver):int:this (FullOpts)
        -260 (-5.85 % of base) : 5965.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
        -204 (-1.60 % of base) : 7106.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -188 (-8.42 % of base) : 13675.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -168 (-2.36 % of base) : 417.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (FullOpts)
        -152 (-1.44 % of base) : 7397.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Serialize(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel,Utf8Json.IJsonFormatterResolver):this (FullOpts)
        -144 (-9.78 % of base) : 2957.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
        -144 (-5.14 % of base) : 18021.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (FullOpts)
        -144 (-5.50 % of base) : 10374.dasm - System.Xml.Linq.XContainer:GetStringValue(System.Object):System.String (FullOpts)
        -144 (-2.13 % of base) : 7371.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_IndexViewModelFormatter1:Serialize(byref,MicroBenchmarks.Serializers.IndexViewModel,Utf8Json.IJsonFormatterResolver):this (FullOpts)
        -144 (-3.94 % of base) : 7291.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+EmitInfo+JsonWriter:.cctor() (FullOpts)
        -136 (-1.19 % of base) : 6818.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
        -136 (-1.71 % of base) : 6725.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
        -132 (-6.72 % of base) : 16872.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -132 (-2.07 % of base) : 12214.dasm - Utf8Json.Formatters.DictionaryFormatterBase`5[int,System.__Canon,System.__Canon,System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon],System.__Canon]:Serialize(byref,System.__Canon,Utf8Json.IJsonFormatterResolver):this (FullOpts)
        -128 (-0.33 % of base) : 19609.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        -128 (-13.50 % of base) : 24422.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)

Top method regressions (percentages):
          36 (34.62 % of base) : 11144.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          24 (26.09 % of base) : 12401.dasm - System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
          32 (25.81 % of base) : 10827.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
          24 (23.08 % of base) : 9760.dasm - MessagePack.MessagePackSerializer:get_DefaultResolver():MessagePack.IFormatterResolver (FullOpts)
          24 (23.08 % of base) : 7000.dasm - Utf8Json.JsonSerializer:get_DefaultResolver():Utf8Json.IJsonFormatterResolver (FullOpts)
          28 (20.00 % of base) : 9546.dasm - V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
          28 (20.00 % of base) : 9513.dasm - V8.Crypto.Support:runEncrypt(ubyte) (FullOpts)
          52 (19.70 % of base) : 9268.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
          60 (19.23 % of base) : 863.dasm - System.Threading.PortableThreadPool:.cctor() (FullOpts)
          64 (18.39 % of base) : 2430.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:BinaryDataPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
          28 (17.50 % of base) : 5534.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:get_IntrinsicTypeConverters():System.Collections.Generic.Dictionary`2[System.Object,System.ComponentModel.ReflectTypeDescriptionProvider+IntrinsicTypeConverterData] (FullOpts)
          28 (16.67 % of base) : 17802.dasm - Microsoft.Cci.Extensions:HasBody(Microsoft.Cci.IMethodDefinition):ubyte (FullOpts)
          24 (16.67 % of base) : 7006.dasm - Utf8Json.Resolvers.EnumResolver:.cctor() (FullOpts)
          40 (15.62 % of base) : 5453.dasm - Newtonsoft.Json.JsonSerializer:.ctor():this (FullOpts)
          20 (15.62 % of base) : 4489.dasm - System.Security.Cryptography.X509Certificates.CertificatePal:get_NotAfter():System.DateTime:this (FullOpts)
          28 (15.56 % of base) : 15858.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterInfo:.cctor() (FullOpts)
          28 (14.89 % of base) : 7040.dasm - Utf8Json.Resolvers.Internal.AllowPrivateCamelCaseStandardResolver+InnerResolver:.cctor() (FullOpts)
          28 (14.89 % of base) : 7048.dasm - Utf8Json.Resolvers.Internal.AllowPrivateExcludeNullSnakeCaseStandardResolver+InnerResolver:.cctor() (FullOpts)
          28 (14.89 % of base) : 7044.dasm - Utf8Json.Resolvers.Internal.AllowPrivateExcludeNullStandardResolver+InnerResolver:.cctor() (FullOpts)
          28 (14.89 % of base) : 7036.dasm - Utf8Json.Resolvers.Internal.ExcludeNullSnakeCaseStandardResolver+InnerResolver:.cctor() (FullOpts)

Top method improvements (percentages):
         -36 (-21.95 % of base) : 1738.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
        -120 (-13.89 % of base) : 2161.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
        -128 (-13.50 % of base) : 24422.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -12 (-13.04 % of base) : 9401.dasm - (dynamicClass):Int1Getter(System.Object):int (FullOpts)
         -12 (-13.04 % of base) : 14373.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -12 (-13.04 % of base) : 4239.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_0(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 4245.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 4246.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_14(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 4247.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_16(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 4240.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 4241.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_4(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 4242.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_6(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 4243.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_8(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 10322.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_0(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 10323.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_2(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 14699.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_0(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 14701.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_4(System.Object):System.String:this (FullOpts)
         -12 (-13.04 % of base) : 14702.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
         -12 (-13.04 % of base) : 14703.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_8(System.Object):ubyte:this (FullOpts)
         -12 (-13.04 % of base) : 10566.dasm - System.Reflection.Invoke:Ctor0_ActivatorCreateInstance_NoParams():this (FullOpts)


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: 47896244 (overridden on cmd)
Total bytes of diff: 47844460 (overridden on cmd)
Total bytes of delta: -51784 (-0.11 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         776 : 80149.dasm (4.03 % of base)
         292 : 22888.dasm (0.84 % of base)
         292 : 87531.dasm (14.78 % of base)
         284 : 2428.dasm (5.26 % of base)
         268 : 42923.dasm (13.56 % of base)
         224 : 60774.dasm (4.93 % of base)
         204 : 76790.dasm (3.55 % of base)
         196 : 70411.dasm (9.94 % of base)
         184 : 90154.dasm (6.48 % of base)
         184 : 87554.dasm (6.49 % of base)
         184 : 92584.dasm (19.57 % of base)
         176 : 61301.dasm (3.95 % of base)
         176 : 91228.dasm (6.83 % of base)
         160 : 87551.dasm (5.81 % of base)
         160 : 87525.dasm (8.35 % of base)
         152 : 63579.dasm (3.21 % of base)
         148 : 93927.dasm (1.99 % of base)
         140 : 33990.dasm (3.17 % of base)
         140 : 75565.dasm (3.24 % of base)
         140 : 78018.dasm (3.24 % of base)

Top file improvements (bytes):
        -688 : 15117.dasm (-31.10 % of base)
        -228 : 78120.dasm (-2.00 % of base)
        -208 : 89579.dasm (-2.25 % of base)
        -160 : 59507.dasm (-1.55 % of base)
        -160 : 60901.dasm (-4.90 % of base)
        -160 : 60910.dasm (-4.90 % of base)
        -144 : 60902.dasm (-1.52 % of base)
        -144 : 68153.dasm (-0.38 % of base)
        -140 : 82773.dasm (-1.47 % of base)
        -132 : 97111.dasm (-1.71 % of base)
        -132 : 85624.dasm (-1.40 % of base)
        -124 : 65318.dasm (-29.52 % of base)
        -112 : 27753.dasm (-0.83 % of base)
        -112 : 44646.dasm (-1.05 % of base)
        -108 : 31190.dasm (-2.00 % of base)
        -108 : 38414.dasm (-4.54 % of base)
        -108 : 63822.dasm (-3.35 % of base)
        -108 : 65725.dasm (-4.54 % of base)
        -108 : 74297.dasm (-1.87 % of base)
        -108 : 91877.dasm (-4.54 % of base)

96 total files with Code Size differences (58 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         776 (4.03 % of base) : 80149.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         292 (0.84 % of base) : 22888.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         292 (14.78 % of base) : 87531.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         284 (5.26 % of base) : 2428.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
         268 (13.56 % of base) : 42923.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         224 (4.93 % of base) : 60774.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         204 (3.55 % of base) : 76790.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         196 (9.94 % of base) : 70411.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         184 (6.48 % of base) : 90154.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         184 (6.49 % of base) : 87554.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         184 (19.57 % of base) : 92584.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:PickPivotAndPartition(System.Span`1[System.Collections.BigStruct],System.Comparison`1[System.Collections.BigStruct]):int (Tier1)
         176 (6.83 % of base) : 91228.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLengthLessThan4,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]:IndexOf(byref,int):int:this (Tier1)
         176 (3.95 % of base) : 61301.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         160 (5.81 % of base) : 87551.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         160 (8.35 % of base) : 87525.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
         152 (3.21 % of base) : 63579.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         148 (1.99 % of base) : 93927.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:.ctor(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,System.Text.RegularExpressions.RegexFindOptimizations,System.TimeSpan):this (Tier1)
         140 (3.17 % of base) : 33990.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         140 (3.24 % of base) : 75565.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         140 (3.24 % of base) : 78018.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)

Top method improvements (bytes):
        -688 (-31.10 % of base) : 15117.dasm - Benchstone.BenchF.Whetsto:Test():double:this (Tier1-OSR)
        -228 (-2.00 % of base) : 78120.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
        -208 (-2.25 % of base) : 89579.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -160 (-4.90 % of base) : 60901.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -160 (-4.90 % of base) : 60910.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -160 (-1.55 % of base) : 59507.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,byref,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier1)
        -144 (-0.38 % of base) : 68153.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        -144 (-1.52 % of base) : 60902.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -140 (-1.47 % of base) : 82773.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -132 (-1.71 % of base) : 97111.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)
        -132 (-1.40 % of base) : 85624.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -124 (-29.52 % of base) : 65318.dasm - System.Threading.ReaderWriterLockSlim:GetThreadRWCount(ubyte):System.Threading.ReaderWriterCount:this (Tier1)
        -112 (-0.83 % of base) : 27753.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        -112 (-1.05 % of base) : 44646.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        -108 (-1.87 % of base) : 74297.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -108 (-2.00 % of base) : 31190.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -108 (-3.35 % of base) : 63822.dasm - Benchstone.BenchI.Puzzle:DoIt():ubyte:this (Tier1)
        -108 (-4.54 % of base) : 38414.dasm - System.Diagnostics.Tracing.EventSource:Initialize(System.Guid,System.String,System.String[]):this (Tier1)
        -108 (-4.54 % of base) : 65725.dasm - System.Diagnostics.Tracing.EventSource:Initialize(System.Guid,System.String,System.String[]):this (Tier1)
        -108 (-4.54 % of base) : 91877.dasm - System.Diagnostics.Tracing.EventSource:Initialize(System.Guid,System.String,System.String[]):this (Tier1)

Top method regressions (percentages):
         184 (19.57 % of base) : 92584.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:PickPivotAndPartition(System.Span`1[System.Collections.BigStruct],System.Comparison`1[System.Collections.BigStruct]):int (Tier1)
          24 (19.35 % of base) : 18490.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 10896.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 24303.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 29491.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 33396.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 7998.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 7678.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 80839.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 9176.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 18725.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          24 (19.35 % of base) : 62735.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
         292 (14.78 % of base) : 87531.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1-OSR)
          76 (14.73 % of base) : 85526.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.73 % of base) : 96555.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.62 % of base) : 96585.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.62 % of base) : 85599.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 72279.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 81723.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
          76 (14.50 % of base) : 75723.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)

Top method improvements (percentages):
        -688 (-31.10 % of base) : 15117.dasm - Benchstone.BenchF.Whetsto:Test():double:this (Tier1-OSR)
        -124 (-29.52 % of base) : 65318.dasm - System.Threading.ReaderWriterLockSlim:GetThreadRWCount(ubyte):System.Threading.ReaderWriterCount:this (Tier1)
         -68 (-16.83 % of base) : 15706.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -68 (-16.35 % of base) : 15725.dasm - System.Threading.LowLevelLock:Acquire():this (Tier1)
         -56 (-14.89 % of base) : 29812.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -56 (-14.89 % of base) : 43871.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -56 (-14.89 % of base) : 72904.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -56 (-14.89 % of base) : 76111.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -12 (-13.04 % of base) : 25033.dasm - (dynamicClass):Int1Getter(System.Object):int (FullOpts)
         -12 (-13.04 % of base) : 45440.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -12 (-13.04 % of base) : 25032.dasm - (dynamicClass):String1Getter(System.Object):System.String (FullOpts)
         -12 (-12.50 % of base) : 25043.dasm - (dynamicClass):Int1Setter(System.Object,int) (FullOpts)
         -12 (-12.50 % of base) : 61034.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
         -24 (-11.76 % of base) : 80510.dasm - BenchmarksGame.ByteString:GetHashCode():int:this (Tier1)
          -8 (-11.76 % of base) : 55601.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
         -12 (-11.54 % of base) : 25042.dasm - (dynamicClass):String1Setter(System.Object,System.String) (FullOpts)
          -4 (-11.11 % of base) : 15621.dasm - System.Math:Max(short,short):short (Tier1)
          -4 (-11.11 % of base) : 32561.dasm - System.Math:Max(short,short):short (Tier1)
          -4 (-11.11 % of base) : 21241.dasm - System.Math:Max(short,short):short (Tier1)
          -4 (-11.11 % of base) : 24097.dasm - System.Math:Min(short,short):short (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: 15418760 (overridden on cmd)
Total bytes of diff: 15414624 (overridden on cmd)
Total bytes of delta: -4136 (-0.03 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         768 : 43762.dasm (3.99 % of base)
         292 : 19563.dasm (0.84 % of base)
         284 : 2485.dasm (5.33 % of base)
         224 : 30658.dasm (5.06 % of base)
         176 : 38129.dasm (4.05 % of base)
         160 : 37051.dasm (4.21 % of base)
         160 : 38582.dasm (3.46 % of base)
         112 : 2984.dasm (8.86 % of base)
         112 : 37851.dasm (2.16 % of base)
          92 : 29107.dasm (6.04 % of base)
          80 : 27250.dasm (9.52 % of base)
          76 : 17187.dasm (1.10 % of base)
          76 : 48075.dasm (5.92 % of base)
          76 : 11796.dasm (4.19 % of base)
          72 : 48480.dasm (11.76 % of base)
          68 : 29063.dasm (2.23 % of base)
          64 : 26376.dasm (3.44 % of base)
          64 : 27552.dasm (7.44 % of base)
          64 : 45105.dasm (7.05 % of base)
          60 : 47649.dasm (1.54 % of base)

Top file improvements (bytes):
        -264 : 42606.dasm (-2.36 % of base)
        -144 : 37965.dasm (-4.44 % of base)
        -144 : 40988.dasm (-0.38 % of base)
        -120 : 4667.dasm (-17.05 % of base)
        -112 : 20184.dasm (-0.83 % of base)
        -112 : 29031.dasm (-1.05 % of base)
        -108 : 40418.dasm (-5.28 % of base)
        -108 : 37967.dasm (-1.22 % of base)
        -108 : 43629.dasm (-2.84 % of base)
        -108 : 43631.dasm (-1.01 % of base)
         -92 : 10241.dasm (-1.57 % of base)
         -92 : 12060.dasm (-2.41 % of base)
         -92 : 48631.dasm (-1.85 % of base)
         -92 : 48636.dasm (-1.81 % of base)
         -80 : 27077.dasm (-1.67 % of base)
         -76 : 29130.dasm (-0.65 % of base)
         -72 : 42951.dasm (-1.20 % of base)
         -64 : 8165.dasm (-3.36 % of base)
         -64 : 9591.dasm (-1.81 % of base)
         -60 : 17225.dasm (-2.19 % of base)

95 total files with Code Size differences (42 improved, 53 regressed), 20 unchanged.

Top method regressions (bytes):
         768 (3.99 % of base) : 43762.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         292 (0.84 % of base) : 19563.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         284 (5.33 % of base) : 2485.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
         224 (5.06 % of base) : 30658.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         176 (4.05 % of base) : 38129.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         160 (4.21 % of base) : 37051.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|199_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (Tier1)
         160 (3.46 % of base) : 38582.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         112 (2.16 % of base) : 37851.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         112 (8.86 % of base) : 2984.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Resize(int,ubyte):this (Tier1)
          92 (6.04 % of base) : 29107.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          80 (9.52 % of base) : 27250.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:MapInterfaceTypesToCallbacks():this (Tier1)
          76 (4.19 % of base) : 11796.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
          76 (1.10 % of base) : 17187.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
          76 (5.92 % of base) : 48075.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:PruneAnchorsImpl(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],uint,ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
          72 (11.76 % of base) : 48480.dasm - System.Net.Sockets.Socket:WildcardBindForConnectIfNecessary(int):this (Tier1)
          68 (2.23 % of base) : 29063.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
          64 (7.44 % of base) : 27552.dasm - (dynamicClass):WriteLoginViewModelToJson(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson,System.Runtime.Serialization.DataContracts.ClassDataContract,System.Xml.XmlDictionaryString[]) (FullOpts)
          64 (3.44 % of base) : 26376.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1)
          64 (7.05 % of base) : 45105.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex12_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          60 (1.54 % of base) : 47649.dasm - System.Numerics.BigIntegerCalculator:MultiplyFarLength(System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint]) (Tier0-FullOpts)

Top method improvements (bytes):
        -264 (-2.36 % of base) : 42606.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1-OSR)
        -144 (-0.38 % of base) : 40988.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        -144 (-4.44 % of base) : 37965.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
        -120 (-17.05 % of base) : 4667.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (Tier1)
        -112 (-0.83 % of base) : 20184.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        -112 (-1.05 % of base) : 29031.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        -108 (-1.22 % of base) : 37967.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1)
        -108 (-5.28 % of base) : 40418.dasm - Benchstone.BenchI.Puzzle:DoIt():ubyte:this (Tier1-OSR)
        -108 (-1.01 % of base) : 43631.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1)
        -108 (-2.84 % of base) : 43629.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
         -92 (-1.81 % of base) : 48636.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier1)
         -92 (-1.85 % of base) : 48631.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier1-OSR)
         -92 (-2.41 % of base) : 12060.dasm - System.Text.RegularExpressions.RegexNode:CanBeMadeAtomic(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte,ubyte):ubyte (Tier1)
         -92 (-1.57 % of base) : 10241.dasm - System.Xml.Schema.XsdDuration:TryFormat(System.Span`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
         -80 (-1.67 % of base) : 27077.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         -76 (-0.65 % of base) : 29130.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
         -72 (-1.20 % of base) : 42951.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         -64 (-1.81 % of base) : 9591.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (Tier1-OSR)
         -64 (-3.36 % of base) : 8165.dasm - System.Xml.XmlConvert:EncodeName(System.String,ubyte,ubyte):System.String (Tier1)
         -60 (-2.19 % of base) : 17225.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)

Top method regressions (percentages):
          52 (19.70 % of base) : 27225.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier1)
          24 (18.75 % of base) : 938.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
          32 (16.67 % of base) : 27564.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier1)
          20 (15.15 % of base) : 44680.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:SortFixedDistanceSetsByQuality(System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)
          20 (14.29 % of base) : 37667.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CustomModifierUtils:HasInAttributeModifier(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]):ubyte (Tier1)
          20 (14.29 % of base) : 39919.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ISymbol] (Tier1)
          20 (14.29 % of base) : 37202.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap:TypeParametersAsTypeSymbolsWithAnnotations(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations] (Tier1)
          20 (13.16 % of base) : 37598.dasm - Microsoft.CodeAnalysis.MetadataHelpers:SplitQualifiedName(System.ReadOnlyMemory`1[ushort]):System.Collections.Immutable.ImmutableArray`1[System.ReadOnlyMemory`1[ushort]] (Tier1)
          24 (12.77 % of base) : 42285.dasm - System.Net.Sockets.Socket:IsWildcardEndPoint(System.Net.EndPoint):ubyte (Tier1)
          52 (12.50 % of base) : 39917.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDataFlowAnalysis:Normalize(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISymbol] (Tier1)
          20 (12.50 % of base) : 37920.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:GroupByName(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Generic.Dictionary`2[System.String,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]] (Tier1)
          56 (11.76 % of base) : 24836.dasm - (dynamicClass):.ctor(System.Object[]):MicroBenchmarks.Serializers.ClassRecord (FullOpts)
          72 (11.76 % of base) : 48480.dasm - System.Net.Sockets.Socket:WildcardBindForConnectIfNecessary(int):this (Tier1)
           8 (11.76 % of base) : 37266.dasm - System.Threading.Tasks.TaskReplicator+Replica:Wait():this (Tier1)
          16 (11.43 % of base) : 18711.dasm - System.Threading.ThreadLocal`1[System.__Canon]:GetNewTableSize(int):int (Tier1)
          20 (11.36 % of base) : 40042.dasm - Microsoft.CodeAnalysis.CachingIdentityFactory`2[System.__Canon,ushort]:GetOrMakeValue(System.__Canon):ushort:this (Tier1)
          28 (10.94 % of base) : 16771.dasm - System.Collections.Generic.Dictionary`2+KeyCollection[System.__Canon,System.__Canon]:CopyTo(System.__Canon[],int):this (Tier1-OSR)
          20 (10.87 % of base) : 32443.dasm - Microsoft.CodeAnalysis.CommonMessageProvider:GetIdForErrorCode(int):System.String:this (Tier1)
          24 (10.53 % of base) : 18566.dasm - System.Runtime.Serialization.DataContracts.DataContract+DataContractCriticalHelper:GetBuiltInDataContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract (Tier1)
          16 (10.53 % of base) : 41345.dasm - System.Threading.ManualResetEventSlim:Reset():this (Tier1)

Top method improvements (percentages):
        -120 (-17.05 % of base) : 4667.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (Tier1)
         -12 (-13.04 % of base) : 21117.dasm - (dynamicClass):Int1Getter(System.Object):int (FullOpts)
         -12 (-13.04 % of base) : 29550.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -12 (-13.04 % of base) : 21116.dasm - (dynamicClass):String1Getter(System.Object):System.String (FullOpts)
         -12 (-12.50 % of base) : 21127.dasm - (dynamicClass):Int1Setter(System.Object,int) (FullOpts)
         -12 (-12.50 % of base) : 38090.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
         -12 (-11.54 % of base) : 21126.dasm - (dynamicClass):String1Setter(System.Object,System.String) (FullOpts)
         -12 (-10.34 % of base) : 13538.dasm - System.Threading.AsyncLocal`1[ubyte]:get_Value():ubyte:this (Tier1)
         -12 (-8.57 % of base) : 29758.dasm - (dynamicClass):lambda_method6(System.Runtime.CompilerServices.Closure,System.Object,System.Object) (FullOpts)
         -16 (-8.51 % of base) : 37212.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:MoveNext():ubyte:this (Tier1)
         -16 (-8.51 % of base) : 19622.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -16 (-8.33 % of base) : 949.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
         -12 (-8.11 % of base) : 22762.dasm - EMFloat:normalize(byref) (Tier1)
         -12 (-7.89 % of base) : 38480.dasm - (dynamicClass):lambda_method19(System.Runtime.CompilerServices.Closure,System.Object,System.Object) (FullOpts)
         -16 (-7.84 % of base) : 3203.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
         -12 (-7.50 % of base) : 13536.dasm - System.Runtime.Serialization.SerializationInfo:get_DeserializationInProgress():ubyte (Tier1)
         -12 (-7.32 % of base) : 48164.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexThresholds:GetSymbolicRegexSafeSizeThreshold():int (Tier1)
         -20 (-6.85 % of base) : 27415.dasm - System.Net.Sockets.SocketAsyncEventArgs:<CompleteCore>g__CleanupIOCPResult|168_0():this (Tier1)
         -16 (-6.56 % of base) : 39965.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowsInWalker:EnterRegion():this (Tier1)
         -12 (-6.38 % of base) : 38472.dasm - ProtoBuf.Meta.MetaType:GetFieldBoolean(byref,ProtoBuf.Meta.AttributeMap,System.String,ubyte):ubyte (Tier1)


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: 508096416 (overridden on cmd)
Total bytes of diff: 506645012 (overridden on cmd)
Total bytes of delta: -1451404 (-0.29 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        2604 : 548581.dasm (1.45 % of base)
        2580 : 548586.dasm (1.44 % of base)
        1156 : 554690.dasm (5.24 % of base)
        1156 : 549094.dasm (5.24 % of base)
        1040 : 549099.dasm (4.54 % of base)
        1040 : 554692.dasm (4.54 % of base)
        1004 : 548782.dasm (0.96 % of base)
         952 : 549109.dasm (4.32 % of base)
         952 : 554696.dasm (4.32 % of base)
         948 : 549036.dasm (4.08 % of base)
         880 : 554676.dasm (3.80 % of base)
         860 : 554679.dasm (3.70 % of base)
         828 : 549417.dasm (0.80 % of base)
         748 : 554688.dasm (3.42 % of base)
         748 : 549089.dasm (3.42 % of base)
         740 : 549422.dasm (0.58 % of base)
         736 : 513913.dasm (22.17 % of base)
         736 : 513916.dasm (22.17 % of base)
         736 : 548789.dasm (0.58 % of base)
         692 : 549041.dasm (2.98 % of base)

Top file improvements (bytes):
       -2140 : 598994.dasm (-11.10 % of base)
       -2060 : 600132.dasm (-11.27 % of base)
       -2044 : 548992.dasm (-1.92 % of base)
       -2044 : 548978.dasm (-1.92 % of base)
       -1844 : 597813.dasm (-12.95 % of base)
       -1828 : 598588.dasm (-9.12 % of base)
       -1828 : 571114.dasm (-10.07 % of base)
       -1824 : 598965.dasm (-9.84 % of base)
       -1816 : 599023.dasm (-9.67 % of base)
       -1812 : 590672.dasm (-10.30 % of base)
       -1804 : 593160.dasm (-9.19 % of base)
       -1804 : 599350.dasm (-10.16 % of base)
       -1792 : 601581.dasm (-14.78 % of base)
       -1780 : 571074.dasm (-9.93 % of base)
       -1780 : 595889.dasm (-12.52 % of base)
       -1772 : 571777.dasm (-9.56 % of base)
       -1768 : 597431.dasm (-12.77 % of base)
       -1756 : 570558.dasm (-9.45 % of base)
       -1720 : 580719.dasm (-10.01 % of base)
       -1708 : 597490.dasm (-11.68 % of base)

101 total files with Code Size differences (53 improved, 48 regressed), 20 unchanged.

Top method regressions (bytes):
        2604 (1.45 % of base) : 548581.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
        2580 (1.44 % of base) : 548586.dasm - decimalrem:TestEntryPoint():int (FullOpts)
        1156 (5.24 % of base) : 554690.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        1156 (5.24 % of base) : 549094.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        1040 (4.54 % of base) : 549099.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
        1040 (4.54 % of base) : 554692.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
        1004 (0.96 % of base) : 548782.dasm - i8div:TestEntryPoint():int (FullOpts)
         952 (4.32 % of base) : 549109.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
         952 (4.32 % of base) : 554696.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
         948 (4.08 % of base) : 549036.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
         880 (3.80 % of base) : 554676.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
         860 (3.70 % of base) : 554679.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)
         828 (0.80 % of base) : 549417.dasm - u4div:TestEntryPoint():int (FullOpts)
         748 (3.42 % of base) : 554688.dasm - r8NaNadd:TestEntryPoint():int (FullOpts)
         748 (3.42 % of base) : 549089.dasm - r8NaNadd:TestEntryPoint():int (FullOpts)
         740 (0.58 % of base) : 549422.dasm - u4rem:TestEntryPoint():int (FullOpts)
         736 (0.58 % of base) : 548789.dasm - i8rem:TestEntryPoint():int (FullOpts)
         736 (22.17 % of base) : 513913.dasm - VectorTest:TestEntryPoint():int (FullOpts)
         736 (22.17 % of base) : 513916.dasm - VectorTest:TestEntryPoint():int (FullOpts)
         692 (2.98 % of base) : 549041.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)

Top method improvements (bytes):
       -2140 (-11.10 % of base) : 598994.dasm - Generated911:CalliTest() (FullOpts)
       -2060 (-11.27 % of base) : 600132.dasm - Generated944:CalliTest() (FullOpts)
       -2044 (-1.92 % of base) : 548978.dasm - overlddiv:TestEntryPoint():int (FullOpts)
       -2044 (-1.92 % of base) : 548992.dasm - overldrem:TestEntryPoint():int (FullOpts)
       -1844 (-12.95 % of base) : 597813.dasm - Generated874:CalliTest() (FullOpts)
       -1828 (-10.07 % of base) : 571114.dasm - Generated1067:CalliTest() (FullOpts)
       -1828 (-9.12 % of base) : 598588.dasm - Generated899:CalliTest() (FullOpts)
       -1824 (-9.84 % of base) : 598965.dasm - Generated911:MethodCallingTest() (FullOpts)
       -1816 (-9.67 % of base) : 599023.dasm - Generated912:CalliTest() (FullOpts)
       -1812 (-10.30 % of base) : 590672.dasm - Generated629:CalliTest() (FullOpts)
       -1804 (-9.19 % of base) : 593160.dasm - Generated720:CalliTest() (FullOpts)
       -1804 (-10.16 % of base) : 599350.dasm - Generated921:CalliTest() (FullOpts)
       -1792 (-14.78 % of base) : 601581.dasm - Generated994:CalliTest() (FullOpts)
       -1780 (-9.93 % of base) : 571074.dasm - Generated1066:CalliTest() (FullOpts)
       -1780 (-12.52 % of base) : 595889.dasm - Generated809:CalliTest() (FullOpts)
       -1772 (-9.56 % of base) : 571777.dasm - Generated1084:CalliTest() (FullOpts)
       -1768 (-12.77 % of base) : 597431.dasm - Generated862:CalliTest() (FullOpts)
       -1756 (-9.45 % of base) : 570558.dasm - Generated1054:CalliTest() (FullOpts)
       -1720 (-10.01 % of base) : 580719.dasm - Generated1353:CalliTest() (FullOpts)
       -1708 (-11.68 % of base) : 597490.dasm - Generated864:CalliTest() (FullOpts)

Top method regressions (percentages):
          60 (46.88 % of base) : 555635.dasm - Bug426480:foo() (FullOpts)
          64 (44.44 % of base) : 424869.dasm - CdeclMemberFunctionTest:get_UnmanagedCallersOnlyVtable():ulong (FullOpts)
          64 (44.44 % of base) : 424625.dasm - ThisCallTest:get_UnmanagedCallersOnlyVtable():ulong (FullOpts)
         144 (42.35 % of base) : 549920.dasm - structinreg.Program1:test4(structinreg.Test4):int (FullOpts)
          52 (41.94 % of base) : 615461.dasm - Microsoft.Build.Framework.NativeMethods:get_IsOSX():ubyte (FullOpts)
          76 (41.30 % of base) : 445632.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Byte:.cctor() (FullOpts)
          76 (41.30 % of base) : 445751.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__float:.cctor() (FullOpts)
          76 (41.30 % of base) : 445700.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__Int32:.cctor() (FullOpts)
          76 (41.30 % of base) : 445615.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__SByte:.cctor() (FullOpts)
          76 (41.30 % of base) : 445683.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__UInt32:.cctor() (FullOpts)
          76 (41.30 % of base) : 472106.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__Byte:.cctor() (FullOpts)
          76 (41.30 % of base) : 472140.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__Int16:.cctor() (FullOpts)
          76 (41.30 % of base) : 472089.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__SByte:.cctor() (FullOpts)
          76 (41.30 % of base) : 472123.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__UInt16:.cctor() (FullOpts)
          36 (40.91 % of base) : 555920.dasm - Application:Display(int,System.String,int) (FullOpts)
          72 (37.50 % of base) : 445768.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.StoreSelectedScalarx4Test__double:.cctor() (FullOpts)
          60 (37.50 % of base) : 471987.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx3Test__Byte:.cctor() (FullOpts)
          60 (37.50 % of base) : 471970.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx3Test__SByte:.cctor() (FullOpts)
          72 (37.50 % of base) : 472191.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__float:.cctor() (FullOpts)
          72 (37.50 % of base) : 472174.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.StoreSelectedScalarx4Test__Int32:.cctor() (FullOpts)

Top method improvements (percentages):
         -56 (-25.93 % of base) : 1257.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Instrumented Tier1)
         -24 (-23.08 % of base) : 316446.dasm - Test_b99969:DoSpoof() (Tier1-OSR)
         -36 (-21.95 % of base) : 510217.dasm - FunctionPtr:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 602314.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 605117.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 616032.dasm - Microsoft.Build.Logging.LoggerDescription:.cctor() (FullOpts)
          -8 (-20.00 % of base) : 404186.dasm - Internal.TypeSystem.ArrayType:get_Rank():int:this (Tier1)
          -8 (-20.00 % of base) : 408250.dasm - Internal.TypeSystem.ArrayType:get_Rank():int:this (Tier1)
          -8 (-20.00 % of base) : 441753.dasm - JIT.HardwareIntrinsics.Arm.Helpers:Max(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 441737.dasm - JIT.HardwareIntrinsics.Arm.Helpers:Max(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 442235.dasm - JIT.HardwareIntrinsics.Arm.Helpers:Min(short,short):short (FullOpts)
        -156 (-16.39 % of base) : 426118.dasm - filter2:f11() (FullOpts)
         -36 (-16.36 % of base) : 559962.dasm - TestClass:Method1(byref,byref,TestClass+S1,byref,TestClass+S1,byref):uint:this (FullOpts)
         -12 (-15.79 % of base) : 512471.dasm - BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
         -12 (-15.79 % of base) : 273505.dasm - Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
         -84 (-15.44 % of base) : 427407.dasm - try2:f11() (FullOpts)
       -1792 (-14.78 % of base) : 601581.dasm - Generated994:CalliTest() (FullOpts)
       -1180 (-14.47 % of base) : 590898.dasm - Generated639:MethodCallingTest() (FullOpts)
       -1392 (-14.11 % of base) : 598906.dasm - Generated909:MethodCallingTest() (FullOpts)
         -88 (-14.10 % of base) : 426042.dasm - catch2:f11() (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: 67298384 (overridden on cmd)
Total bytes of diff: 67094528 (overridden on cmd)
Total bytes of delta: -203856 (-0.30 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         580 : 59666.dasm (1.85 % of base)
         580 : 93807.dasm (1.85 % of base)
         384 : 221913.dasm (10.49 % of base)
         356 : 236708.dasm (2.41 % of base)
         344 : 61926.dasm (2.70 % of base)
         328 : 210406.dasm (6.02 % of base)
         312 : 221051.dasm (5.30 % of base)
         308 : 18933.dasm (5.44 % of base)
         296 : 239587.dasm (2.77 % of base)
         296 : 178920.dasm (1.10 % of base)
         264 : 250460.dasm (11.50 % of base)
         256 : 250608.dasm (2.75 % of base)
         248 : 157549.dasm (5.65 % of base)
         244 : 179639.dasm (6.62 % of base)
         220 : 254712.dasm (2.63 % of base)
         200 : 194248.dasm (5.92 % of base)
         196 : 222929.dasm (4.90 % of base)
         192 : 150817.dasm (8.71 % of base)
         192 : 38647.dasm (0.89 % of base)
         192 : 204007.dasm (8.71 % of base)

Top file improvements (bytes):
        -660 : 222912.dasm (-3.92 % of base)
        -644 : 222954.dasm (-5.26 % of base)
        -604 : 222955.dasm (-6.02 % of base)
        -556 : 222953.dasm (-5.19 % of base)
        -488 : 222952.dasm (-3.23 % of base)
        -236 : 78912.dasm (-3.02 % of base)
        -216 : 126875.dasm (-0.57 % of base)
        -208 : 250066.dasm (-2.18 % of base)
        -208 : 255720.dasm (-10.77 % of base)
        -180 : 191534.dasm (-6.99 % of base)
        -176 : 140743.dasm (-9.05 % of base)
        -176 : 264060.dasm (-1.79 % of base)
        -168 : 38650.dasm (-4.59 % of base)
        -168 : 250060.dasm (-2.47 % of base)
        -164 : 220671.dasm (-6.93 % of base)
        -160 : 64378.dasm (-8.21 % of base)
        -160 : 98019.dasm (-8.21 % of base)
        -144 : 140634.dasm (-6.53 % of base)
        -140 : 202716.dasm (-3.65 % of base)
        -132 : 232588.dasm (-5.78 % of base)

96 total files with Code Size differences (51 improved, 45 regressed), 20 unchanged.

Top method regressions (bytes):
         580 (1.85 % of base) : 59666.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         580 (1.85 % of base) : 93807.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         384 (10.49 % of base) : 221913.dasm - System.Data.XMLDiffLoader:ReadOldRowData(System.Data.DataSet,byref,byref,System.Xml.XmlReader):int:this (FullOpts)
         356 (2.41 % of base) : 236708.dasm - System.DirectoryServices.ActiveDirectory.Utils:GetReplicaList(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.String,ubyte,ubyte,ubyte):System.Collections.ArrayList (FullOpts)
         344 (2.70 % of base) : 61926.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
         328 (6.02 % of base) : 210406.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         312 (5.30 % of base) : 221051.dasm - System.Data.XSDSchema:LoadSchema(System.Xml.Schema.XmlSchemaSet,System.Data.DataSet):this (FullOpts)
         308 (5.44 % of base) : 18933.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
         296 (1.10 % of base) : 178920.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)
         296 (2.77 % of base) : 239587.dasm - System.Formats.Asn1.WellKnownOids:GetContents(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ubyte] (FullOpts)
         264 (11.50 % of base) : 250460.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         256 (2.75 % of base) : 250608.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
         248 (5.65 % of base) : 157549.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         244 (6.62 % of base) : 179639.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMostSpecific(System.Reflection.MethodBase,System.Reflection.MethodBase,int[],System.Object[],ubyte,int,int,System.Object[]):int:this (FullOpts)
         220 (2.63 % of base) : 254712.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)
         200 (5.92 % of base) : 194248.dasm - System.Xml.Schema.SchemaCollectionCompiler:Compile():this (FullOpts)
         196 (4.90 % of base) : 222929.dasm - System.Management.ManagementClassGenerator:ProcessPropertyQualifiers(System.Management.PropertyData,byref,byref,byref,ubyte,byref):System.String:this (FullOpts)
         192 (8.71 % of base) : 150817.dasm - Microsoft.Cci.FullMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         192 (8.71 % of base) : 204007.dasm - Microsoft.Cci.FullMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
         192 (0.89 % of base) : 38647.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)

Top method improvements (bytes):
        -660 (-3.92 % of base) : 222912.dasm - System.Management.ManagementClassGenerator:GenerateTypeConverterClass():System.CodeDom.CodeTypeDeclaration:this (FullOpts)
        -644 (-5.26 % of base) : 222954.dasm - System.Management.ManagementClassGenerator:AddToDMTFDateTimeFunction():this (FullOpts)
        -604 (-6.02 % of base) : 222955.dasm - System.Management.ManagementClassGenerator:AddToTimeSpanFunction():this (FullOpts)
        -556 (-5.19 % of base) : 222953.dasm - System.Management.ManagementClassGenerator:AddToDMTFTimeIntervalFunction():this (FullOpts)
        -488 (-3.23 % of base) : 222952.dasm - System.Management.ManagementClassGenerator:AddToDateTimeFunction():this (FullOpts)
        -236 (-3.02 % of base) : 78912.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref,int,ubyte):this (FullOpts)
        -216 (-0.57 % of base) : 126875.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -208 (-2.18 % of base) : 250066.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:.cctor() (FullOpts)
        -208 (-10.77 % of base) : 255720.dasm - System.ComponentModel.Composition.Hosting.ComposablePartExportProvider:Compose(System.ComponentModel.Composition.Hosting.CompositionBatch):this (FullOpts)
        -180 (-6.99 % of base) : 191534.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -176 (-9.05 % of base) : 140743.dasm - Microsoft.CodeAnalysis.VisualBasic.ObjectDisplay.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -176 (-1.79 % of base) : 264060.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -168 (-2.47 % of base) : 250060.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:.cctor() (FullOpts)
        -168 (-4.59 % of base) : 38650.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:.cctor() (FullOpts)
        -164 (-6.93 % of base) : 220671.dasm - System.Data.UnaryNode:EvalUnaryOp(int,System.Object):System.Object:this (FullOpts)
        -160 (-8.21 % of base) : 64378.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -160 (-8.21 % of base) : 98019.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -144 (-6.53 % of base) : 140634.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:ShadowBasedOnInferenceLevel(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],ubyte,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref,byref,byref) (FullOpts)
        -140 (-3.65 % of base) : 202716.dasm - System.Runtime.Serialization.ExtensionDataReader:MoveToText(System.Type,System.Runtime.Serialization.IDataNode,ubyte):ubyte:this (FullOpts)
        -132 (-5.78 % of base) : 232588.dasm - ILCompiler.Reflection.ReadyToRun.x86.InfoHdrDecoder:DecodeHeader(ubyte[],byref,int):ILCompiler.Reflection.ReadyToRun.x86.InfoHdrSmall (FullOpts)

Top method regressions (percentages):
          24 (30.00 % of base) : 230486.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
          24 (30.00 % of base) : 231468.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
          24 (27.27 % of base) : 231349.dasm - System.Reflection.TypeLoading.RoType:get_IsByRefLike():ubyte:this (FullOpts)
          24 (27.27 % of base) : 230351.dasm - System.Reflection.TypeLoading.RoType:get_IsByRefLike():ubyte:this (FullOpts)
          24 (27.27 % of base) : 230370.dasm - System.Reflection.TypeLoading.RoType:get_IsEnum():ubyte:this (FullOpts)
          24 (27.27 % of base) : 231367.dasm - System.Reflection.TypeLoading.RoType:get_IsEnum():ubyte:this (FullOpts)
          24 (27.27 % of base) : 230371.dasm - System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)
          24 (27.27 % of base) : 231368.dasm - System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)
          24 (25.00 % of base) : 231199.dasm - System.Reflection.TypeLoading.RoConstructor:get_CallingConvention():int:this (FullOpts)
          24 (25.00 % of base) : 231200.dasm - System.Reflection.TypeLoading.RoConstructor:get_MethodImplementationFlags():int:this (FullOpts)
          24 (25.00 % of base) : 230299.dasm - System.Reflection.TypeLoading.RoFatMethodParameter:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 231303.dasm - System.Reflection.TypeLoading.RoFatMethodParameter:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 230232.dasm - System.Reflection.TypeLoading.RoField:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 231435.dasm - System.Reflection.TypeLoading.RoGenericParameterType:get_GenericParameterPosition():int:this (FullOpts)
          24 (25.00 % of base) : 230459.dasm - System.Reflection.TypeLoading.RoGenericParameterType:get_GenericParameterPosition():int:this (FullOpts)
          24 (25.00 % of base) : 230268.dasm - System.Reflection.TypeLoading.RoMethod:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 231275.dasm - System.Reflection.TypeLoading.RoMethod:get_CallingConvention():int:this (FullOpts)
          24 (25.00 % of base) : 231276.dasm - System.Reflection.TypeLoading.RoMethod:get_MethodImplementationFlags():int:this (FullOpts)
          24 (25.00 % of base) : 230324.dasm - System.Reflection.TypeLoading.RoProperty:get_Attributes():int:this (FullOpts)
          24 (25.00 % of base) : 231324.dasm - System.Reflection.TypeLoading.RoProperty:get_Attributes():int:this (FullOpts)

Top method improvements (percentages):
         -24 (-30.00 % of base) : 172439.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
         -20 (-23.81 % of base) : 160667.dasm - Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[System.__Canon]:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 213517.dasm - Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[System.__Canon]:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 153619.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 206624.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 153629.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 206630.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 153645.dasm - Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 206644.dasm - Microsoft.CodeAnalysis.CommonMethodEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 153672.dasm - Microsoft.CodeAnalysis.CommonModuleWellKnownAttributeData:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 206662.dasm - Microsoft.CodeAnalysis.CommonModuleWellKnownAttributeData:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 153694.dasm - Microsoft.CodeAnalysis.CommonPropertyEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 206675.dasm - Microsoft.CodeAnalysis.CommonPropertyEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 153709.dasm - Microsoft.CodeAnalysis.CommonTypeEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -20 (-23.81 % of base) : 206688.dasm - Microsoft.CodeAnalysis.CommonTypeEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
         -28 (-21.21 % of base) : 155304.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:<VisitInterpolatedStringHandlerCreation>g__pushLeftNodes|195_2(Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation]) (FullOpts)
         -28 (-21.21 % of base) : 208277.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:<VisitInterpolatedStringHandlerCreation>g__pushLeftNodes|197_2(Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Operations.IInterpolatedStringAdditionOperation]) (FullOpts)
         -28 (-20.00 % of base) : 152632.dasm - Microsoft.CodeAnalysis.DocumentationCommentId:GetTotalTypeParameterCount(Microsoft.CodeAnalysis.INamedTypeSymbol):int (FullOpts)
         -28 (-20.00 % of base) : 205676.dasm - Microsoft.CodeAnalysis.DocumentationCommentId:GetTotalTypeParameterCount(Microsoft.CodeAnalysis.INamedTypeSymbol):int (FullOpts)
         -36 (-20.00 % of base) : 19791.dasm - System.Runtime.Intrinsics.Vector512`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Dot(System.Runtime.Intrinsics.Vector512`1[double],System.Runtime.Intrinsics.Vector512`1[double]):double (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: 80041792 (overridden on cmd)
Total bytes of diff: 80090872 (overridden on cmd)
Total bytes of delta: 49080 (0.06 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         852 : 82180.dasm (2.77 % of base)
         784 : 68275.dasm (5.43 % of base)
         316 : 2467.dasm (2.76 % of base)
         252 : 271068.dasm (1.54 % of base)
         248 : 80585.dasm (1.25 % of base)
         212 : 210512.dasm (3.84 % of base)
         208 : 289395.dasm (8.98 % of base)
         200 : 230660.dasm (3.13 % of base)
         188 : 289379.dasm (7.64 % of base)
         184 : 198207.dasm (10.11 % of base)
         184 : 197163.dasm (10.15 % of base)
         176 : 218143.dasm (2.69 % of base)
         172 : 289399.dasm (3.90 % of base)
         164 : 43965.dasm (3.97 % of base)
         160 : 205601.dasm (2.26 % of base)
         160 : 98891.dasm (2.96 % of base)
         156 : 16265.dasm (6.18 % of base)
         156 : 98893.dasm (2.63 % of base)
         156 : 125062.dasm (3.24 % of base)
         156 : 289017.dasm (5.71 % of base)

Top file improvements (bytes):
       -1172 : 93314.dasm (-11.87 % of base)
        -752 : 106089.dasm (-1.88 % of base)
        -624 : 288156.dasm (-12.62 % of base)
        -620 : 79995.dasm (-0.85 % of base)
        -504 : 172862.dasm (-8.82 % of base)
        -492 : 173198.dasm (-9.21 % of base)
        -432 : 281668.dasm (-3.63 % of base)
        -416 : 176601.dasm (-3.45 % of base)
        -396 : 173199.dasm (-6.38 % of base)
        -384 : 172870.dasm (-6.69 % of base)
        -384 : 42949.dasm (-1.13 % of base)
        -344 : 45148.dasm (-3.22 % of base)
        -340 : 196110.dasm (-4.61 % of base)
        -328 : 92796.dasm (-9.10 % of base)
        -272 : 131616.dasm (-1.28 % of base)
        -268 : 306970.dasm (-3.03 % of base)
        -256 : 299290.dasm (-8.53 % of base)
        -256 : 299386.dasm (-4.90 % of base)
        -248 : 281633.dasm (-1.79 % of base)
        -244 : 156722.dasm (-1.15 % of base)

85 total files with Code Size differences (42 improved, 43 regressed), 20 unchanged.

Top method regressions (bytes):
         852 (2.77 % of base) : 82180.dasm - Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         784 (5.43 % of base) : 68275.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         316 (2.76 % of base) : 2467.dasm - Microsoft.Build.Evaluation.Preprocessor:CloneChildrenResolvingImports(System.Xml.XmlNode,System.Xml.XmlNode):this (FullOpts)
         252 (1.54 % of base) : 271068.dasm - System.DirectoryServices.ActiveDirectory.Utils:GetReplicaList(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.String,ubyte,ubyte,ubyte):System.Collections.ArrayList (FullOpts)
         248 (1.25 % of base) : 80585.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         212 (3.84 % of base) : 210512.dasm - System.Speech.Internal.SrgsCompiler.Backend:InitFromBinaryGrammar(System.Speech.Internal.StreamMarshaler):this (FullOpts)
         208 (8.98 % of base) : 289395.dasm - System.Numerics.Tensors.TensorPrimitives+TanOperatorSingle:Invoke(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
         200 (3.13 % of base) : 230660.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         188 (7.64 % of base) : 289379.dasm - System.Numerics.Tensors.TensorPrimitives+SinOperatorDouble:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         184 (10.15 % of base) : 197163.dasm - System.Xml.Schema.XmlSchemaException:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
         184 (10.11 % of base) : 198207.dasm - System.Xml.Xsl.XsltException:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
         176 (2.69 % of base) : 218143.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.InliningInfoNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         172 (3.90 % of base) : 289399.dasm - System.Numerics.Tensors.TensorPrimitives+TanOperatorDouble:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         164 (3.97 % of base) : 43965.dasm - Microsoft.CodeAnalysis.CSharp.MethodBodySynthesizer:MakeSubmissionInitialization(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.CSharpCompilation) (FullOpts)
         160 (2.96 % of base) : 98891.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BuildBoundLambdaParameters(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,Microsoft.CodeAnalysis.VisualBasic.UnboundLambda+TargetSignature,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol]:this (FullOpts)
         160 (2.26 % of base) : 205601.dasm - System.Security.Cryptography.CryptoConfig:get_DefaultNameHT():System.Collections.Generic.Dictionary`2[System.String,System.Object] (FullOpts)
         156 (2.63 % of base) : 98893.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindLambdaBody(Microsoft.CodeAnalysis.VisualBasic.Symbols.LambdaSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.VisualBasic.BoundBlock:this (FullOpts)
         156 (3.24 % of base) : 125062.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager+AnonymousTypeTemplateSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager,Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor):this (FullOpts)
         156 (5.71 % of base) : 289017.dasm - System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ubyte]:Invoke(System.Runtime.Intrinsics.Vector512`1[ubyte],System.Runtime.Intrinsics.Vector512`1[ubyte]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)
         156 (6.18 % of base) : 16265.dasm - System.Runtime.Intrinsics.Vector512:Divide[ubyte](System.Runtime.Intrinsics.Vector512`1[ubyte],System.Runtime.Intrinsics.Vector512`1[ubyte]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)

Top method improvements (bytes):
       -1172 (-11.87 % of base) : 93314.dasm - Microsoft.Diagnostics.Tracing.Parsers.AspNet.AspNetTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -752 (-1.88 % of base) : 106089.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -624 (-12.62 % of base) : 288156.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
        -620 (-0.85 % of base) : 79995.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -504 (-8.82 % of base) : 172862.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -492 (-9.21 % of base) : 173198.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -432 (-3.63 % of base) : 281668.dasm - System.Management.ManagementClassGenerator:AddToDateTimeFunction():this (FullOpts)
        -416 (-3.45 % of base) : 176601.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -396 (-6.38 % of base) : 173199.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -384 (-1.13 % of base) : 42949.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -384 (-6.69 % of base) : 172870.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -344 (-3.22 % of base) : 45148.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
        -340 (-4.61 % of base) : 196110.dasm - System.Xml.Schema.DatatypeImplementation:.cctor() (FullOpts)
        -328 (-9.10 % of base) : 92796.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -272 (-1.28 % of base) : 131616.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -268 (-3.03 % of base) : 306970.dasm - Program:Main(System.String[]):int (FullOpts)
        -256 (-8.53 % of base) : 299290.dasm - System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadDocument(System.Xml.XmlReader):this (FullOpts)
        -256 (-4.90 % of base) : 299386.dasm - System.ServiceModel.Syndication.Rss20FeedFormatter:ReadXml(System.Xml.XmlReader,System.ServiceModel.Syndication.SyndicationFeed):this (FullOpts)
        -248 (-1.79 % of base) : 281633.dasm - System.Management.ManagementClassGenerator:GenerateTypeConverterClass():System.CodeDom.CodeTypeDeclaration:this (FullOpts)
        -244 (-1.15 % of base) : 156722.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)

Top method regressions (percentages):
          44 (31.43 % of base) : 264774.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          36 (31.03 % of base) : 4530.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
         100 (29.41 % of base) : 289537.dasm - System.Numerics.Tensors.TensorPrimitives+RoundToEvenOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
          28 (29.17 % of base) : 6630.dasm - Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
          24 (26.09 % of base) : 203197.dasm - System.Xml.Serialization.XmlCustomFormatter:get_Mode():int (FullOpts)
          32 (25.81 % of base) : 148043.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_FullyTrusted():ubyte (FullOpts)
          68 (25.76 % of base) : 256763.dasm - System.ComponentModel.Composition.MetadataViewGenerator:GenerateFieldAssignmentFromLocalValue(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.FieldBuilder) (FullOpts)
          52 (24.53 % of base) : 181638.dasm - System.Net.Http.HttpClientHandler:get_DangerousAcceptAnyServerCertificateValidator():System.Func`5[System.Net.Http.HttpRequestMessage,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Chain,int,ubyte] (FullOpts)
          84 (24.42 % of base) : 197569.dasm - System.Xml.Schema.XmlSchemaValidator:AddXsiAttributes(System.Collections.ArrayList):this (FullOpts)
          16 (23.53 % of base) : 246929.dasm - System.Reflection.TypeLoading.RoConstructor:GetMethodImplementationFlags():int:this (FullOpts)
          16 (23.53 % of base) : 292544.dasm - System.Reflection.TypeLoading.RoConstructor:GetMethodImplementationFlags():int:this (FullOpts)
          20 (22.73 % of base) : 240667.dasm - Microsoft.Build.Framework.ChangeWaves:set_ConversionState(int) (FullOpts)
          20 (22.73 % of base) : 250233.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.__Canon[],int,int) (FullOpts)
          44 (22.00 % of base) : 135339.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:IsBooleanLogicalNot(Microsoft.CodeAnalysis.Operations.IUnaryOperation):ubyte (FullOpts)
          44 (22.00 % of base) : 160399.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:IsBooleanLogicalNot(Microsoft.CodeAnalysis.Operations.IUnaryOperation):ubyte (FullOpts)
          76 (21.35 % of base) : 100882.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor:.ctor(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeField],Microsoft.CodeAnalysis.Location,ubyte):this (FullOpts)
          16 (21.05 % of base) : 292588.dasm - System.Reflection.TypeLoading.RoEvent:get_Attributes():int:this (FullOpts)
          16 (21.05 % of base) : 292808.dasm - System.Reflection.TypeLoading.RoMethod:get_Attributes():int:this (FullOpts)
          16 (21.05 % of base) : 247292.dasm - System.Reflection.TypeLoading.RoProperty:get_Attributes():int:this (FullOpts)
          16 (21.05 % of base) : 292968.dasm - System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)

Top method improvements (percentages):
         -44 (-29.73 % of base) : 264400.dasm - System.Data.Common.DbConnectionOptions:DebugTraceKeyValuePair(System.String,System.String,System.Collections.Hashtable) (FullOpts)
         -40 (-23.81 % of base) : 136024.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
         -40 (-23.81 % of base) : 161082.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 233396.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 1672.dasm - Microsoft.Build.Logging.LoggerDescription:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 102540.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.CustomEventAccessorSymbol:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 154532.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 129215.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 286647.dasm - System.Net.CommandStream:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 284394.dasm - System.Net.Mail.CheckCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 284399.dasm - System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 301838.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
          -8 (-20.00 % of base) : 289135.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 289079.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 289072.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 289131.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 289127.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 289168.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 289188.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
         -20 (-16.67 % of base) : 180589.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object: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: 327777900 (overridden on cmd)
Total bytes of diff: 327789120 (overridden on cmd)
Total bytes of delta: 11220 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1012 : 613309.dasm (5.19 % of base)
         980 : 378351.dasm (16.25 % of base)
         972 : 376884.dasm (14.99 % of base)
         836 : 381502.dasm (18.06 % of base)
         652 : 66601.dasm (4.07 % of base)
         644 : 19410.dasm (3.99 % of base)
         640 : 612325.dasm (5.64 % of base)
         632 : 69200.dasm (3.92 % of base)
         628 : 612890.dasm (4.09 % of base)
         584 : 56816.dasm (2.90 % of base)
         580 : 612901.dasm (3.66 % of base)
         532 : 86673.dasm (2.65 % of base)
         488 : 346389.dasm (5.62 % of base)
         468 : 612916.dasm (5.34 % of base)
         448 : 357296.dasm (3.27 % of base)
         444 : 153332.dasm (1.92 % of base)
         436 : 643166.dasm (2.98 % of base)
         436 : 580314.dasm (2.98 % of base)
         432 : 306405.dasm (4.30 % of base)
         432 : 267573.dasm (2.92 % of base)

Top file improvements (bytes):
       -1320 : 384056.dasm (-15.21 % of base)
        -640 : 376204.dasm (-8.88 % of base)
        -576 : 155535.dasm (-4.16 % of base)
        -572 : 376209.dasm (-7.94 % of base)
        -452 : 521173.dasm (-3.05 % of base)
        -384 : 600929.dasm (-3.18 % of base)
        -360 : 36391.dasm (-4.25 % of base)
        -324 : 420373.dasm (-6.26 % of base)
        -324 : 421431.dasm (-1.62 % of base)
        -304 : 420368.dasm (-3.24 % of base)
        -304 : 421515.dasm (-3.23 % of base)
        -288 : 583232.dasm (-2.40 % of base)
        -288 : 623765.dasm (-2.71 % of base)
        -284 : 421432.dasm (-1.43 % of base)
        -280 : 50583.dasm (-2.95 % of base)
        -276 : 81749.dasm (-2.91 % of base)
        -276 : 421433.dasm (-1.39 % of base)
        -268 : 325498.dasm (-1.87 % of base)
        -256 : 602015.dasm (-2.09 % of base)
        -252 : 281427.dasm (-11.37 % of base)

96 total files with Code Size differences (56 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
        1012 (5.19 % of base) : 613309.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitBinaryLogicalOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (Tier1)
         980 (16.25 % of base) : 378351.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[double]:<Divide_TwoTensors>b__140_0(int):this (Tier1)
         972 (14.99 % of base) : 376884.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Divide_TwoTensors>b__140_0(int):this (Tier1)
         836 (18.06 % of base) : 381502.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1+<>c__DisplayClass84_0[System.Half]:<ScalarSpanDestination_AllLengths>b__0(int):this (Tier1)
         652 (4.07 % of base) : 66601.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)
         644 (3.99 % of base) : 19410.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)
         640 (5.64 % of base) : 612325.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (Tier1)
         632 (3.92 % of base) : 69200.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)
         628 (4.09 % of base) : 612890.dasm - Microsoft.Cci.MetadataWriter:PopulateTypeDefTableRows():this (Tier1)
         584 (2.90 % of base) : 56816.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)
         580 (3.66 % of base) : 612901.dasm - Microsoft.Cci.MetadataWriter:PopulateTypeRefTableRows():this (Tier1)
         532 (2.65 % of base) : 86673.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)
         488 (5.62 % of base) : 346389.dasm - System.Net.Mail.SmtpTransport:SendMail(System.Net.Mail.MailAddress,System.Net.Mail.MailAddressCollection,System.String,ubyte,byref):System.Net.Mail.MailWriter:this (Tier1)
         468 (5.34 % of base) : 612916.dasm - Microsoft.Cci.MetadataWriter:AddAssemblyAttributesToTable(System.Collections.Generic.IEnumerable`1[Microsoft.Cci.ICustomAttribute],ubyte,ubyte):this (Tier1)
         448 (3.27 % of base) : 357296.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         444 (1.92 % of base) : 153332.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
         436 (2.98 % of base) : 643166.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         436 (2.98 % of base) : 580314.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         432 (2.92 % of base) : 267573.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         432 (4.30 % of base) : 306405.dasm - Xunit.Sdk.TypeUtility:ResolveGenericTypes(Xunit.Abstractions.IMethodInfo,System.Object[]):Xunit.Abstractions.ITypeInfo[] (Tier1)

Top method improvements (bytes):
       -1320 (-15.21 % of base) : 384056.dasm - System.Numerics.Tests.QuaternionTests:QuaternionCreateFromYawPitchRollTest2():this (Tier1-OSR)
        -640 (-8.88 % of base) : 376204.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized128|235_1[ulong,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ulong],System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ulong]](byref,ulong,byref,ulong) (Tier1)
        -576 (-4.16 % of base) : 155535.dasm - Microsoft.Extensions.Options.Generators.SymbolLoader:TryLoad(Microsoft.CodeAnalysis.Compilation,byref):ubyte (Tier1)
        -572 (-7.94 % of base) : 376209.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarIntoSpan>g__Vectorized128|235_1[ulong,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ulong],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ulong],ulong]](byref,ulong,byref,ulong) (Tier1)
        -452 (-3.05 % of base) : 521173.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1)
        -384 (-3.18 % of base) : 600929.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
        -360 (-4.25 % of base) : 36391.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Instrumented Tier1)
        -324 (-1.62 % of base) : 421431.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess1():int:this (Tier1)
        -324 (-6.26 % of base) : 420373.dasm - System.Xml.Tests.TCReadSubtree:DisposingSubtreeReaderThatIsInErrorStateWorksProperly():int:this (Tier1)
        -304 (-3.24 % of base) : 420368.dasm - System.Xml.Tests.TCReadSubtree:XmlReaderNameIsConsistentWhenReadingNamespaceNodeAttribute():int:this (Tier1)
        -304 (-3.23 % of base) : 421515.dasm - System.Xml.Tests.TCThisName:ThisWithName12():int:this (Tier1)
        -288 (-2.71 % of base) : 623765.dasm - Microsoft.CodeAnalysis.SolutionCompilationState:AddDocumentsToMultipleProjects[System.__Canon](System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]],System.Func`3[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.ValueTuple`2[System.__Canon,System.__Canon]]):Microsoft.CodeAnalysis.SolutionCompilationState:this (Tier1)
        -288 (-2.40 % of base) : 583232.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1-OSR)
        -284 (-1.43 % of base) : 421432.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess2():int:this (Tier1)
        -280 (-2.95 % of base) : 50583.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -276 (-2.91 % of base) : 81749.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
        -276 (-1.39 % of base) : 421433.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess3():int:this (Tier1)
        -268 (-1.87 % of base) : 325498.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
        -256 (-2.09 % of base) : 602015.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:DecodeWellKnownAttributeImpl(byref):this (Tier1)
        -252 (-11.37 % of base) : 281427.dasm - System.Threading.ReaderWriterLockSlim:TryEnterReadLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (Tier1)

Top method regressions (percentages):
          20 (45.45 % of base) : 52555.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
          20 (45.45 % of base) : 591505.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
          20 (45.45 % of base) : 85083.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
          96 (31.17 % of base) : 253046.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          80 (29.85 % of base) : 248180.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          80 (29.85 % of base) : 249344.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (29.17 % of base) : 96083.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (29.17 % of base) : 96085.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (29.17 % of base) : 96086.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (29.17 % of base) : 96089.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (29.17 % of base) : 95348.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (29.17 % of base) : 96067.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (29.17 % of base) : 96072.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (29.17 % of base) : 96073.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          84 (29.17 % of base) : 96074.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          16 (28.57 % of base) : 86065.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsTypeDeclaration(ushort):ubyte (Tier1)
          84 (27.27 % of base) : 95354.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          12 (27.27 % of base) : 151494.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsStartOfPropertyBody(ushort):ubyte (Tier1)
          96 (26.09 % of base) : 256267.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object,System.Object):System.Object (FullOpts)
          84 (25.61 % of base) : 248992.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.overload.overload19c.overload19c.Derived,System.Object,System.Object):System.Object (FullOpts)

Top method improvements (percentages):
         -72 (-37.50 % of base) : 358792.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -60 (-32.61 % of base) : 646876.dasm - System.Transactions.ContextData:get_TLSCurrentData():System.Transactions.ContextData (Tier1)
         -24 (-27.27 % of base) : 619360.dasm - System.Text.RegularExpressions.RegexParser:IsSpace(ushort):ubyte (Tier1)
         -52 (-27.08 % of base) : 58589.dasm - Microsoft.CodeAnalysis.ConsListExtensions:ContainsReference[System.__Canon](Roslyn.Utilities.ConsList`1[System.__Canon],System.__Canon):ubyte (Tier1)
         -56 (-25.93 % of base) : 40571.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Instrumented Tier1)
         -96 (-25.81 % of base) : 362786.dasm - Microsoft.Win32.SafeHandles.SafeCrypt32Handle`1[System.__Canon]:get_InvalidHandle():System.__Canon (Tier1)
         -48 (-25.53 % of base) : 398112.dasm - MS.Internal.Xml.Cache.XPathNode:SetSimilarElement(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
         -96 (-24.74 % of base) : 82892.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.__Canon]:get_Values():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (Tier1)
         -44 (-23.40 % of base) : 397962.dasm - MS.Internal.Xml.Cache.XPathNode:SetSibling(MS.Internal.Xml.Cache.XPathNodeInfoTable,MS.Internal.Xml.Cache.XPathNode[],int):this (Tier1)
        -108 (-22.50 % of base) : 576467.dasm - System.Text.Json.Serialization.Converters.ICollectionOfTConverter`2[System.__Canon,System.__Canon]:ConfigureJsonTypeInfo(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions):this (Tier1)
        -108 (-22.50 % of base) : 577551.dasm - System.Text.Json.Serialization.Converters.IDictionaryOfTKeyTValueConverter`3[System.__Canon,System.__Canon,int]:ConfigureJsonTypeInfo(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions):this (Tier1)
        -108 (-22.50 % of base) : 576466.dasm - System.Text.Json.Serialization.Converters.ISetOfTConverter`2[System.__Canon,System.__Canon]:ConfigureJsonTypeInfo(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions):this (Tier1)
         -88 (-21.36 % of base) : 153131.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetPublicSymbols[System.__Canon](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
          -8 (-20.00 % of base) : 372068.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
          -8 (-20.00 % of base) : 372123.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
          -8 (-20.00 % of base) : 372045.dasm - System.Int16:Max(short,short):short (Instrumented Tier1)
          -8 (-20.00 % of base) : 371742.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)
          -8 (-20.00 % of base) : 414514.dasm - System.Xml.Schema.XmlSchemaAny:get_ProcessContentsCorrect():int:this (Tier1)
         -88 (-19.13 % of base) : 576029.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreatePropertySetter[System.__Canon](System.Reflection.PropertyInfo):System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
          -8 (-18.18 % of base) : 61306.dasm - Microsoft.CodeAnalysis.TypeLayout:get_Kind():int: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: 167608372 (overridden on cmd)
Total bytes of diff: 168215068 (overridden on cmd)
Total bytes of delta: 606696 (0.36 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1480 : 61382.dasm (1.68 % of base)
         828 : 61561.dasm (0.96 % of base)
         828 : 61223.dasm (0.96 % of base)
         812 : 7239.dasm (5.69 % of base)
         804 : 50003.dasm (5.73 % of base)
         620 : 61406.dasm (1.63 % of base)
         612 : 184799.dasm (5.58 % of base)
         596 : 61051.dasm (1.53 % of base)
         588 : 60985.dasm (1.68 % of base)
         520 : 213134.dasm (7.16 % of base)
         520 : 221679.dasm (7.16 % of base)
         520 : 215176.dasm (7.16 % of base)
         408 : 44745.dasm (2.96 % of base)
         408 : 97202.dasm (3.15 % of base)
         372 : 247764.dasm (0.39 % of base)
         360 : 61553.dasm (1.16 % of base)
         352 : 71826.dasm (6.01 % of base)
         340 : 23241.dasm (3.89 % of base)
         336 : 116697.dasm (2.42 % of base)
         324 : 222792.dasm (4.78 % of base)

Top file improvements (bytes):
       -1324 : 217641.dasm (-5.16 % of base)
        -904 : 190725.dasm (-7.60 % of base)
        -896 : 263903.dasm (-1.65 % of base)
        -836 : 261801.dasm (-1.49 % of base)
        -836 : 262376.dasm (-1.49 % of base)
        -836 : 263346.dasm (-1.49 % of base)
        -836 : 248992.dasm (-1.49 % of base)
        -836 : 250386.dasm (-1.49 % of base)
        -836 : 256020.dasm (-1.49 % of base)
        -836 : 262658.dasm (-1.49 % of base)
        -836 : 262856.dasm (-1.49 % of base)
        -836 : 264010.dasm (-1.49 % of base)
        -800 : 247999.dasm (-1.42 % of base)
        -772 : 207434.dasm (-4.37 % of base)
        -756 : 254104.dasm (-1.35 % of base)
        -672 : 19406.dasm (-1.33 % of base)
        -656 : 174148.dasm (-3.94 % of base)
        -652 : 146257.dasm (-5.45 % of base)
        -636 : 217649.dasm (-1.98 % of base)
        -624 : 156502.dasm (-12.62 % of base)

86 total files with Code Size differences (44 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
        1480 (1.68 % of base) : 61382.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<OrObject_TestData>d__90:MoveNext():ubyte:this (FullOpts)
         828 (0.96 % of base) : 61223.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<AndObject_TestData>d__13:MoveNext():ubyte:this (FullOpts)
         828 (0.96 % of base) : 61561.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<XorObject_TestData>d__116:MoveNext():ubyte:this (FullOpts)
         812 (5.69 % of base) : 7239.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         804 (5.73 % of base) : 50003.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         620 (1.63 % of base) : 61406.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<SubtractObject_TestData>d__109:MoveNext():ubyte:this (FullOpts)
         612 (5.58 % of base) : 184799.dasm - System.Reflection.Emit.Tests.CustomAttributeBuilderTests:Ctor_AllPrimitives() (FullOpts)
         596 (1.53 % of base) : 61051.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<MultiplyObject_Idempotent_TestData>d__60:MoveNext():ubyte:this (FullOpts)
         588 (1.68 % of base) : 60985.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<DivideObject_TestData>d__27:MoveNext():ubyte:this (FullOpts)
         520 (7.16 % of base) : 213134.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[byte](byte,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         520 (7.16 % of base) : 215176.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[int](int,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         520 (7.16 % of base) : 221679.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[short](short,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)
         408 (2.96 % of base) : 44745.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         408 (3.15 % of base) : 97202.dasm - System.Data.Tests.DataTableTest2:GetChanges_ByDataRowState():this (FullOpts)
         372 (0.39 % of base) : 247764.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:.cctor() (FullOpts)
         360 (1.16 % of base) : 61553.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<IntDivideObject_TestData>d__42:MoveNext():ubyte:this (FullOpts)
         352 (6.01 % of base) : 71826.dasm - System.Collections.Immutable.Tests.ImmutableHashSetTest:Create():this (FullOpts)
         340 (3.89 % of base) : 23241.dasm - Microsoft.CodeAnalysis.FindSymbols.DependentTypeFinder+ProjectIndex+<CreateIndexAsync>d__8:MoveNext():this (FullOpts)
         336 (2.42 % of base) : 116697.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.generics.derived.ovr003.ovr003.Program:MainMethod():int (FullOpts)
         324 (4.78 % of base) : 222792.dasm - System.Tests.NumberFormatTestHelper:TryFormatNumberTest[uint](uint,System.String,System.IFormatProvider,System.String,ubyte) (FullOpts)

Top method improvements (bytes):
       -1324 (-5.16 % of base) : 217641.dasm - System.Tests.ArrayTests+<Sort_Array_Array_Generic_TestData>d__173:MoveNext():ubyte:this (FullOpts)
        -904 (-7.60 % of base) : 190725.dasm - System.Reflection.Tests.FieldTests:TestLiteralFields1() (FullOpts)
        -896 (-1.65 % of base) : 263903.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -836 (-1.49 % of base) : 263346.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -836 (-1.49 % of base) : 250386.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -836 (-1.49 % of base) : 248992.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Default+ExtensionDataTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -836 (-1.49 % of base) : 262376.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Metadata+ExtensionDataTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -836 (-1.49 % of base) : 261801.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Metadata+PropertyNameTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -836 (-1.49 % of base) : 256020.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Default+PropertyVisibilityTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -836 (-1.49 % of base) : 264010.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -836 (-1.49 % of base) : 262658.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -836 (-1.49 % of base) : 262856.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -800 (-1.42 % of base) : 247999.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -772 (-4.37 % of base) : 207434.dasm - DataContractSerializerTests:DCS_BasicPerSerializerRoundTripAndCompare_SampleTypes() (FullOpts)
        -756 (-1.35 % of base) : 254104.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Metadata+PropertyVisibilityTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -672 (-1.33 % of base) : 19406.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (FullOpts)
        -656 (-3.94 % of base) : 174148.dasm - XPathTests.FunctionalTests.Location.Paths.AxesCombinationsTests:AxesCombinationsTest291(int) (FullOpts)
        -652 (-5.45 % of base) : 146257.dasm - System.Management.ManagementClassGenerator:AddToDateTimeFunction():this (FullOpts)
        -636 (-1.98 % of base) : 217649.dasm - System.Tests.ArrayTests+<Sort_SZArray_TestData>d__159:MoveNext():ubyte:this (FullOpts)
        -624 (-12.62 % of base) : 156502.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)

Top method regressions (percentages):
          36 (34.62 % of base) : 40392.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          96 (31.17 % of base) : 110127.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          48 (30.77 % of base) : 36247.dasm - Grace.DependencyInjection.Impl.InjectionScope+InternalFieldStorageClass:.ctor():this (FullOpts)
          28 (30.43 % of base) : 108167.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
          24 (30.00 % of base) : 169783.dasm - System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b__17_0():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
          80 (29.85 % of base) : 105459.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          80 (29.85 % of base) : 105502.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 105050.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.nested01b.nested01b.Test:Bar2(System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 115674.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.nested05c.nested05c.Test:Bar1(System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 115676.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.nested05c.nested05c.Test:Bar3(System.Object):System.Object (FullOpts)
          20 (29.41 % of base) : 108447.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04a.order04a.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 108446.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04a.order04a.Test:Bar2():System.Object (FullOpts)
          20 (29.41 % of base) : 110952.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04b.order04b.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 110951.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order04b.order04b.Test:Bar2():System.Object (FullOpts)
          20 (29.41 % of base) : 112822.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05a.order05a.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 112821.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05a.order05a.Test:Bar3():System.Object (FullOpts)
          20 (29.41 % of base) : 110450.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05b.order05b.Test:Bar1():System.Object (FullOpts)
          20 (29.41 % of base) : 110449.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.executeOrder.order05b.order05b.Test:Bar3():System.Object (FullOpts)
          44 (26.83 % of base) : 183191.dasm - System.Xml.Tests.TCXMLIntegrityBase:HelperThisNameNamespace():int:this (FullOpts)
          52 (26.53 % of base) : 235287.dasm - System.Security.Cryptography.Tests.OidCollectionTests:CopyTo_NonGeneric_Throws():this (FullOpts)

Top method improvements (percentages):
         -40 (-23.81 % of base) : 11430.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 157835.dasm - System.Net.Mail.CheckCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 157818.dasm - System.Net.Mail.ReadLinesCommand:.cctor() (FullOpts)
         -36 (-21.95 % of base) : 159914.dasm - System.Threading.Channels.AsyncOperation:.cctor() (FullOpts)
          -8 (-20.00 % of base) : 165554.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 166453.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
          -8 (-20.00 % of base) : 165604.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 166451.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -8 (-20.00 % of base) : 165541.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
          -8 (-20.00 % of base) : 165514.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
          -8 (-20.00 % of base) : 165551.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
          -8 (-20.00 % of base) : 165574.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
        -120 (-17.05 % of base) : 21416.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
         -36 (-16.36 % of base) : 183232.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
        -316 (-16.12 % of base) : 101977.dasm - BasicEventSourceTests.TestUtilities:CheckNoEventSourcesRunning(System.String) (FullOpts)
         -12 (-15.79 % of base) : 42977.dasm - Microsoft.CodeAnalysis.Options.PerLanguageOption2`1[int]:get_DefaultValue():int:this (FullOpts)
         -12 (-15.79 % of base) : 48725.dasm - Microsoft.CodeAnalysis.Options.PerLanguageOption2`1[int]:get_DefaultValue():int:this (FullOpts)
         -12 (-15.79 % of base) : 247021.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Metadata+CollectionTestsContext_Metadata+<>c:<KeyValuePairStringKeyValuePairStringStringPropInit>b__501_1(System.Object):System.Collections.Generic.KeyValuePair`2[System.String,System.String]:this (FullOpts)
         -12 (-15.79 % of base) : 247013.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Metadata+CollectionTestsContext_Metadata+<>c:<KeyValuePairStringSimpleClassWithKeyValuePairsPropInit>b__513_0(System.Object):System.String:this (FullOpts)
         -12 (-15.79 % of base) : 245273.dasm - System.Text.Json.SourceGeneration.Tests.MetadataContext+<>c:<ValueTupleStringInt32BooleanPropInit>b__8_0(System.Object):System.String: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: 15837772 (overridden on cmd)
Total bytes of diff: 15835928 (overridden on cmd)
Total bytes of delta: -1844 (-0.01 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         528 : 1390.dasm (11.68 % of base)
         408 : 12256.dasm (7.57 % of base)
         388 : 12257.dasm (7.23 % of base)
         340 : 19706.dasm (2.38 % of base)
         284 : 825.dasm (5.33 % of base)
         264 : 13496.dasm (2.99 % of base)
         232 : 18030.dasm (8.59 % of base)
         228 : 12258.dasm (6.96 % of base)
         188 : 31245.dasm (1.64 % of base)
         176 : 18471.dasm (3.11 % of base)
         176 : 2393.dasm (2.20 % of base)
         176 : 20117.dasm (2.51 % of base)
         168 : 11810.dasm (4.81 % of base)
         168 : 1533.dasm (10.66 % of base)
         152 : 15008.dasm (4.06 % of base)
         148 : 2811.dasm (1.85 % of base)
         148 : 5984.dasm (2.56 % of base)
         144 : 1174.dasm (2.51 % of base)
         140 : 8099.dasm (0.82 % of base)
         128 : 32013.dasm (2.78 % of base)

Top file improvements (bytes):
       -6756 : 30052.dasm (-3.67 % of base)
        -848 : 4468.dasm (-2.25 % of base)
        -764 : 29184.dasm (-7.82 % of base)
        -760 : 7302.dasm (-10.05 % of base)
        -644 : 12432.dasm (-4.06 % of base)
        -624 : 14549.dasm (-12.62 % of base)
        -496 : 32341.dasm (-3.84 % of base)
        -340 : 15209.dasm (-1.02 % of base)
        -328 : 28996.dasm (-2.55 % of base)
        -300 : 2537.dasm (-3.13 % of base)
        -264 : 29482.dasm (-1.77 % of base)
        -256 : 24578.dasm (-2.43 % of base)
        -252 : 3225.dasm (-5.25 % of base)
        -248 : 30260.dasm (-2.91 % of base)
        -244 : 31994.dasm (-4.56 % of base)
        -204 : 17796.dasm (-1.60 % of base)
        -184 : 4683.dasm (-5.15 % of base)
        -180 : 1657.dasm (-8.06 % of base)
        -168 : 33000.dasm (-11.48 % of base)
        -168 : 418.dasm (-2.36 % of base)

91 total files with Code Size differences (49 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
         528 (11.68 % of base) : 1390.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CapsuleTriangleTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         408 (7.57 % of base) : 12256.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessBorderColumn(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
         388 (7.23 % of base) : 12257.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessBorderRow(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
         340 (2.38 % of base) : 19706.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         284 (5.33 % of base) : 825.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         264 (2.99 % of base) : 13496.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
         232 (8.59 % of base) : 18030.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         228 (6.96 % of base) : 12258.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessCornerTile(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
         188 (1.64 % of base) : 31245.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         176 (2.20 % of base) : 2393.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
         176 (3.11 % of base) : 18471.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         176 (2.51 % of base) : 20117.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator:GetTypeAndRefKind(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator+TypeAndRefKind:this (FullOpts)
         168 (10.66 % of base) : 1533.dasm - BepuPhysics.Constraints.OneBodyTypeProcessor`5[BepuPhysics.Constraints.Contact.Contact1OneBodyPrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.Constraints.Contact.Contact1OneBodyFunctions,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose]:Solve(byref,BepuPhysics.Bodies,float,float,int,int):this (FullOpts)
         168 (4.81 % of base) : 11810.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Bottom(byref,int,System.ReadOnlySpan`1[SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32]]):SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32] (FullOpts)
         152 (4.06 % of base) : 15008.dasm - Microsoft.ML.Transforms.NormalizingTransformer:Train(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.IDataView,Microsoft.ML.Transforms.NormalizingEstimator+ColumnOptionsBase[]):Microsoft.ML.Transforms.NormalizingTransformer (FullOpts)
         148 (1.85 % of base) : 2811.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
         148 (2.56 % of base) : 5984.dasm - FSharp.Compiler.TypedTreePickle:unpickleObjWithDanglingCcus[System.__Canon](System.String,FSharp.Compiler.AbstractIL.IL+ILScopeRef,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.IL+ILModuleDef],Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],FSharp.Compiler.IO.ReadOnlyByteMemory):FSharp.Compiler.TypedTreePickle+PickledDataWithReferences`1[System.__Canon] (FullOpts)
         144 (2.51 % of base) : 1174.dasm - BepuPhysics.IslandAwakener:PrepareJobs(byref,ubyte,int):System.ValueTuple`2[int,int]:this (FullOpts)
         140 (0.82 % of base) : 8099.dasm - FSharp.Compiler.CheckExpressions:TcPat(FSharp.Compiler.NameResolution+WarnOnUpperFlag,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PartialValReprInfo],FSharp.Compiler.TypedTree+ValInline,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+ArgAndRetAttribs,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],ubyte,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.Syntax.SynPat):System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+TcPatPhase2Input,FSharp.Compiler.PatternMatchCompilation+Pattern],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
         128 (2.78 % of base) : 32013.dasm - System.Management.Automation.CmdletParameterBinderController:GetDefaultParameterValuePairs(ubyte):System.Collections.Generic.Dictionary`2[System.Management.Automation.MergedCompiledCommandParameter,System.Object]:this (FullOpts)

Top method improvements (bytes):
       -6756 (-3.67 % of base) : 30052.dasm - System.Management.Automation.Runspaces.TypeTable:Process_Types_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
        -848 (-2.25 % of base) : 4468.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Lexer:.cctor() (FullOpts)
        -764 (-7.82 % of base) : 29184.dasm - System.Management.Automation.Runspaces.PSSnapInHelpers:InitializeCoreCmdletsAndProviders(System.Management.Automation.PSSnapInInfo,byref,byref,System.String) (FullOpts)
        -760 (-10.05 % of base) : 7302.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.AsciiLexer:.cctor() (FullOpts)
        -644 (-4.06 % of base) : 12432.dasm - Microsoft.ML.Data.Conversion.Conversions:.ctor():this (FullOpts)
        -624 (-12.62 % of base) : 14549.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
        -496 (-3.84 % of base) : 32341.dasm - System.Management.Automation.Verbs:.cctor() (FullOpts)
        -340 (-1.02 % of base) : 15209.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -328 (-2.55 % of base) : 28996.dasm - System.Management.Automation.Runspaces.InitialSessionState:.cctor() (FullOpts)
        -300 (-3.13 % of base) : 2537.dasm - FSharp.Compiler.CompilerOptions:internalFlags(FSharp.Compiler.CompilerConfig+TcConfigBuilder):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOption] (FullOpts)
        -264 (-1.77 % of base) : 29482.dasm - System.Management.Automation.Language.CachedReflectionInfo:.cctor() (FullOpts)
        -256 (-2.43 % of base) : 24578.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
        -252 (-5.25 % of base) : 3225.dasm - Microsoft.Build.Shared.FrameworkLocationHelper:.cctor() (FullOpts)
        -248 (-2.91 % of base) : 30260.dasm - System.Management.Automation.Runspaces.TypeTable:Process_TypesV3_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
        -244 (-4.56 % of base) : 31994.dasm - System.Management.Automation.ReflectionParameterBinder:.cctor() (FullOpts)
        -204 (-1.60 % of base) : 17796.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -184 (-5.15 % of base) : 4683.dasm - FSharp.Compiler.CompilerOptions:outputFileFlagsFsc(FSharp.Compiler.CompilerConfig+TcConfigBuilder):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOption] (FullOpts)
        -180 (-8.06 % of base) : 1657.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -168 (-2.36 % of base) : 418.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (FullOpts)
        -168 (-11.48 % of base) : 33000.dasm - System.Management.Automation.PSObject:GetPropertyCollection(int,System.Management.Automation.Runspaces.TypeTable):System.Collections.ObjectModel.Collection`1[System.Management.Automation.CollectionEntry`1[System.Management.Automation.PSPropertyInfo]] (FullOpts)

Top method regressions (percentages):
          52 (41.94 % of base) : 3228.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsOSX():ubyte (FullOpts)
          52 (41.94 % of base) : 3226.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)
          36 (37.50 % of base) : 31621.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
          32 (20.51 % of base) : 2362.dasm - <StartupCode$FSharp-Compiler-Service>.$Internal.Utilities.Library.Extras:.cctor() (FullOpts)
          32 (20.51 % of base) : 6008.dasm - FSharp.Compiler.AbstractIL.IL+ILAlignment:.cctor() (FullOpts)
          32 (20.51 % of base) : 2383.dasm - FSharp.Compiler.CompilerConfig+CompilerTarget:.cctor() (FullOpts)
          32 (20.51 % of base) : 4551.dasm - FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity:.cctor() (FullOpts)
          32 (20.51 % of base) : 8826.dasm - FSharp.Compiler.Infos+CallerInfo:.cctor() (FullOpts)
          32 (20.51 % of base) : 10231.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefType:.cctor() (FullOpts)
          32 (20.51 % of base) : 5242.dasm - FSharp.Compiler.Syntax.DebugPointAtSequential:.cctor() (FullOpts)
          32 (20.51 % of base) : 6310.dasm - FSharp.Compiler.TypedTree+TyconFSharpObjModelKind:.cctor() (FullOpts)
          32 (20.51 % of base) : 8022.dasm - FSharp.Compiler.TypedTree+ValBaseOrThisInfo:.cctor() (FullOpts)
          32 (20.51 % of base) : 8557.dasm - FSharp.Compiler.TypedTreeOps+Mutates:.cctor() (FullOpts)
          32 (20.51 % of base) : 27770.dasm - Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)
          32 (20.51 % of base) : 25376.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:.cctor() (FullOpts)
          32 (20.51 % of base) : 31306.dasm - System.Management.Automation.Interpreter.ThrowInstruction:.cctor() (FullOpts)
          32 (20.00 % of base) : 10627.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefExpr:.cctor() (FullOpts)
          32 (20.00 % of base) : 5099.dasm - FSharp.Compiler.Syntax.DebugPointAtBinding:.cctor() (FullOpts)
          32 (20.00 % of base) : 9379.dasm - FSharp.Compiler.TypedTree+TOp:.cctor() (FullOpts)
          72 (20.00 % of base) : 14547.dasm - System.Net.HeaderInfoTable:.cctor() (FullOpts)

Top method improvements (percentages):
         -36 (-21.95 % of base) : 26868.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
         -12 (-14.29 % of base) : 13252.dasm - Microsoft.ML.Data.RowCursorUtils+<>c__DisplayClass4_0`2[uint,ulong]:<GetGetterAsCore>b__0(byref):this (FullOpts)
         -12 (-14.29 % of base) : 13002.dasm - Microsoft.ML.Data.SchemaBindablePredictorWrapperBase+<>c__DisplayClass18_0`2[Microsoft.ML.Data.VBuffer`1[float],float]:<GetValueGetter>b__0(byref):this (FullOpts)
         -12 (-14.29 % of base) : 13237.dasm - Microsoft.ML.Transforms.ValueToKeyMappingTransformer+BoundTermMap+Base`1+<>c__DisplayClass3_1[float]:<GetMappingGetter>b__0(byref):this (FullOpts)
        -128 (-13.50 % of base) : 31642.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -12 (-13.04 % of base) : 14707.dasm - Microsoft.ML.Transforms.Text.TextNormalizingTransformer+Mapper+<>c__DisplayClass9_0:<MakeGetterOne>b__0(byref):this (FullOpts)
        -624 (-12.62 % of base) : 14549.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
         -24 (-12.50 % of base) : 18223.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:AddToConcurrentMap(System.Collections.Concurrent.ConcurrentDictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]],System.ReadOnlyMemory`1[ushort]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (FullOpts)
         -44 (-12.36 % of base) : 32759.dasm - System.Management.Automation.ComInterop.ComRuntimeHelpers:GetTypeAttrForTypeInfo(System.Runtime.InteropServices.ComTypes.ITypeInfo):System.Runtime.InteropServices.ComTypes.TYPEATTR (FullOpts)
        -168 (-11.48 % of base) : 33000.dasm - System.Management.Automation.PSObject:GetPropertyCollection(int,System.Management.Automation.Runspaces.TypeTable):System.Collections.ObjectModel.Collection`1[System.Management.Automation.CollectionEntry`1[System.Management.Automation.PSPropertyInfo]] (FullOpts)
         -60 (-11.45 % of base) : 12077.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifNumber:TrySetValue(System.Object):ubyte:this (FullOpts)
         -16 (-11.43 % of base) : 9363.dasm - Microsoft.FSharp.Collections.Internal+IEnumerator+map2@163[System.__Canon,System.__Canon,System.__Canon]:Dispose():this (FullOpts)
        -144 (-11.39 % of base) : 32635.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
         -36 (-10.71 % of base) : 13493.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Options:set_StopWordsRemoverOptions(Microsoft.ML.Transforms.Text.IStopWordsRemoverOptions):this (FullOpts)
        -760 (-10.05 % of base) : 7302.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.AsciiLexer:.cctor() (FullOpts)
         -12 (-10.00 % of base) : 31588.dasm - System.Management.Automation.Language.IsSafeValueVisitor:<VisitArrayLiteral>b__66_0(System.Management.Automation.Language.ExpressionAst):ubyte:this (FullOpts)
         -44 (-10.00 % of base) : 31159.dasm - System.Management.Automation.Language.PSPipeWriterBinder:.ctor():this (FullOpts)
         -12 (-10.00 % of base) : 32054.dasm - System.Management.Automation.ReflectionParameterBinder+<>c:<.cctor>b__4_19(System.Object,System.Object):this (FullOpts)
         -12 (-10.00 % of base) : 33215.dasm - System.Management.Automation.ReflectionParameterBinder+<>c:<.cctor>b__4_23(System.Object,System.Object):this (FullOpts)
         -28 (-9.72 % of base) : 12082.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifShort:TrySetValue(System.Object):ubyte:this (FullOpts)


smoke_tests.nativeaot.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 3980864 (overridden on cmd)
Total bytes of diff: 3971176 (overridden on cmd)
Total bytes of delta: -9688 (-0.24 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         308 : 23220.dasm (4.62 % of base)
         308 : 23318.dasm (4.62 % of base)
         268 : 4419.dasm (5.89 % of base)
         268 : 1148.dasm (5.89 % of base)
         220 : 11491.dasm (2.57 % of base)
         128 : 5686.dasm (10.46 % of base)
         128 : 10936.dasm (10.46 % of base)
         124 : 11482.dasm (6.87 % of base)
         124 : 14833.dasm (6.86 % of base)
         108 : 6110.dasm (4.66 % of base)
          76 : 11486.dasm (5.65 % of base)
          76 : 14834.dasm (5.62 % of base)
          76 : 6112.dasm (4.95 % of base)
          60 : 23661.dasm (4.20 % of base)
          60 : 9979.dasm (4.20 % of base)
          52 : 1463.dasm (7.83 % of base)
          52 : 4954.dasm (7.83 % of base)
          44 : 15203.dasm (6.15 % of base)
          40 : 11971.dasm (4.10 % of base)
          40 : 8204.dasm (3.72 % of base)

Top file improvements (bytes):
        -368 : 23663.dasm (-4.38 % of base)
        -368 : 9986.dasm (-4.38 % of base)
        -152 : 10397.dasm (-4.43 % of base)
        -152 : 23922.dasm (-4.43 % of base)
        -112 : 10396.dasm (-4.97 % of base)
        -112 : 23921.dasm (-4.97 % of base)
        -100 : 10154.dasm (-7.55 % of base)
        -100 : 4836.dasm (-7.44 % of base)
         -96 : 11162.dasm (-8.33 % of base)
         -96 : 12111.dasm (-3.38 % of base)
         -96 : 14921.dasm (-8.30 % of base)
         -96 : 6327.dasm (-8.03 % of base)
         -96 : 12292.dasm (-13.04 % of base)
         -96 : 12296.dasm (-13.04 % of base)
         -96 : 6783.dasm (-3.13 % of base)
         -88 : 10612.dasm (-6.61 % of base)
         -88 : 8288.dasm (-12.94 % of base)
         -84 : 12769.dasm (-13.21 % of base)
         -80 : 12290.dasm (-7.38 % of base)
         -76 : 6401.dasm (-6.81 % of base)

86 total files with Code Size differences (46 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         308 (4.62 % of base) : 23220.dasm - ReflectionTest+TestReflectionInvoke:Run() (FullOpts)
         308 (4.62 % of base) : 23318.dasm - ReflectionTest+TestReflectionInvoke:Run() (FullOpts)
         268 (5.89 % of base) : 4419.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         268 (5.89 % of base) : 1148.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         220 (2.57 % of base) : 11491.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         128 (10.46 % of base) : 5686.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
         128 (10.46 % of base) : 10936.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
         124 (6.87 % of base) : 11482.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         124 (6.86 % of base) : 14833.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         108 (4.66 % of base) : 6110.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
          76 (5.65 % of base) : 11486.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          76 (5.62 % of base) : 14834.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          76 (4.95 % of base) : 6112.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          60 (4.20 % of base) : 23661.dasm - Generics+TestDelegateToCanonMethods:Run() (FullOpts)
          60 (4.20 % of base) : 9979.dasm - Generics+TestDelegateToCanonMethods:Run() (FullOpts)
          52 (7.83 % of base) : 1463.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,System.__Canon]:Add(System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,int,System.__Canon):this (FullOpts)
          52 (7.83 % of base) : 4954.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,System.__Canon]:Add(System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,int,System.__Canon):this (FullOpts)
          44 (6.15 % of base) : 15203.dasm - PInvokeTests.Program:TestStringBuilder() (FullOpts)
          40 (4.10 % of base) : 11971.dasm - System.Type:GetEnumData(byref,byref):this (FullOpts)
          40 (3.72 % of base) : 8204.dasm - System.Type:GetEnumData(byref,byref):this (FullOpts)

Top method improvements (bytes):
        -368 (-4.38 % of base) : 23663.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
        -368 (-4.38 % of base) : 9986.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
        -152 (-4.43 % of base) : 10397.dasm - Generics+TestFieldAccess:TestStaticFields() (FullOpts)
        -152 (-4.43 % of base) : 23922.dasm - Generics+TestFieldAccess:TestStaticFields() (FullOpts)
        -112 (-4.97 % of base) : 10396.dasm - Generics+TestFieldAccess:TestInstanceFields() (FullOpts)
        -112 (-4.97 % of base) : 23921.dasm - Generics+TestFieldAccess:TestInstanceFields() (FullOpts)
        -100 (-7.55 % of base) : 10154.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetStaticRuntimeMethodHandleComponents(System.RuntimeMethodHandle,byref,byref,byref):ubyte:this (FullOpts)
        -100 (-7.44 % of base) : 4836.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetStaticRuntimeMethodHandleComponents(System.RuntimeMethodHandle,byref,byref,byref):ubyte:this (FullOpts)
         -96 (-8.33 % of base) : 11162.dasm - System.Enum:ToObject(System.Type,System.Object):System.Object (FullOpts)
         -96 (-8.30 % of base) : 14921.dasm - System.Enum:ToObject(System.Type,System.Object):System.Object (FullOpts)
         -96 (-8.03 % of base) : 6327.dasm - System.Enum:ToObject(System.Type,System.Object):System.Object (FullOpts)
         -96 (-13.04 % of base) : 12296.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Checked:Convert(System.Object):System.Object:this (FullOpts)
         -96 (-13.04 % of base) : 12292.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Unchecked:Convert(System.Object):System.Object:this (FullOpts)
         -96 (-3.38 % of base) : 12111.dasm - System.Reflection.CustomAttributeTypedArgument:ToString(ubyte):System.String:this (FullOpts)
         -96 (-3.13 % of base) : 6783.dasm - System.Reflection.CustomAttributeTypedArgument:ToString(ubyte):System.String:this (FullOpts)
         -88 (-12.94 % of base) : 8288.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -88 (-6.61 % of base) : 10612.dasm - System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:GetDefaultMemberName():System.String:this (FullOpts)
         -84 (-13.21 % of base) : 12769.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -80 (-7.38 % of base) : 12290.dasm - System.Linq.Expressions.Interpreter.CastReferenceToEnumInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
         -76 (-6.81 % of base) : 6401.dasm - Internal.TypeSystem.TypeSystemContext+RuntimeMethodKey+RuntimeMethodKeyHashtable:CompareValueToValue(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MethodDesc):ubyte:this (FullOpts)

Top method regressions (percentages):
          16 (17.39 % of base) : 10346.dasm - System.Threading.ManualResetEventSlim:get_WaitHandle():System.Threading.WaitHandle:this (FullOpts)
          12 (15.00 % of base) : 11795.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
          12 (15.00 % of base) : 6393.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
          12 (14.29 % of base) : 12390.dasm - System.Exception:CaptureDispatchState():System.Exception+DispatchState:this (FullOpts)
          12 (14.29 % of base) : 6981.dasm - System.Exception:CaptureDispatchState():System.Exception+DispatchState:this (FullOpts)
          32 (14.04 % of base) : 1769.dasm - System.Threading.Lock:TryInitializeStatics():ubyte (FullOpts)
          32 (14.04 % of base) : 5425.dasm - System.Threading.Lock:TryInitializeStatics():ubyte (FullOpts)
          20 (13.89 % of base) : 13604.dasm - System.Dynamic.Utils.TypeExtensions:MatchesArgumentTypes(System.Reflection.MethodInfo,System.Type[]):ubyte (FullOpts)
          12 (13.64 % of base) : 3295.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
          12 (13.64 % of base) : 9379.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
          12 (13.04 % of base) : 9590.dasm - System.Linq.Expressions.ParameterExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (12.50 % of base) : 19695.dasm - System.Text.Ascii:CountNumberOfLeadingAsciiBytesFromUInt32WithSomeNonAsciiData(uint):uint (FullOpts)
          24 (12.50 % of base) : 11972.dasm - System.Type:ImplementInterface(System.Type):ubyte:this (FullOpts)
          12 (12.00 % of base) : 1774.dasm - System.Collections.ObjectModel.ReadOnlyCollection`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this (FullOpts)
           8 (11.76 % of base) : 10089.dasm - System.Linq.Expressions.ConditionalExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 11396.dasm - System.Linq.Expressions.DefaultExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 10095.dasm - System.Linq.Expressions.InvocationExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 11437.dasm - System.Linq.Expressions.LabelExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 10103.dasm - System.Linq.Expressions.MemberExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
           8 (11.76 % of base) : 11431.dasm - System.Linq.Expressions.SwitchExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)

Top method improvements (percentages):
          -8 (-14.29 % of base) : 9448.dasm - Generics+TestVariantCasting+GenericDelegate`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
          -8 (-14.29 % of base) : 9246.dasm - System.Action:InvokeOpenStaticThunk():this (FullOpts)
          -8 (-14.29 % of base) : 9401.dasm - System.Func`1[int]:InvokeOpenStaticThunk():int:this (FullOpts)
          -8 (-14.29 % of base) : 9433.dasm - System.Func`1[System.ValueTuple`2[int,System.__Canon]]:InvokeOpenStaticThunk():System.ValueTuple`2[int,System.__Canon]:this (FullOpts)
          -8 (-14.29 % of base) : 23600.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
         -20 (-13.51 % of base) : 2221.dasm - System.IO.StreamWriter:Dispose(ubyte):this (FullOpts)
         -20 (-13.51 % of base) : 5431.dasm - System.IO.StreamWriter:Dispose(ubyte):this (FullOpts)
         -16 (-13.33 % of base) : 2590.dasm - System.IO.Path:GetDirectoryName(System.String):System.String (FullOpts)
         -16 (-13.33 % of base) : 8444.dasm - System.IO.Path:GetDirectoryName(System.String):System.String (FullOpts)
          -8 (-13.33 % of base) : 23416.dasm - System.Random+Net5CompatDerivedImpl:Next():int:this (FullOpts)
         -84 (-13.21 % of base) : 12769.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -96 (-13.04 % of base) : 12296.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Checked:Convert(System.Object):System.Object:this (FullOpts)
         -96 (-13.04 % of base) : 12292.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Unchecked:Convert(System.Object):System.Object:this (FullOpts)
         -88 (-12.94 % of base) : 8288.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -12 (-12.00 % of base) : 3734.dasm - System.Func`1[int]:InvokeOpenStaticThunk():int:this (FullOpts)
         -12 (-12.00 % of base) : 3814.dasm - System.Func`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
         -12 (-12.00 % of base) : 3387.dasm - System.Threading.ThreadStart:InvokeOpenStaticThunk():this (FullOpts)
          -8 (-11.11 % of base) : 1124.dasm - System.Text.DecoderFallbackBuffer:Reset():this (FullOpts)
         -12 (-10.71 % of base) : 13924.dasm - Internal.TypeSystem.CastingHelper:IsMethodSignatureCompatibleWith(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte (FullOpts)
         -12 (-10.71 % of base) : 8207.dasm - Internal.TypeSystem.CastingHelper:IsMethodSignatureCompatibleWith(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte (FullOpts)



windows x64

Diffs are based on 2,429,920 contexts (941,815 MinOpts, 1,488,105 FullOpts).

MISSED contexts: base: 176 (0.01%), diff: 891 (0.04%)

Overall (+2,536,694 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x64.checked.mch 8,740,616 +9,967 -2.67%
benchmarks.run_pgo.windows.x64.checked.mch 35,540,192 +92,790 -0.88%
benchmarks.run_tiered.windows.x64.checked.mch 12,429,625 -5,403 -4.21%
coreclr_tests.run.windows.x64.checked.mch 404,049,115 +1,350,863 -1.77%
libraries.crossgen2.windows.x64.checked.mch 45,123,608 +10,664 -0.48%
libraries.pmi.windows.x64.checked.mch 62,129,258 +179,422 -1.45%
libraries_tests.run.windows.x64.Release.mch 282,300,135 +493,184 -1.37%
librariestestsnotieredcompilation.run.windows.x64.Release.mch 136,037,588 +374,118 -1.94%
realworld.run.windows.x64.checked.mch 14,153,477 +24,813 -1.22%
smoke_tests.nativeaot.windows.x64.checked.mch 5,114,999 +6,276 -0.74%

FullOpts (+2,536,694 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x64.checked.mch 8,740,256 +9,967 -2.67%
benchmarks.run_pgo.windows.x64.checked.mch 21,479,875 +92,790 -0.88%
benchmarks.run_tiered.windows.x64.checked.mch 3,195,176 -5,403 -4.21%
coreclr_tests.run.windows.x64.checked.mch 123,481,509 +1,350,863 -1.77%
libraries.crossgen2.windows.x64.checked.mch 45,122,421 +10,664 -0.48%
libraries.pmi.windows.x64.checked.mch 62,015,764 +179,422 -1.45%
libraries_tests.run.windows.x64.Release.mch 105,925,985 +493,184 -1.37%
librariestestsnotieredcompilation.run.windows.x64.Release.mch 125,744,709 +374,118 -1.94%
realworld.run.windows.x64.checked.mch 13,767,309 +24,813 -1.22%
smoke_tests.nativeaot.windows.x64.checked.mch 5,114,052 +6,276 -0.74%

Example diffs

benchmarks.run.windows.x64.checked.mch

-10 (-19.61%) : 6577.dasm - (dynamicClass):Int1Getter(System.Object):int (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> rbx class-hnd single-def <System.Object> ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> rcx "CSE - unknown"
; ; Lcl frame size = 32 @@ -21,18 +22,17 @@ G_M53339_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rbx] ;; size=8 bbWeight=1 PerfScore 1.50 G_M53339_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rdx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties - cmp qword ptr [rbx], rdx
+ mov rcx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties + cmp qword ptr [rbx], rcx
je SHORT G_M53339_IG04 ;; size=15 bbWeight=1 PerfScore 4.25 G_M53339_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdx, rbx ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rdx] ; gcr arg pop 0
- ;; size=19 bbWeight=0.25 PerfScore 0.88
+ ;; size=9 bbWeight=0.25 PerfScore 0.81
G_M53339_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbx+0x30] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -42,7 +42,7 @@ G_M53339_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 51, prolog size 5, PerfScore 10.38, instruction count 13, allocated bytes for code 51 (MethodHash=b44e2fa4) for method (dynamicClass):Int1Getter(System.Object):int (FullOpts)
+; Total bytes of code 41, prolog size 5, PerfScore 10.31, instruction count 12, allocated bytes for code 41 (MethodHash=b44e2fa4) for method (dynamicClass):Int1Getter(System.Object):int (FullOpts)
; ============================================================ Unwind Info:

-10 (-19.61%) : 9117.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_6012(System.Object):int:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (64) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.LargeStructWithProperties> ; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "V02.[044..048)"
+; V05 cse0 [V05,T01] ( 3, 2.25) long -> rcx "CSE - unknown"
; ; Lcl frame size = 32 @@ -23,18 +24,17 @@ G_M24240_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rbx] ;; size=8 bbWeight=1 PerfScore 1.50 G_M24240_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rdx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties - cmp qword ptr [rbx], rdx
+ mov rcx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties + cmp qword ptr [rbx], rcx
je SHORT G_M24240_IG04 ;; size=15 bbWeight=1 PerfScore 4.25 G_M24240_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdx, rbx ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rdx] ; gcr arg pop 0
- ;; size=19 bbWeight=0.25 PerfScore 0.88
+ ;; size=9 bbWeight=0.25 PerfScore 0.81
G_M24240_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbx+0x34] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -44,7 +44,7 @@ G_M24240_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 51, prolog size 5, PerfScore 10.38, instruction count 13, allocated bytes for code 51 (MethodHash=852ea14f) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
+; Total bytes of code 41, prolog size 5, PerfScore 10.31, instruction count 12, allocated bytes for code 41 (MethodHash=852ea14f) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
; ============================================================ Unwind Info:

-10 (-19.61%) : 9118.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_6014(System.Object):int:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (64) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.LargeStructWithProperties> ; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "V02.[048..052)"
+; V05 cse0 [V05,T01] ( 3, 2.25) long -> rcx "CSE - unknown"
; ; Lcl frame size = 32 @@ -23,18 +24,17 @@ G_M44086_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rbx] ;; size=8 bbWeight=1 PerfScore 1.50 G_M44086_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rdx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties - cmp qword ptr [rbx], rdx
+ mov rcx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties + cmp qword ptr [rbx], rcx
je SHORT G_M44086_IG04 ;; size=15 bbWeight=1 PerfScore 4.25 G_M44086_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdx, rbx ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rdx] ; gcr arg pop 0
- ;; size=19 bbWeight=0.25 PerfScore 0.88
+ ;; size=9 bbWeight=0.25 PerfScore 0.81
G_M44086_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbx+0x38] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -44,7 +44,7 @@ G_M44086_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 51, prolog size 5, PerfScore 10.38, instruction count 13, allocated bytes for code 51 (MethodHash=48b553c9) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_14(System.Object):int:this (FullOpts)
+; Total bytes of code 41, prolog size 5, PerfScore 10.31, instruction count 12, allocated bytes for code 41 (MethodHash=48b553c9) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_14(System.Object):int:this (FullOpts)
; ============================================================ Unwind Info:

+18 (+22.22%) : 11078.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)

@@ -9,18 +9,16 @@ ; Final local variable assignments ; ; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 2, 1 ) int -> rax -; V02 cse0 [V02,T00] ( 4, 3.50) long -> rbx "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 2, 1 ) int -> rax
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M24568_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx - sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M24568_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp dword ptr [rbx], 0
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp dword ptr [rax], 0
jne SHORT G_M24568_IG05 ;; size=15 bbWeight=1 PerfScore 4.25 G_M24568_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz @@ -32,16 +30,17 @@ G_M24568_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov ecx, 2 cmp byte ptr [(reloc)], 0 ; data for <unknown class>:<unknown field> cmove eax, ecx
- mov dword ptr [rbx], eax - ;; size=22 bbWeight=0.50 PerfScore 2.38
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov dword ptr [rcx], eax + ;; size=32 bbWeight=0.50 PerfScore 2.50
G_M24568_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbx] - ;; size=2 bbWeight=1 PerfScore 2.00
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov eax, dword ptr [rax] + ;; size=12 bbWeight=1 PerfScore 2.25
G_M24568_IG06: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32 - pop rbx
+ add rsp, 40
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M24568_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz mov rcx, 0xD1FFAB1E mov edx, 4 @@ -50,7 +49,7 @@ G_M24568_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { jmp SHORT G_M24568_IG04 ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 81, prolog size 5, PerfScore 13.62, instruction count 20, allocated bytes for code 81 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
+; Total bytes of code 99, prolog size 4, PerfScore 12.50, instruction count 20, allocated bytes for code 99 (MethodHash=da4fa007) for method System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
; ============================================================ Unwind Info: @@ -58,10 +57,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

+18 (+22.78%) : 4694.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)

@@ -11,66 +11,67 @@ ; V00 this [V00,T00] ( 7, 7 ) ref -> rbx this class-hnd single-def <System.Net.SystemNetworkCredential> ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
-;* V03 tmp2 [V03,T04] ( 0, 0 ) ref -> zero-ref single-def
+;* V03 tmp2 [V03,T03] ( 0, 0 ) ref -> zero-ref single-def
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
-; V05 tmp4 [V05,T02] ( 4, 4.75) ref -> rcx single-def "CASTCLASS eval op1"
+; V05 tmp4 [V05,T01] ( 4, 4.75) ref -> rcx single-def "CASTCLASS eval op1"
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
-; V07 tmp6 [V07,T03] ( 4, 1.75) ref -> rcx class-hnd exact "Inline stloc first use temp" <<unknown class>>
+; V07 tmp6 [V07,T02] ( 4, 1.75) ref -> rcx class-hnd exact "Inline stloc first use temp" <<unknown class>>
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
-;* V09 tmp8 [V09,T05] ( 0, 0 ) ref -> zero-ref single-def
+;* V09 tmp8 [V09,T04] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
-; V11 cse0 [V11,T01] ( 5, 5 ) ref -> rsi "CSE - aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M45139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rsi
push rbx
- sub rsp, 40
+ sub rsp, 32
mov rbx, rcx ; gcrRegs +[rbx]
- ;; size=9 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M45139_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rsi, 0xD1FFAB1E - ; gcrRegs +[rsi] - mov gword ptr [rbx+0x10], rsi - mov gword ptr [rbx+0x10], rsi - mov rcx, gword ptr [rbx+0x18]
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
+ mov gword ptr [rbx+0x10], rcx + mov gword ptr [rbx+0x10], rcx + mov rcx, gword ptr [rbx+0x18]
test rcx, rcx je SHORT G_M45139_IG05 ;; size=27 bbWeight=1 PerfScore 5.50
-G_M45139_IG03: ; bbWeight=0.25, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M45139_IG03: ; bbWeight=0.25, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
mov rax, 0xD1FFAB1E ; <unknown class> cmp qword ptr [rcx], rax je SHORT G_M45139_IG05 ;; size=15 bbWeight=0.25 PerfScore 1.06
-G_M45139_IG04: ; bbWeight=0.12, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M45139_IG04: ; bbWeight=0.12, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx] xor rcx, rcx ; gcrRegs +[rcx] ;; size=2 bbWeight=0.12 PerfScore 0.03
-G_M45139_IG05: ; bbWeight=1, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz - mov gword ptr [rbx+0x18], rsi
+G_M45139_IG05: ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rbx+0x18], rax
test rcx, rcx je SHORT G_M45139_IG07
- ;; size=9 bbWeight=1 PerfScore 2.25 -G_M45139_IG06: ; bbWeight=0.50, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
+ ;; size=19 bbWeight=1 PerfScore 2.50 +G_M45139_IG06: ; bbWeight=0.50, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M45139_IG07: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref - mov gword ptr [rbx+0x08], rsi - ;; size=4 bbWeight=1 PerfScore 1.00
+G_M45139_IG07: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rbx+0x08], rax + ;; size=14 bbWeight=1 PerfScore 1.25
G_M45139_IG08: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
- pop rsi
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 79, prolog size 6, PerfScore 16.09, instruction count 24, allocated bytes for code 79 (MethodHash=d2234fac) for method System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
+; Total bytes of code 97, prolog size 5, PerfScore 15.09, instruction count 24, allocated bytes for code 97 (MethodHash=d2234fac) for method System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -78,11 +79,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

+12 (+23.08%) : 18102.dasm - Roslyn.Utilities.UICultureUtilities:.cctor() (FullOpts)

@@ -8,40 +8,37 @@ ; Final local variable assignments ; ; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 4, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M28579_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx - sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M28579_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - mov rcx, rbx
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call [<unknown method>] ; gcr arg pop 0 test eax, eax jne SHORT G_M28579_IG04
- ;; size=23 bbWeight=1 PerfScore 4.75
+ ;; size=20 bbWeight=1 PerfScore 4.50
G_M28579_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, rbx
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call [<unknown method>] ; gcr arg pop 0 test eax, eax jne SHORT G_M28579_IG04 xor rax, rax ; gcrRegs +[rax]
- mov gword ptr [rbx], rax - ;; size=18 bbWeight=0.50 PerfScore 2.88
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov gword ptr [rcx], rax + ;; size=35 bbWeight=0.50 PerfScore 3.00
G_M28579_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc ; gcrRegs -[rax]
- add rsp, 32 - pop rbx
+ add rsp, 40
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 52, prolog size 5, PerfScore 10.62, instruction count 16, allocated bytes for code 52 (MethodHash=e5d8905c) for method Roslyn.Utilities.UICultureUtilities:.cctor() (FullOpts)
+; Total bytes of code 64, prolog size 4, PerfScore 9.00, instruction count 14, allocated bytes for code 64 (MethodHash=e5d8905c) for method Roslyn.Utilities.UICultureUtilities:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -49,10 +46,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

benchmarks.run_pgo.windows.x64.checked.mch

-6 (-30.00%) : 23837.dasm - System.Math:Max(short,short):short (Tier1)

@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 1878 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> rcx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> rcx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> rdx single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rdx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rax "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,17 +20,15 @@ G_M25962_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M25962_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, cx
- movsx rdx, dx - movsx rcx, cx - cmp eax, edx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.50
+ movsx rcx, dx + cmp eax, ecx + cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M25962_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 20 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
; ============================================================ Unwind Info:

-6 (-30.00%) : 32717.dasm - System.Math:Max(short,short):short (Tier1)

@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 36 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> rcx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> rcx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> rdx single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rdx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rax "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,17 +20,15 @@ G_M25962_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M25962_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, cx
- movsx rdx, dx - movsx rcx, cx - cmp eax, edx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.50
+ movsx rcx, dx + cmp eax, ecx + cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M25962_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 20 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
; ============================================================ Unwind Info:

-6 (-30.00%) : 47137.dasm - System.Math:Max(short,short):short (Tier1)

@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 281 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> rcx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> rcx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> rdx single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rdx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rax "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,17 +20,15 @@ G_M25962_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M25962_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, cx
- movsx rdx, dx - movsx rcx, cx - cmp eax, edx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.50
+ movsx rcx, dx + cmp eax, ecx + cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M25962_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 20 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=439a9a95) for method System.Math:Max(short,short):short (Tier1)
; ============================================================ Unwind Info:

+26 (+16.88%) : 46706.dasm - NeuralJagged:checkouterror():int (Tier1)

@@ -8,33 +8,29 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 766 ; Final local variable assignments ;
-; V00 loc0 [V00,T02] ( 5, 14 ) int -> rsi
+; V00 loc0 [V00,T02] ( 5, 14 ) int -> rbx
; V01 loc1 [V01,T01] ( 6, 51 ) int -> rcx
-; V02 loc2 [V02,T07] ( 3, 2 ) int -> rbp
+; V02 loc2 [V02,T05] ( 3, 2 ) int -> rsi
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T00] ( 3, 60 ) ref -> rax "arr expr"
-; V05 cse0 [V05,T03] ( 3, 12 ) int -> rdx "CSE - aggressive" -; V06 cse1 [V06,T08] ( 2, 10.91) double -> mm0 hoist "CSE - aggressive" -; V07 cse2 [V07,T09] ( 2, 10.91) double -> mm1 hoist "CSE - aggressive" -; V08 cse3 [V08,T05] ( 2, 10.91) ref -> r8 hoist "CSE - aggressive" -; V09 cse4 [V09,T10] ( 2, 10.91) double -> mm2 hoist "CSE - aggressive" -; V10 cse5 [V10,T04] ( 3, 12 ) long -> rdi "CSE - aggressive" -; V11 cse6 [V11,T06] ( 4, 3 ) long -> rbx "CSE - aggressive"
+; V05 cse0 [V05,T06] ( 2, 10.91) double -> mm2 hoist "CSE - unknown" +; V06 cse1 [V06,T03] ( 3, 12 ) int -> rdx "CSE - unknown" +; V07 cse2 [V07,T07] ( 2, 10.91) double -> mm0 hoist "CSE - unknown" +; V08 cse3 [V08,T08] ( 2, 10.91) double -> mm1 hoist "CSE - unknown" +; V09 cse4 [V09,T04] ( 2, 10.91) ref -> r8 hoist "CSE - unknown"
; ; Lcl frame size = 40 G_M25747_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi
push rsi
- push rbp
push rbx sub rsp, 40
- ;; size=8 bbWeight=1 PerfScore 4.25
+ ;; size=6 bbWeight=1 PerfScore 2.25
G_M25747_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - mov esi, dword ptr [rbx] - mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - mov ebp, dword ptr [rdi]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov ebx, dword ptr [rax] + mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov esi, dword ptr [rax]
call [NeuralJagged:worst_pass_error()] ; gcr arg pop 0 xor ecx, ecx @@ -53,8 +49,9 @@ G_M25747_IG03: ; bbWeight=0.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr G_M25747_IG04: ; bbWeight=10, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz vucomisd xmm0, xmm1 jb SHORT G_M25747_IG05
- mov esi, dword ptr [rdi] - ;; size=8 bbWeight=10 PerfScore 50.00
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov ebx, dword ptr [rax] + ;; size=18 bbWeight=10 PerfScore 52.50
G_M25747_IG05: ; bbWeight=10, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz mov rax, r8 ; gcrRegs +[rax] @@ -73,31 +70,31 @@ G_M25747_IG06: ; bbWeight=10, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byr ;; size=6 bbWeight=10 PerfScore 15.00 G_M25747_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[r8]
- cmp ebp, dword ptr [rbx] - cmove esi, dword ptr [(reloc)] ; static handle - mov eax, esi - ;; size=11 bbWeight=1 PerfScore 6.25
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp esi, dword ptr [rax] + cmove ebx, dword ptr [(reloc)] ; static handle + mov eax, ebx + ;; size=21 bbWeight=1 PerfScore 6.50
G_M25747_IG08: ; bbWeight=1, epilog, nogc, extend add rsp, 40 pop rbx
- pop rbp
pop rsi
- pop rdi
ret
- ;; size=9 bbWeight=1 PerfScore 3.25
+ ;; size=7 bbWeight=1 PerfScore 2.25
G_M25747_IG09: ; 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_M25747_IG10: ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[r8]
- mov ebp, dword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov esi, dword ptr [rax]
jmp SHORT G_M25747_IG06
- ;; size=4 bbWeight=0 PerfScore 0.00
+ ;; size=14 bbWeight=0 PerfScore 0.00
RWD00 dq 4030000000000000h ; 16
-; Total bytes of code 154, prolog size 8, PerfScore 216.80, instruction count 44, allocated bytes for code 154 (MethodHash=9d8c9b6c) for method NeuralJagged:check_out_error():int (Tier1)
+; Total bytes of code 180, prolog size 6, PerfScore 216.55, instruction count 43, allocated bytes for code 180 (MethodHash=9d8c9b6c) for method NeuralJagged:check_out_error():int (Tier1)
; ============================================================ Unwind Info: @@ -105,13 +102,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x08 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x06 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)

+18 (+17.14%) : 67477.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)

@@ -16,28 +16,26 @@ ;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis> ;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp" ;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis>
-; V09 cse0 [V09,T03] ( 6, 3 ) long -> rdi "CSE - aggressive" -; V10 cse1 [V10,T05] ( 4, 3 ) long -> rbp "CSE - aggressive"
+; V09 cse0 [V09,T03] ( 6, 3 ) long -> rdi "CSE - unknown"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M26010_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rdi push rsi
- push rbp
push rbx
- sub rsp, 40
+ sub rsp, 32
mov rbx, rcx ; gcrRegs +[rbx] mov rsi, rdx ; gcrRegs +[rsi]
- ;; size=14 bbWeight=1 PerfScore 4.75
+ ;; size=13 bbWeight=1 PerfScore 3.75
G_M26010_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz mov rdx, gword ptr [rsi+0x20] ; gcrRegs +[rdx] mov rdi, qword ptr [rbx]
- mov rbp, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis - cmp rdi, rbp
+ mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis + cmp rdi, rcx
jne SHORT G_M26010_IG06 mov rcx, rbx ; gcrRegs +[rcx] @@ -46,9 +44,10 @@ G_M26010_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, ; gcr arg pop 0 mov rdx, gword ptr [rsi+0x28] ; gcrRegs +[rdx]
- cmp rdi, rbp
+ mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis + cmp rdi, rcx
jne SHORT G_M26010_IG07
- ;; size=40 bbWeight=1 PerfScore 12.00
+ ;; size=50 bbWeight=1 PerfScore 12.25
G_M26010_IG03: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref ; gcrRegs -[rax rsi] mov rcx, rbx @@ -63,13 +62,12 @@ G_M26010_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs +[rax] ;; size=2 bbWeight=1 PerfScore 0.25 G_M26010_IG05: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
- pop rbp
pop rsi pop rdi ret
- ;; size=9 bbWeight=1 PerfScore 3.25
+ ;; size=8 bbWeight=1 PerfScore 2.75
G_M26010_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs -[rax] +[rdx rbx rsi] mov rcx, rbx @@ -80,9 +78,10 @@ G_M26010_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=004C { ; gcr arg pop 0 mov rdx, gword ptr [rsi+0x28] ; gcrRegs +[rdx]
- cmp rdi, rbp
+ mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis + cmp rdi, rcx
je SHORT G_M26010_IG03
- ;; size=19 bbWeight=0 PerfScore 0.00
+ ;; size=29 bbWeight=0 PerfScore 0.00
G_M26010_IG07: ; bbWeight=0, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[rax rsi] mov rcx, rbx @@ -94,7 +93,7 @@ G_M26010_IG07: ; bbWeight=0, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, jmp SHORT G_M26010_IG04 ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 105, prolog size 8, PerfScore 21.88, instruction count 36, allocated bytes for code 105 (MethodHash=54409a65) for method Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
+; Total bytes of code 123, prolog size 7, PerfScore 20.62, instruction count 36, allocated bytes for code 123 (MethodHash=54409a65) for method Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
; ============================================================ Unwind Info: @@ -102,13 +101,12 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x08 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x07 + CountOfUnwindCodes: 4
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 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)

+18 (+20.69%) : 63149.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:IsNullableType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Tier1)

@@ -10,42 +10,40 @@ ; V00 arg0 [V00,T00] ( 6, 4 ) ref -> rcx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol> ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V03 tmp2 [V03,T03] ( 3, 1.50) int -> rsi "guarded devirt return temp"
+; V03 tmp2 [V03,T02] ( 3, 1.50) int -> rbx "guarded devirt return temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol+PENamedTypeSymbolNonGeneric>
-; V05 tmp4 [V05,T02] ( 7, 2.50) ref -> rcx "guarded devirt return temp"
+; V05 tmp4 [V05,T01] ( 7, 2.50) ref -> rcx "guarded devirt return temp"
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol+PENamedTypeSymbolNonGeneric>
-; V07 cse0 [V07,T01] ( 4, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M15997_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rsi
push rbx
- sub rsp, 40 - ;; size=6 bbWeight=1 PerfScore 2.25
+ sub rsp, 32 + ;; size=5 bbWeight=1 PerfScore 1.25
G_M15997_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[rcx]
- mov rbx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol+PENamedTypeSymbolNonGeneric - cmp qword ptr [rcx], rbx
+ mov rax, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol+PENamedTypeSymbolNonGeneric + cmp qword ptr [rcx], rax
jne SHORT G_M15997_IG06
- cmp qword ptr [rcx], rbx
+ mov rax, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol+PENamedTypeSymbolNonGeneric + cmp qword ptr [rcx], rax
jne SHORT G_M15997_IG07
- ;; size=20 bbWeight=1 PerfScore 8.25
+ ;; size=30 bbWeight=1 PerfScore 8.50
G_M15997_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
- movsx rsi, byte ptr [rcx+0x84]
+ movsx rbx, byte ptr [rcx+0x84]
;; size=8 bbWeight=0.50 PerfScore 2.00 G_M15997_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] xor eax, eax
- cmp esi, 32
+ cmp ebx, 32
sete al ;; size=8 bbWeight=1 PerfScore 1.50 G_M15997_IG05: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
- pop rsi
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
G_M15997_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs +[rcx] mov rax, qword ptr [rcx] @@ -55,21 +53,22 @@ G_M15997_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 { ; gcr arg pop 0 mov rcx, rax ; gcrRegs +[rcx]
- cmp qword ptr [rcx], rbx - je SHORT G_M15997_IG03 - ;; size=21 bbWeight=0 PerfScore 0.00 -G_M15997_IG07: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+ mov rax, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol+PENamedTypeSymbolNonGeneric
; gcrRegs -[rax]
+ cmp qword ptr [rcx], rax + je SHORT G_M15997_IG03 + ;; size=31 bbWeight=0 PerfScore 0.00 +G_M15997_IG07: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0xA8] call [rax+0x20]<unknown method> ; gcrRegs -[rcx] ; gcr arg pop 0
- mov esi, eax
+ mov ebx, eax
jmp SHORT G_M15997_IG04 ;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 87, prolog size 6, PerfScore 16.25, instruction count 27, allocated bytes for code 87 (MethodHash=3374c182) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:IsNullableType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Tier1)
+; Total bytes of code 105, prolog size 5, PerfScore 15.00, instruction count 27, allocated bytes for code 105 (MethodHash=3374c182) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:IsNullableType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Tier1)
; ============================================================ Unwind Info: @@ -77,11 +76,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

benchmarks.run_tiered.windows.x64.checked.mch

-28 (-21.21%) : 5145.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier1-OSR)

@@ -12,58 +12,45 @@ ; V01 loc0 [V01,T01] ( 4, 13 ) int -> rbx ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V03 tmp1 [V03,T00] ( 3, 24 ) ref -> rax class-hnd exact "Single-def Box Helper" <<unknown class>>
-; V04 cse0 [V04,T02] ( 3, 6 ) long -> rsi "CSE - aggressive" -; V05 cse1 [V05,T03] ( 2, 4.50) long -> rdi hoist "CSE - aggressive" -; V06 cse2 [V06,T04] ( 2, 4.50) long -> rbp hoist "CSE - aggressive" -; V07 cse3 [V07,T05] ( 2, 4.50) long -> r14 hoist "CSE - aggressive"
; ; Lcl frame size = 32 G_M18672_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 72 - mov qword ptr [rsp+0xC8], r14 - mov qword ptr [rsp+0xC0], rdi - mov qword ptr [rsp+0xB8], rsi - mov qword ptr [rsp+0xB0], rbx - mov ebx, dword ptr [rsp+0x94] - ;; size=43 bbWeight=1 PerfScore 6.25
+ sub rsp, 40 + mov qword ptr [rsp+0xA8], rbx + mov ebx, dword ptr [rsp+0x74] + ;; size=16 bbWeight=1 PerfScore 3.25
G_M18672_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rsi, 0xD1FFAB1E ; static handle - cmp ebx, dword ptr [rsi] - jge SHORT G_M18672_IG05
+ mov rcx, 0xD1FFAB1E ; static handle + cmp ebx, dword ptr [rcx] + jge SHORT G_M18672_IG04
;; size=14 bbWeight=1 PerfScore 4.25
-G_M18672_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov rdi, 0xD1FFAB1E ; <unknown class> - mov rbp, 0xD1FFAB1E ; static handle - mov r14, 0xD1FFAB1E ; static handle - ;; size=30 bbWeight=0.50 PerfScore 0.38 -G_M18672_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - mov rcx, rdi
+G_M18672_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0
- mov ecx, dword ptr [rbp]
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov ecx, dword ptr [rcx]
mov dword ptr [rax+0x08], ecx
- mov rcx, r14
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdx, rax ; gcrRegs +[rdx] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx] inc ebx
- cmp ebx, dword ptr [rsi] - jl SHORT G_M18672_IG04 - ;; size=31 bbWeight=4 PerfScore 40.00 -G_M18672_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - add rsp, 176
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp ebx, dword ptr [rax] + jl SHORT G_M18672_IG03 + ;; size=64 bbWeight=4 PerfScore 42.00 +G_M18672_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + add rsp, 168
pop rbx
- pop rsi - pop rdi - pop r14
pop rbp ret
- ;; size=14 bbWeight=1 PerfScore 3.75
+ ;; size=10 bbWeight=1 PerfScore 2.25
-; Total bytes of code 132, prolog size 43, PerfScore 54.62, instruction count 29, allocated bytes for code 132 (MethodHash=acdcb70f) for method PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier1-OSR)
+; Total bytes of code 104, prolog size 16, PerfScore 51.75, instruction count 22, allocated bytes for code 104 (MethodHash=acdcb70f) for method PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier1-OSR)
; ============================================================ Unwind Info: @@ -71,20 +58,14 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x24 - CountOfUnwindCodes: 12
+ SizeOfProlog : 0x0C + CountOfUnwindCodes: 6
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x24 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3) - Scaled Small Offset: 22 * 8 = 176 = 0x000B0 - CodeOffset: 0x1C UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rsi (6) - Scaled Small Offset: 23 * 8 = 184 = 0x000B8 - CodeOffset: 0x14 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rdi (7) - Scaled Small Offset: 24 * 8 = 192 = 0x000C0 - CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r14 (14) - Scaled Small Offset: 25 * 8 = 200 = 0x000C8 - CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48
+ CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3) + Scaled Small Offset: 21 * 8 = 168 = 0x000A8 + 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: 17 * 8 = 136 = 0x00088 CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-28 (-20.90%) : 31534.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjScalarValueType():this (Tier1-OSR)

@@ -12,58 +12,45 @@ ; V01 loc0 [V01,T01] ( 4, 13 ) int -> rbx ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V03 tmp1 [V03,T00] ( 3, 24 ) ref -> rax class-hnd exact "Single-def Box Helper" <PerfLabTests.CastingPerf2.FooSVT>
-; V04 cse0 [V04,T02] ( 3, 6 ) long -> rsi "CSE - aggressive" -; V05 cse1 [V05,T03] ( 2, 4.50) long -> rdi hoist "CSE - aggressive" -; V06 cse2 [V06,T04] ( 2, 4.50) long -> rbp hoist "CSE - aggressive" -; V07 cse3 [V07,T05] ( 2, 4.50) long -> r14 hoist "CSE - aggressive"
; ; Lcl frame size = 32 G_M11358_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 72 - mov qword ptr [rsp+0xB8], r14 - mov qword ptr [rsp+0xB0], rdi - mov qword ptr [rsp+0xA8], rsi - mov qword ptr [rsp+0xA0], rbx - mov ebx, dword ptr [rsp+0x84] - ;; size=43 bbWeight=1 PerfScore 6.25
+ sub rsp, 40 + mov qword ptr [rsp+0x98], rbx + mov ebx, dword ptr [rsp+0x64] + ;; size=16 bbWeight=1 PerfScore 3.25
G_M11358_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rsi, 0xD1FFAB1E ; static handle - cmp ebx, dword ptr [rsi] - jge SHORT G_M11358_IG05
+ mov rcx, 0xD1FFAB1E ; static handle + cmp ebx, dword ptr [rcx] + jge SHORT G_M11358_IG04
;; size=14 bbWeight=1 PerfScore 4.25
-G_M11358_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov rdi, 0xD1FFAB1E ; PerfLabTests.CastingPerf2.FooSVT - mov rbp, 0xD1FFAB1E ; static handle - mov r14, 0xD1FFAB1E ; static handle - ;; size=30 bbWeight=0.50 PerfScore 0.38 -G_M11358_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - mov rcx, rdi
+G_M11358_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + mov rcx, 0xD1FFAB1E ; PerfLabTests.CastingPerf2.FooSVT
call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0
- mov rcx, qword ptr [rbp]
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rcx, qword ptr [rcx]
mov qword ptr [rax+0x08], rcx
- mov rcx, r14
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdx, rax ; gcrRegs +[rdx] call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx] inc ebx
- cmp ebx, dword ptr [rsi] - jl SHORT G_M11358_IG04 - ;; size=33 bbWeight=4 PerfScore 40.00 -G_M11358_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - add rsp, 160
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp ebx, dword ptr [rax] + jl SHORT G_M11358_IG03 + ;; size=66 bbWeight=4 PerfScore 42.00 +G_M11358_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + add rsp, 152
pop rbx
- pop rsi - pop rdi - pop r14
pop rbp ret
- ;; size=14 bbWeight=1 PerfScore 3.75
+ ;; size=10 bbWeight=1 PerfScore 2.25
-; Total bytes of code 134, prolog size 43, PerfScore 54.62, instruction count 29, allocated bytes for code 134 (MethodHash=8b12d3a1) for method PerfLabTests.CastingPerf2.CastingPerf:ObjScalarValueType():this (Tier1-OSR)
+; Total bytes of code 106, prolog size 16, PerfScore 51.75, instruction count 22, allocated bytes for code 106 (MethodHash=8b12d3a1) for method PerfLabTests.CastingPerf2.CastingPerf:ObjScalarValueType():this (Tier1-OSR)
; ============================================================ Unwind Info: @@ -71,19 +58,13 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x24 - CountOfUnwindCodes: 11
+ SizeOfProlog : 0x0C + CountOfUnwindCodes: 5
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x24 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3) - Scaled Small Offset: 20 * 8 = 160 = 0x000A0 - CodeOffset: 0x1C UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rsi (6) - Scaled Small Offset: 21 * 8 = 168 = 0x000A8 - CodeOffset: 0x14 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rdi (7) - Scaled Small Offset: 22 * 8 = 176 = 0x000B0 - CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r14 (14) - Scaled Small Offset: 23 * 8 = 184 = 0x000B8 - CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48
+ CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3) + Scaled Small Offset: 19 * 8 = 152 = 0x00098 + CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
CodeOffset: 0x00 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 14 * 8 + 8 = 120 = 0x78 CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-10 (-19.61%) : 6669.dasm - (dynamicClass):Int1Getter(System.Object):int (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> rbx class-hnd single-def <System.Object> ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) long -> rcx "CSE - unknown"
; ; Lcl frame size = 32 @@ -21,18 +22,17 @@ G_M53339_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rbx] ;; size=8 bbWeight=1 PerfScore 1.50 G_M53339_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rdx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties - cmp qword ptr [rbx], rdx
+ mov rcx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties + cmp qword ptr [rbx], rcx
je SHORT G_M53339_IG04 ;; size=15 bbWeight=1 PerfScore 4.25 G_M53339_IG03: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdx, rbx ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; MicroBenchmarks.Serializers.LargeStructWithProperties
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rdx] ; gcr arg pop 0
- ;; size=19 bbWeight=0.25 PerfScore 0.88
+ ;; size=9 bbWeight=0.25 PerfScore 0.81
G_M53339_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbx+0x30] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -42,7 +42,7 @@ G_M53339_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 51, prolog size 5, PerfScore 10.38, instruction count 13, allocated bytes for code 51 (MethodHash=b44e2fa4) for method (dynamicClass):Int1Getter(System.Object):int (FullOpts)
+; Total bytes of code 41, prolog size 5, PerfScore 10.31, instruction count 12, allocated bytes for code 41 (MethodHash=b44e2fa4) for method (dynamicClass):Int1Getter(System.Object):int (FullOpts)
; ============================================================ Unwind Info:

+16 (+17.98%) : 13988.dasm - System.Collections.Generic.ValueListBuilder1[ushort]:AsSpan():System.ReadOnlySpan1[ushort]:this (Tier1)

@@ -30,21 +30,19 @@ ;* V19 tmp17 [V19 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP ;* V20 tmp18 [V20 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP ;* V21 tmp19 [V21 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-; V22 tmp20 [V22,T06] ( 2, 2 ) byref -> rdi single-def "field V11._reference (fldOffset=0x0)" P-INDEP -; V23 tmp21 [V23,T07] ( 2, 2 ) int -> rsi "field V11._length (fldOffset=0x8)" P-INDEP -; V24 cse0 [V24,T05] ( 5, 2.50) ref -> rbp "CSE - aggressive"
+; V22 tmp20 [V22,T05] ( 2, 2 ) byref -> rdi single-def "field V11._reference (fldOffset=0x0)" P-INDEP +; V23 tmp21 [V23,T06] ( 2, 2 ) int -> rsi "field V11._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M14383_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rdi push rsi
- push rbp
push rbx
- sub rsp, 40
+ sub rsp, 32
mov rbx, rdx ; byrRegs +[rbx]
- ;; size=11 bbWeight=1 PerfScore 4.50
+ ;; size=10 bbWeight=1 PerfScore 3.50
G_M14383_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz ; byrRegs +[rcx] lea rdx, bword ptr [rcx+0x10] @@ -59,23 +57,21 @@ G_M14383_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, ;; size=19 bbWeight=1 PerfScore 9.75 G_M14383_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref ; byrRegs -[rcx rdx]
- mov rbp, 0xD1FFAB1E - ; gcrRegs +[rbp] - mov rcx, rbp
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
- mov rdx, rbp
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx] call [<unknown method>] ; gcrRegs -[rcx rdx] ; gcr arg pop 0
- mov rcx, rbp
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
- mov rdx, rbp
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx] call [<unknown method>]
- ; gcrRegs -[rcx rdx rbp]
+ ; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=34 bbWeight=0.50 PerfScore 3.62
+ ;; size=52 bbWeight=0.50 PerfScore 3.50
G_M14383_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref mov bword ptr [rbx], rdi mov dword ptr [rbx+0x08], esi @@ -83,13 +79,12 @@ G_M14383_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, ; byrRegs +[rax] ;; size=9 bbWeight=1 PerfScore 2.25 G_M14383_IG05: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
- pop rbp
pop rsi pop rdi ret
- ;; size=9 bbWeight=1 PerfScore 3.25
+ ;; size=8 bbWeight=1 PerfScore 2.75
G_M14383_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; byrRegs -[rax rbx rdi] call [System.ThrowHelper:ThrowArgumentOutOfRangeException()] @@ -97,7 +92,7 @@ G_M14383_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { int3 ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 89, prolog size 8, PerfScore 23.38, instruction count 31, allocated bytes for code 89 (MethodHash=a029c7d0) for method System.Collections.Generic.ValueListBuilder`1[ushort]:AsSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
+; Total bytes of code 105, prolog size 7, PerfScore 21.75, instruction count 28, allocated bytes for code 105 (MethodHash=a029c7d0) for method System.Collections.Generic.ValueListBuilder`1[ushort]:AsSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
; ============================================================ Unwind Info: @@ -105,13 +100,12 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x08 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x07 + CountOfUnwindCodes: 4
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 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)

+28 (+18.18%) : 29894.dasm - NeuralJagged:checkouterror():int (Tier1)

@@ -7,33 +7,29 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 loc0 [V00,T02] ( 5, 6 ) int -> rsi
+; V00 loc0 [V00,T02] ( 5, 6 ) int -> rbx
; V01 loc1 [V01,T01] ( 6, 21 ) int -> rax
-; V02 loc2 [V02,T06] ( 3, 4 ) int -> rbp
+; V02 loc2 [V02,T05] ( 3, 4 ) int -> rsi
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> r8 "arr expr"
-; V05 cse0 [V05,T03] ( 3, 6 ) int -> rcx "CSE - aggressive" -; V06 cse1 [V06,T08] ( 2, 4.50) double -> mm0 hoist "CSE - aggressive" -; V07 cse2 [V07,T09] ( 2, 4.50) double -> mm1 hoist "CSE - aggressive" -; V08 cse3 [V08,T05] ( 2, 4.50) ref -> rdx hoist "CSE - aggressive" -; V09 cse4 [V09,T10] ( 2, 4.50) double -> mm2 hoist "CSE - aggressive" -; V10 cse5 [V10,T04] ( 4, 5 ) long -> rbx "CSE - aggressive" -; V11 cse6 [V11,T07] ( 3, 4 ) long -> rdi "CSE - aggressive"
+; V05 cse0 [V05,T06] ( 2, 4.50) double -> mm2 hoist "CSE - unknown" +; V06 cse1 [V06,T03] ( 3, 6 ) int -> rcx "CSE - unknown" +; V07 cse2 [V07,T07] ( 2, 4.50) double -> mm0 hoist "CSE - unknown" +; V08 cse3 [V08,T08] ( 2, 4.50) double -> mm1 hoist "CSE - unknown" +; V09 cse4 [V09,T04] ( 2, 4.50) ref -> rdx hoist "CSE - unknown"
; ; Lcl frame size = 40 G_M25747_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi
push rsi
- push rbp
push rbx sub rsp, 40
- ;; size=8 bbWeight=1 PerfScore 4.25
+ ;; size=6 bbWeight=1 PerfScore 2.25
G_M25747_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - mov esi, dword ptr [rbx] - mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - mov ebp, dword ptr [rdi]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov ebx, dword ptr [rax] + mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov esi, dword ptr [rax]
call [NeuralJagged:worst_pass_error()] ; gcr arg pop 0 xor eax, eax @@ -54,8 +50,9 @@ G_M25747_IG04: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr jb SHORT G_M25747_IG06 ;; size=6 bbWeight=4 PerfScore 12.00 G_M25747_IG05: ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
- mov esi, dword ptr [rdi] - ;; size=2 bbWeight=2 PerfScore 4.00
+ mov r8, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov ebx, dword ptr [r8] + ;; size=13 bbWeight=2 PerfScore 4.50
G_M25747_IG06: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz mov r8, rdx ; gcrRegs +[r8] @@ -68,8 +65,9 @@ G_M25747_IG06: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr ;; size=25 bbWeight=4 PerfScore 46.00 G_M25747_IG07: ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref ; gcrRegs -[r8]
- mov ebp, dword ptr [rbx] - ;; size=2 bbWeight=2 PerfScore 4.00
+ mov r8, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov esi, dword ptr [r8] + ;; size=13 bbWeight=2 PerfScore 4.50
G_M25747_IG08: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz inc eax cmp eax, ecx @@ -77,18 +75,17 @@ G_M25747_IG08: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr ;; size=6 bbWeight=4 PerfScore 6.00 G_M25747_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdx]
- cmp ebp, dword ptr [rbx] - cmove esi, dword ptr [(reloc)] ; static handle - mov eax, esi - ;; size=11 bbWeight=1 PerfScore 6.25
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp esi, dword ptr [rax] + cmove ebx, dword ptr [(reloc)] ; static handle + mov eax, ebx + ;; size=21 bbWeight=1 PerfScore 6.50
G_M25747_IG10: ; bbWeight=1, epilog, nogc, extend add rsp, 40 pop rbx
- pop rbp
pop rsi
- pop rdi
ret
- ;; size=9 bbWeight=1 PerfScore 3.25
+ ;; size=7 bbWeight=1 PerfScore 2.25
G_M25747_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 @@ -97,7 +94,7 @@ G_M25747_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { RWD00 dq 4030000000000000h ; 16
-; Total bytes of code 154, prolog size 8, PerfScore 103.38, instruction count 44, allocated bytes for code 154 (MethodHash=9d8c9b6c) for method NeuralJagged:check_out_error():int (Tier1)
+; Total bytes of code 182, prolog size 6, PerfScore 101.62, instruction count 43, allocated bytes for code 182 (MethodHash=9d8c9b6c) for method NeuralJagged:check_out_error():int (Tier1)
; ============================================================ Unwind Info: @@ -105,13 +102,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x08 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x06 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)

+28 (+18.18%) : 30567.dasm - Neural:checkouterror():int (Tier1)

@@ -7,33 +7,29 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 loc0 [V00,T02] ( 5, 6 ) int -> rsi
+; V00 loc0 [V00,T02] ( 5, 6 ) int -> rbx
; V01 loc1 [V01,T01] ( 6, 21 ) int -> rax
-; V02 loc2 [V02,T06] ( 3, 4 ) int -> rbp
+; V02 loc2 [V02,T05] ( 3, 4 ) int -> rsi
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> r8 "arr expr"
-; V05 cse0 [V05,T03] ( 3, 6 ) int -> rcx "CSE - aggressive" -; V06 cse1 [V06,T08] ( 2, 4.50) double -> mm0 hoist "CSE - aggressive" -; V07 cse2 [V07,T09] ( 2, 4.50) double -> mm1 hoist "CSE - aggressive" -; V08 cse3 [V08,T05] ( 2, 4.50) ref -> rdx hoist "CSE - aggressive" -; V09 cse4 [V09,T10] ( 2, 4.50) double -> mm2 hoist "CSE - aggressive" -; V10 cse5 [V10,T04] ( 4, 5 ) long -> rbx "CSE - aggressive" -; V11 cse6 [V11,T07] ( 3, 4 ) long -> rdi "CSE - aggressive"
+; V05 cse0 [V05,T06] ( 2, 4.50) double -> mm2 hoist "CSE - unknown" +; V06 cse1 [V06,T03] ( 3, 6 ) int -> rcx "CSE - unknown" +; V07 cse2 [V07,T07] ( 2, 4.50) double -> mm0 hoist "CSE - unknown" +; V08 cse3 [V08,T08] ( 2, 4.50) double -> mm1 hoist "CSE - unknown" +; V09 cse4 [V09,T04] ( 2, 4.50) ref -> rdx hoist "CSE - unknown"
; ; Lcl frame size = 40 G_M22969_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi
push rsi
- push rbp
push rbx sub rsp, 40
- ;; size=8 bbWeight=1 PerfScore 4.25
+ ;; size=6 bbWeight=1 PerfScore 2.25
G_M22969_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - mov esi, dword ptr [rbx] - mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - mov ebp, dword ptr [rdi]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov ebx, dword ptr [rax] + mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov esi, dword ptr [rax]
call [Neural:worst_pass_error()] ; gcr arg pop 0 xor eax, eax @@ -54,8 +50,9 @@ G_M22969_IG04: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr jb SHORT G_M22969_IG06 ;; size=6 bbWeight=4 PerfScore 12.00 G_M22969_IG05: ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
- mov esi, dword ptr [rdi] - ;; size=2 bbWeight=2 PerfScore 4.00
+ mov r8, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov ebx, dword ptr [r8] + ;; size=13 bbWeight=2 PerfScore 4.50
G_M22969_IG06: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz mov r8, rdx ; gcrRegs +[r8] @@ -68,8 +65,9 @@ G_M22969_IG06: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr ;; size=25 bbWeight=4 PerfScore 46.00 G_M22969_IG07: ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref ; gcrRegs -[r8]
- mov ebp, dword ptr [rbx] - ;; size=2 bbWeight=2 PerfScore 4.00
+ mov r8, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov esi, dword ptr [r8] + ;; size=13 bbWeight=2 PerfScore 4.50
G_M22969_IG08: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz inc eax cmp eax, ecx @@ -77,18 +75,17 @@ G_M22969_IG08: ; bbWeight=4, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr ;; size=6 bbWeight=4 PerfScore 6.00 G_M22969_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdx]
- cmp ebp, dword ptr [rbx] - cmove esi, dword ptr [(reloc)] ; static handle - mov eax, esi - ;; size=11 bbWeight=1 PerfScore 6.25
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp esi, dword ptr [rax] + cmove ebx, dword ptr [(reloc)] ; static handle + mov eax, ebx + ;; size=21 bbWeight=1 PerfScore 6.50
G_M22969_IG10: ; bbWeight=1, epilog, nogc, extend add rsp, 40 pop rbx
- pop rbp
pop rsi
- pop rdi
ret
- ;; size=9 bbWeight=1 PerfScore 3.25
+ ;; size=7 bbWeight=1 PerfScore 2.25
G_M22969_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 @@ -97,7 +94,7 @@ G_M22969_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { RWD00 dq 4030000000000000h ; 16
-; Total bytes of code 154, prolog size 8, PerfScore 103.38, instruction count 44, allocated bytes for code 154 (MethodHash=6198a646) for method Neural:check_out_error():int (Tier1)
+; Total bytes of code 182, prolog size 6, PerfScore 101.62, instruction count 43, allocated bytes for code 182 (MethodHash=6198a646) for method Neural:check_out_error():int (Tier1)
; ============================================================ Unwind Info: @@ -105,13 +102,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x08 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x06 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)

coreclr_tests.run.windows.x64.checked.mch

-6 (-30.00%) : 62913.dasm - System.Math:Max(byte,byte):byte (Tier1)

@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 504 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) byte -> rcx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) byte -> rcx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) byte -> rdx single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rdx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rax "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,17 +20,15 @@ G_M42290_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M42290_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movsx rax, cl
- movsx rdx, dl - movsx rcx, cl - cmp eax, edx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.50
+ movsx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=13 bbWeight=1 PerfScore 1.00
G_M42290_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 20 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
+; Total bytes of code 14, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 14 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
; ============================================================ Unwind Info:

-11 (-29.73%) : 280883.dasm - FinalizeTimeout:ThreadMain() (Tier1-OSR)

@@ -10,27 +10,22 @@ ; ;* V00 loc0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T00] ( 2, 9 ) long -> rbx hoist "CSE - aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
-G_M23685_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M23685_IG01: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
- mov qword ptr [rsp+0x98], rbx - ;; size=12 bbWeight=1 PerfScore 1.25 -G_M23685_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov rbx, 0xD1FFAB1E ; <unknown class> - ;; size=10 bbWeight=1 PerfScore 0.25 -G_M23685_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - mov rcx, rbx
+ ;; size=4 bbWeight=8 PerfScore 2.00 +G_M23685_IG02: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + mov rcx, 0xD1FFAB1E ; <unknown class>
mov edx, 0x400 call CORINFO_HELP_NEWARR_1_VC ; gcrRegs +[rax] ; gcr arg pop 0
- jmp SHORT G_M23685_IG03 - ;; size=15 bbWeight=8 PerfScore 28.00
+ jmp SHORT G_M23685_IG02 + ;; size=22 bbWeight=8 PerfScore 28.00
-; Total bytes of code 37, prolog size 12, PerfScore 29.50, instruction count 7, allocated bytes for code 37 (MethodHash=5335a37a) for method FinalizeTimeout:ThreadMain() (Tier1-OSR)
+; Total bytes of code 26, prolog size 4, PerfScore 30.00, instruction count 5, allocated bytes for code 26 (MethodHash=5335a37a) for method FinalizeTimeout:ThreadMain() (Tier1-OSR)
; ============================================================ Unwind Info: @@ -38,13 +33,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x0C - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3) - Scaled Small Offset: 19 * 8 = 152 = 0x00098
CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 CodeOffset: 0x00 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 14 * 8 + 8 = 120 = 0x78 CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-5 (-29.41%) : 62413.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)

@@ -8,10 +8,11 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 504 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rcx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rcx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rdx single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 3 ) int -> rdx "CSE - aggressive"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> rcx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> rax "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,17 +20,15 @@ G_M34407_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M34407_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, cl
- movzx rdx, dl - movzx rcx, cl - cmp eax, edx - mov eax, edx - cmovge eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ movzx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M34407_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
; ============================================================ Unwind Info:

+42 (+33.07%) : 466964.dasm - JIT.HardwareIntrinsics.X86.Sse2.StoreUnaryOpTestStoreScalarInt32+TestStruct:Create():JIT.HardwareIntrinsics.X86.Sse2.StoreUnaryOpTest__StoreScalarInt32+TestStruct (FullOpts)

@@ -8,55 +8,57 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 RetBuf [V00,T03] ( 4, 4 ) byref -> rbx single-def
+; V00 RetBuf [V00,T02] ( 4, 4 ) byref -> rbx single-def
;* V01 loc0 [V01 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <JIT.HardwareIntrinsics.X86._Sse2.StoreUnaryOpTest__StoreScalarInt32+TestStruct>
-;* V02 loc1 [V02,T05] ( 0, 0 ) int -> zero-ref
+;* V02 loc1 [V02,T04] ( 0, 0 ) int -> zero-ref
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T00] ( 12, 24 ) ref -> rdi class-hnd "impAppendStmt" <<unknown class>>
+; V04 tmp1 [V04,T00] ( 12, 24 ) ref -> rsi class-hnd "impAppendStmt" <<unknown class>>
; V05 tmp2 [V05,T01] ( 8, 16 ) int -> rax "Strict ordering of exceptions for Array store" ;* V06 tmp3 [V06 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V07 tmp4 [V07,T06] ( 2, 2 ) simd16 -> mm0 single-def "field V01._fld1 (fldOffset=0x0)" P-INDEP -; V08 tmp5 [V08,T04] ( 3, 6 ) ref -> rax single-def "arr expr" -; V09 cse0 [V09,T02] ( 6, 6 ) long -> rsi "CSE - aggressive"
+; V07 tmp4 [V07,T05] ( 2, 2 ) simd16 -> mm0 single-def "field V01._fld1 (fldOffset=0x0)" P-INDEP +; V08 tmp5 [V08,T03] ( 3, 6 ) ref -> rax single-def "arr expr"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M34559_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi
push rsi push rbx
- sub rsp, 32
+ sub rsp, 40
mov rbx, rcx ; byrRegs +[rbx]
- ;; size=10 bbWeight=1 PerfScore 3.50
+ ;; size=9 bbWeight=1 PerfScore 2.50
G_M34559_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
- mov rsi, 0xD1FFAB1E ; static handle - mov rdi, gword ptr [rsi] - ; gcrRegs +[rdi]
+ mov rax, 0xD1FFAB1E ; static handle + mov rsi, gword ptr [rax] + ; gcrRegs +[rsi]
call [TestLibrary.Generator:GetInt32():int] ; gcr arg pop 0
- cmp dword ptr [rdi+0x08], 0 - jbe SHORT G_M34559_IG04 - mov dword ptr [rdi+0x10], eax - mov rdi, gword ptr [rsi]
+ cmp dword ptr [rsi+0x08], 0 + jbe G_M34559_IG04 + mov dword ptr [rsi+0x10], eax + mov rax, 0xD1FFAB1E ; static handle + mov rsi, gword ptr [rax]
call [TestLibrary.Generator:GetInt32():int] ; gcr arg pop 0
- cmp dword ptr [rdi+0x08], 1
+ cmp dword ptr [rsi+0x08], 1
jbe SHORT G_M34559_IG04
- mov dword ptr [rdi+0x14], eax - mov rdi, gword ptr [rsi]
+ mov dword ptr [rsi+0x14], eax + mov rax, 0xD1FFAB1E ; static handle + mov rsi, gword ptr [rax]
call [TestLibrary.Generator:GetInt32():int] ; gcr arg pop 0
- cmp dword ptr [rdi+0x08], 2
+ cmp dword ptr [rsi+0x08], 2
jbe SHORT G_M34559_IG04
- mov dword ptr [rdi+0x18], eax - mov rdi, gword ptr [rsi]
+ mov dword ptr [rsi+0x18], eax + mov rax, 0xD1FFAB1E ; static handle + mov rsi, gword ptr [rax]
call [TestLibrary.Generator:GetInt32():int] ; gcr arg pop 0
- cmp dword ptr [rdi+0x08], 3
+ cmp dword ptr [rsi+0x08], 3
jbe SHORT G_M34559_IG04
- mov dword ptr [rdi+0x1C], eax - mov rax, gword ptr [rsi]
+ mov dword ptr [rsi+0x1C], eax + mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax] cmp dword ptr [rax+0x08], 0 jbe SHORT G_M34559_IG04 @@ -65,23 +67,22 @@ G_M34559_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr mov rax, rbx ; gcrRegs -[rax] ; byrRegs +[rax]
- ;; size=103 bbWeight=1 PerfScore 52.50
+ ;; size=147 bbWeight=1 PerfScore 53.50
G_M34559_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 40
pop rbx pop rsi
- pop rdi
ret
- ;; size=8 bbWeight=1 PerfScore 2.75
+ ;; size=7 bbWeight=1 PerfScore 2.25
G_M34559_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rsi]
; byrRegs -[rax rbx] call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 127, prolog size 7, PerfScore 58.75, instruction count 39, allocated bytes for code 127 (MethodHash=987d7900) for method JIT.HardwareIntrinsics.X86._Sse2.StoreUnaryOpTest__StoreScalarInt32+TestStruct:Create():JIT.HardwareIntrinsics.X86._Sse2.StoreUnaryOpTest__StoreScalarInt32+TestStruct (FullOpts)
+; Total bytes of code 169, prolog size 6, PerfScore 58.25, instruction count 41, allocated bytes for code 169 (MethodHash=987d7900) for method JIT.HardwareIntrinsics.X86._Sse2.StoreUnaryOpTest__StoreScalarInt32+TestStruct:Create():JIT.HardwareIntrinsics.X86._Sse2.StoreUnaryOpTest__StoreScalarInt32+TestStruct (FullOpts)
; ============================================================ Unwind Info: @@ -89,12 +90,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07 - CountOfUnwindCodes: 4
+ SizeOfProlog : 0x06 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)

+31 (+36.47%) : 581115.dasm - Microsoft.Build.Framework.NativeMethods:get_IsOSX():ubyte (FullOpts)

@@ -17,14 +17,13 @@ ;* V06 tmp5 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Runtime.InteropServices.OSPlatform> ;* V07 tmp6 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String> ;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V09 tmp8 [V09,T01] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V09 tmp8 [V09,T00] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V10 tmp9 [V10 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref "field V02.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V12 tmp11 [V12,T04] ( 0, 0 ) ubyte -> zero-ref single-def "field V03.hasValue (fldOffset=0x0)" P-INDEP -;* V13 tmp12 [V13,T05] ( 0, 0 ) ubyte -> zero-ref single-def "field V03.value (fldOffset=0x1)" P-INDEP -;* V14 tmp13 [V14,T03] ( 0, 0 ) ref -> zero-ref single-def "field V06.<Name>k__BackingField (fldOffset=0x0)" P-INDEP -;* V15 cse0 [V15,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V16 cse1 [V16,T00] ( 4, 3.50) long -> rax "CSE - aggressive"
+;* V12 tmp11 [V12,T03] ( 0, 0 ) ubyte -> zero-ref single-def "field V03.hasValue (fldOffset=0x0)" P-INDEP +;* V13 tmp12 [V13,T04] ( 0, 0 ) ubyte -> zero-ref single-def "field V03.value (fldOffset=0x1)" P-INDEP +;* V14 tmp13 [V14,T02] ( 0, 0 ) ref -> zero-ref single-def "field V06.<Name>k__BackingField (fldOffset=0x0)" P-INDEP +;* V15 cse0 [V15,T01] ( 0, 0 ) long -> zero-ref "CSE - unknown"
; ; Lcl frame size = 40 @@ -41,14 +40,18 @@ G_M62926_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, jne SHORT G_M62926_IG05 ;; size=15 bbWeight=1 PerfScore 4.25 G_M62926_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov word ptr [rax], 1 - ;; size=5 bbWeight=0.50 PerfScore 0.50
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov byte ptr [rax], 1 + mov rax, 0xD1FFAB1E + mov byte ptr [rax], 0 + ;; size=26 bbWeight=0.50 PerfScore 1.25
G_M62926_IG05: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ mov rax, 0xD1FFAB1E ; static handle
cmp byte ptr [rax], 0 je SHORT G_M62926_IG08 mov rax, 0xD1FFAB1E movzx rax, byte ptr [rax]
- ;; size=18 bbWeight=1.00 PerfScore 6.25
+ ;; size=28 bbWeight=1.00 PerfScore 6.50
G_M62926_IG06: ; bbWeight=1.00, epilog, nogc, extend add rsp, 40 ret @@ -66,7 +69,7 @@ G_M62926_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref int3 ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 85, prolog size 4, PerfScore 16.50, instruction count 19, allocated bytes for code 85 (MethodHash=bc050a31) for method Microsoft.Build.Framework.NativeMethods:get_IsOSX():ubyte (FullOpts)
+; Total bytes of code 116, prolog size 4, PerfScore 17.50, instruction count 23, allocated bytes for code 116 (MethodHash=bc050a31) for method Microsoft.Build.Framework.NativeMethods:get_IsOSX():ubyte (FullOpts)
; ============================================================ Unwind Info:

+43 (+39.45%) : 515321.dasm - structinreg.Program2:test24(int,int,int,int,int,int,int,structinreg.Foo1):int (FullOpts)

@@ -7,46 +7,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T01] ( 3, 3 ) int -> rbx single-def -; V01 arg1 [V01,T02] ( 3, 3 ) int -> rsi single-def -; V02 arg2 [V02,T03] ( 3, 3 ) int -> rdi single-def -; V03 arg3 [V03,T04] ( 3, 3 ) int -> rbp single-def -; V04 arg4 [V04,T07] ( 1, 1 ) int -> [rsp+0x70] single-def -; V05 arg5 [V05,T08] ( 1, 1 ) int -> [rsp+0x78] single-def -; V06 arg6 [V06,T09] ( 1, 1 ) int -> [rsp+0x80] single-def -; V07 arg7 [V07,T06] ( 2, 2 ) ref -> r14 class-hnd single-def <structinreg.Foo1>
+; V00 arg0 [V00,T00] ( 4, 4 ) int -> rbx single-def +; V01 arg1 [V01,T01] ( 4, 4 ) int -> rsi single-def +; V02 arg2 [V02,T02] ( 4, 4 ) int -> rdi single-def +; V03 arg3 [V03,T03] ( 4, 4 ) int -> rbp single-def +; V04 arg4 [V04,T06] ( 2, 2 ) int -> r15 single-def +; V05 arg5 [V05,T07] ( 2, 2 ) int -> r13 single-def +; V06 arg6 [V06,T08] ( 2, 2 ) int -> r12 single-def +; V07 arg7 [V07,T05] ( 2, 2 ) ref -> r14 class-hnd single-def <structinreg.Foo1>
; V08 OutArgs [V08 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T00] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <<unknown class>> -; V10 cse0 [V10,T05] ( 3, 3 ) int -> rbx "CSE - aggressive"
+; V09 tmp1 [V09,T04] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M23894_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push r15
push r14
+ push r13 + push r12
push rdi push rsi push rbp push rbx
- sub rsp, 32
+ sub rsp, 40
mov ebx, ecx mov esi, edx mov edi, r8d mov ebp, r9d
- mov r14, gword ptr [rsp+0x88]
+ mov r15d, dword ptr [rsp+0x90] + mov r13d, dword ptr [rsp+0x98] + mov r12d, dword ptr [rsp+0xA0] + mov r14, gword ptr [rsp+0xA8]
; gcrRegs +[r14]
- ;; size=28 bbWeight=1 PerfScore 7.25
+ ;; size=58 bbWeight=1 PerfScore 13.25
G_M23894_IG02: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E ; <unknown class> call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0
- add ebx, esi - add ebx, edi - add ebx, ebp - add ebx, dword ptr [rsp+0x70] - add ebx, dword ptr [rsp+0x78] - add ebx, dword ptr [rsp+0x80] - mov edx, ebx
+ lea edx, [rbx+rsi] + add edx, edi + add edx, ebp + add edx, r15d + add edx, r13d + add edx, r12d
add edx, dword ptr [r14+0x08] mov dword ptr [rax+0x08], edx mov rdx, rax @@ -56,20 +60,28 @@ G_M23894_IG02: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byr call [<unknown method>] ; gcrRegs -[rax rcx rdx] ; gcr arg pop 0
- mov eax, ebx
+ add ebx, esi + add ebx, edi + add ebx, ebp + add ebx, r15d + add ebx, r13d + lea eax, [rbx+r12]
add eax, dword ptr [r14+0x08]
- ;; size=70 bbWeight=1 PerfScore 19.00
+ ;; size=77 bbWeight=1 PerfScore 15.25
G_M23894_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 40
pop rbx pop rbp pop rsi pop rdi
+ pop r12 + pop r13
pop r14
+ pop r15
ret
- ;; size=11 bbWeight=1 PerfScore 3.75
+ ;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 109, prolog size 10, PerfScore 30.00, instruction count 34, allocated bytes for code 109 (MethodHash=4d01a2a9) for method structinreg.Program2:test24(int,int,int,int,int,int,int,structinreg.Foo1):int (FullOpts)
+; Total bytes of code 152, prolog size 16, PerfScore 33.75, instruction count 47, allocated bytes for code 152 (MethodHash=4d01a2a9) for method structinreg.Program2:test24(int,int,int,int,int,int,int,structinreg.Foo1):int (FullOpts)
; ============================================================ Unwind Info: @@ -77,14 +89,17 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x0A - CountOfUnwindCodes: 6
+ SizeOfProlog : 0x10 + CountOfUnwindCodes: 9
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) - CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 + CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) + CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) + CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) + CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) + CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) + CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

libraries.crossgen2.windows.x64.checked.mch

-10 (-24.39%) : 31052.dasm - System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)

@@ -10,30 +10,26 @@ ; ; V00 arg0 [V00,T00] ( 3, 3 ) double -> mm0 single-def ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) double -> mm6 "CSE - aggressive"
;
-; Lcl frame size = 56
+; Lcl frame size = 40
G_M9194_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 56 - movaps xmmword ptr [rsp+0x20], xmm6 - ;; size=9 bbWeight=1 PerfScore 2.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M9194_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movsd xmm6, qword ptr [reloc @RWD00] - addsd xmm0, xmm6
+ addsd xmm0, qword ptr [reloc @RWD00]
call [System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double] ; gcr arg pop 0
- subsd xmm0, xmm6 - ;; size=22 bbWeight=1 PerfScore 12.00
+ subsd xmm0, qword ptr [reloc @RWD00] + ;; size=22 bbWeight=1 PerfScore 13.00
G_M9194_IG03: ; bbWeight=1, epilog, nogc, extend
- movaps xmm6, xmmword ptr [rsp+0x20] - add rsp, 56
+ add rsp, 40
ret
- ;; size=10 bbWeight=1 PerfScore 5.25
+ ;; size=5 bbWeight=1 PerfScore 1.25
RWD00 dq 4066800000000000h ; 180
-; Total bytes of code 41, prolog size 9, PerfScore 19.50, instruction count 9, allocated bytes for code 41 (MethodHash=41d9dc15) for method System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)
+; Total bytes of code 31, prolog size 4, PerfScore 14.50, instruction count 6, allocated bytes for code 31 (MethodHash=41d9dc15) for method System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)
; ============================================================ Unwind Info: @@ -41,11 +37,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x09 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x09 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 2 * 16 = 32 = 0x00020 - CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

-11 (-22.92%) : 177103.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)

@@ -9,52 +9,39 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def <System.Dynamic.DynamicMetaObject>
+; V00 this [V00,T00] ( 3, 3 ) ref -> rcx this class-hnd single-def <System.Dynamic.DynamicMetaObject>
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 3 ) ref -> rbx "CSE - unknown"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
-G_M17334_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG - push rsi
+G_M17334_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbx
- sub rsp, 40 - mov rbx, rcx
+ sub rsp, 32 + ;; size=5 bbWeight=1 PerfScore 1.25 +G_M17334_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref + ; gcrRegs +[rcx] + mov rbx, gword ptr [rcx+0x08]
; gcrRegs +[rbx]
- ;; size=9 bbWeight=1 PerfScore 2.50 -G_M17334_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - mov rsi, gword ptr [rbx+0x08] - ; gcrRegs +[rsi]
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
+ ; gcrRegs -[rcx]
; byrRegs +[rax] ; gcr arg pop 0
- cmp rsi, gword ptr [rax+0x0E48] - jne SHORT G_M17334_IG05 - ;; size=19 bbWeight=1 PerfScore 9.00 -G_M17334_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[rbx rsi]
+ xor rcx, rcx + ; gcrRegs +[rcx] + cmp rbx, gword ptr [rax+0x0E48] + mov rax, rcx + ; gcrRegs +[rax]
; byrRegs -[rax]
- xor rax, rax - ; gcrRegs +[rax] - ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M17334_IG04: ; bbWeight=0.50, epilog, nogc, extend - add rsp, 40
+ cmovne rax, rbx + ;; size=26 bbWeight=1 PerfScore 8.75 +G_M17334_IG03: ; bbWeight=1, epilog, nogc, extend + add rsp, 32
pop rbx
- pop rsi
ret
- ;; size=7 bbWeight=0.50 PerfScore 1.12 -G_M17334_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[rax] +[rbx] - mov rax, gword ptr [rbx+0x08] - ; gcrRegs +[rax] - ;; size=4 bbWeight=0.50 PerfScore 1.00 -G_M17334_IG06: ; bbWeight=0.50, epilog, nogc, extend - add rsp, 40 - pop rbx - pop rsi - ret - ;; size=7 bbWeight=0.50 PerfScore 1.12
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 48, prolog size 6, PerfScore 14.88, instruction count 18, allocated bytes for code 48 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
+; Total bytes of code 37, prolog size 5, PerfScore 11.75, instruction count 11, allocated bytes for code 37 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
; ============================================================ Unwind Info: @@ -62,11 +49,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

-34 (-17.89%) : 9369.dasm - System.MathF:ILogB(float):int (FullOpts)

@@ -9,10 +9,10 @@ ; 0 inlinees with PGO data; 10 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T04] ( 7, 5 ) float -> mm6 ld-addr-op single-def
+; V00 arg0 [V00,T05] ( 4, 3.50) float -> mm0 ld-addr-op single-def
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T00] ( 3, 3 ) int -> rax "Cloning op1 for TrailingZeroCount" -; V03 tmp2 [V03,T02] ( 2, 2 ) int -> rcx "Grabbing temp for TrailingZeroCount Qmark"
+; V02 tmp1 [V02,T01] ( 3, 3 ) int -> rbx "Cloning op1 for TrailingZeroCount" +; V03 tmp2 [V03,T03] ( 2, 2 ) int -> rax "Grabbing temp for TrailingZeroCount Qmark"
;* V04 tmp3 [V04 ] ( 0, 0 ) float -> zero-ref "Inlining Arg" ;* V05 tmp4 [V05 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V06 tmp5 [V06 ] ( 0, 0 ) float -> zero-ref "Inlining Arg" @@ -24,47 +24,48 @@ ;* V12 tmp11 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V13 tmp12 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V15 cse0 [V15,T03] ( 3, 1.50) ref -> rdx "CSE - moderate" -; V16 cse1 [V16,T01] ( 3, 2.50) int -> rcx "CSE - aggressive"
+; V15 cse0 [V15,T04] ( 3, 1.50) ref -> rdx "CSE - unknown" +; V16 cse1 [V16,T02] ( 3, 2.50) int -> rcx "CSE - unknown" +; V17 cse2 [V17,T00] ( 5, 3.50) int -> rbx "CSE - unknown"
;
-; Lcl frame size = 56
+; Lcl frame size = 32
G_M35754_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- sub rsp, 56 - movaps xmmword ptr [rsp+0x20], xmm6 - movaps xmm6, xmm0 - ;; size=12 bbWeight=1 PerfScore 2.50 -G_M35754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - movd ecx, xmm6
+ push rbx + sub rsp, 32 + ;; size=5 bbWeight=1 PerfScore 1.25 +G_M35754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + movd ebx, xmm0 + mov ecx, ebx
and ecx, 0xD1FFAB1E lea eax, [rcx+D1FFAB1EH] cmp eax, 0xD1FFAB1E
- jb G_M35754_IG10 - ;; size=27 bbWeight=1 PerfScore 4.00
+ jb SHORT G_M35754_IG10 + ;; size=25 bbWeight=1 PerfScore 4.25
G_M35754_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- xorps xmm0, xmm0 - ucomiss xmm6, xmm0
+ xorps xmm1, xmm1 + ucomiss xmm0, xmm1
jp SHORT G_M35754_IG05 jne SHORT G_M35754_IG05 mov eax, 0xD1FFAB1E ;; size=15 bbWeight=0.50 PerfScore 2.29 G_M35754_IG04: ; bbWeight=0.50, epilog, nogc, extend
- movaps xmm6, xmmword ptr [rsp+0x20] - add rsp, 56
+ add rsp, 32 + pop rbx
ret
- ;; size=10 bbWeight=0.50 PerfScore 2.62
+ ;; size=6 bbWeight=0.50 PerfScore 0.88
G_M35754_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- movd eax, xmm6
+ mov eax, ebx
not eax test eax, 0xD1FFAB1E jne SHORT G_M35754_IG07 mov eax, 0xD1FFAB1E
- ;; size=18 bbWeight=0.50 PerfScore 1.88
+ ;; size=16 bbWeight=0.50 PerfScore 1.00
G_M35754_IG06: ; bbWeight=0.50, epilog, nogc, extend
- movaps xmm6, xmmword ptr [rsp+0x20] - add rsp, 56
+ add rsp, 32 + pop rbx
ret
- ;; size=10 bbWeight=0.50 PerfScore 2.62
+ ;; size=6 bbWeight=0.50 PerfScore 0.88
G_M35754_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz dec ecx cmp ecx, 0xD1FFAB1E @@ -79,36 +80,34 @@ G_M35754_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000 ; gcr arg pop 0 ;; size=29 bbWeight=0.50 PerfScore 4.38 G_M35754_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movd eax, xmm6 - and eax, 0xD1FFAB1E - bsf ecx, eax - mov edx, 32 - test eax, eax - cmove ecx, edx - add ecx, -8 - mov eax, ecx
+ and ebx, 0xD1FFAB1E + bsf eax, ebx + mov ecx, 32 + test ebx, ebx + cmove eax, ecx + add eax, -8
neg eax add eax, -126
- ;; size=32 bbWeight=0.50 PerfScore 3.00
+ ;; size=27 bbWeight=0.50 PerfScore 1.88
G_M35754_IG09: ; bbWeight=0.50, epilog, nogc, extend
- movaps xmm6, xmmword ptr [rsp+0x20] - add rsp, 56
+ add rsp, 32 + pop rbx
ret
- ;; size=10 bbWeight=0.50 PerfScore 2.62
+ ;; size=6 bbWeight=0.50 PerfScore 0.88
G_M35754_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movd eax, xmm6
+ mov eax, ebx
shr eax, 23 movzx rax, al add eax, -127 movsx rax, al
- ;; size=17 bbWeight=0.50 PerfScore 1.62
+ ;; size=15 bbWeight=0.50 PerfScore 0.75
G_M35754_IG11: ; bbWeight=0.50, epilog, nogc, extend
- movaps xmm6, xmmword ptr [rsp+0x20] - add rsp, 56
+ add rsp, 32 + pop rbx
ret
- ;; size=10 bbWeight=0.50 PerfScore 2.62
+ ;; size=6 bbWeight=0.50 PerfScore 0.88
-; Total bytes of code 190, prolog size 9, PerfScore 30.17, instruction count 52, allocated bytes for code 190 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (FullOpts)
+; Total bytes of code 156, prolog size 5, PerfScore 19.29, instruction count 50, allocated bytes for code 156 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (FullOpts)
; ============================================================ Unwind Info: @@ -116,11 +115,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x09 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x09 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 2 * 16 = 32 = 0x00020 - CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

+9 (+25.00%) : 107634.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,45 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rcx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref ; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rax single-def "dup spill"
+; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rcx single-def "dup spill"
; V05 tmp2 [V05,T02] ( 3, 6 ) byref -> rbx single-def "dup spill" ; V06 tmp3 [V06,T04] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V07 cse0 [V07,T05] ( 3, 3 ) byref -> rbx "CSE - aggressive"
+; V07 cse0 [V07,T05] ( 3, 3 ) long -> rsi "CSE - unknown"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M26883_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push rsi
push rbx
- sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25 -G_M26883_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref - ; gcrRegs +[rcx rdx] - cmp byte ptr [rcx], cl
+ sub rsp, 40
mov rbx, rcx ; gcrRegs +[rbx]
- add rbx, bword ptr [(reloc)] ; const ptr - ; gcrRegs -[rbx] - ; byrRegs +[rbx] - mov rax, rbx - ; byrRegs +[rax] - dec dword ptr [rax]
+ ;; size=9 bbWeight=1 PerfScore 2.50 +G_M26883_IG02: ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdx] + cmp byte ptr [rbx], bl + mov rsi, qword ptr [(reloc)] ; const ptr + lea rcx, bword ptr [rbx+rsi] + ; byrRegs +[rcx] + dec dword ptr [rcx] + mov rcx, rbx + ; gcrRegs +[rcx] + ; byrRegs -[rcx]
call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] ; gcrRegs -[rcx rdx] +[rax]
- ; byrRegs -[rax]
; gcr arg pop 0
+ add rbx, rsi + ; gcrRegs -[rbx] + ; byrRegs +[rbx]
inc dword ptr [rbx]
- ;; size=25 bbWeight=1 PerfScore 15.50
+ ;; size=29 bbWeight=1 PerfScore 15.00
G_M26883_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 40
pop rbx
+ pop rsi
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=7 bbWeight=1 PerfScore 2.25
-; Total bytes of code 36, prolog size 5, PerfScore 18.50, instruction count 12, allocated bytes for code 36 (MethodHash=71d896fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 45, prolog size 6, PerfScore 19.75, instruction count 16, allocated bytes for code 45 (MethodHash=71d896fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================ Unwind Info: @@ -54,10 +59,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x06 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)

+9 (+25.00%) : 107615.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,45 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rcx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref ; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rax single-def "dup spill"
+; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rcx single-def "dup spill"
; V05 tmp2 [V05,T02] ( 3, 6 ) byref -> rbx single-def "dup spill" ; V06 tmp3 [V06,T04] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V07 cse0 [V07,T05] ( 3, 3 ) byref -> rbx "CSE - aggressive"
+; V07 cse0 [V07,T05] ( 3, 3 ) long -> rsi "CSE - unknown"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M20291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push rsi
push rbx
- sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25 -G_M20291_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref - ; gcrRegs +[rcx rdx] - cmp byte ptr [rcx], cl
+ sub rsp, 40
mov rbx, rcx ; gcrRegs +[rbx]
- add rbx, bword ptr [(reloc)] ; const ptr - ; gcrRegs -[rbx] - ; byrRegs +[rbx] - mov rax, rbx - ; byrRegs +[rax] - dec dword ptr [rax]
+ ;; size=9 bbWeight=1 PerfScore 2.50 +G_M20291_IG02: ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdx] + cmp byte ptr [rbx], bl + mov rsi, qword ptr [(reloc)] ; const ptr + lea rcx, bword ptr [rbx+rsi] + ; byrRegs +[rcx] + dec dword ptr [rcx] + mov rcx, rbx + ; gcrRegs +[rcx] + ; byrRegs -[rcx]
call [<unknown method>] ; gcrRegs -[rcx rdx] +[rax]
- ; byrRegs -[rax]
; gcr arg pop 0
+ add rbx, rsi + ; gcrRegs -[rbx] + ; byrRegs +[rbx]
inc dword ptr [rbx]
- ;; size=25 bbWeight=1 PerfScore 15.50
+ ;; size=29 bbWeight=1 PerfScore 15.00
G_M20291_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 40
pop rbx
+ pop rsi
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=7 bbWeight=1 PerfScore 2.25
-; Total bytes of code 36, prolog size 5, PerfScore 18.50, instruction count 12, allocated bytes for code 36 (MethodHash=a899b0bc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 45, prolog size 6, PerfScore 19.75, instruction count 16, allocated bytes for code 45 (MethodHash=a899b0bc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================ Unwind Info: @@ -54,10 +59,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x06 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)

+10 (+32.26%) : 115615.dasm - Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)

@@ -8,41 +8,45 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 4 ) ref -> rcx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter>
+; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref ; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rax single-def "dup spill"
+; V04 tmp1 [V04,T01] ( 3, 6 ) byref -> rcx single-def "dup spill"
; V05 tmp2 [V05,T02] ( 3, 6 ) byref -> rbx single-def "dup spill" ; V06 tmp3 [V06,T04] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.VisualBasic.BoundNode>
-; V07 cse0 [V07,T05] ( 3, 3 ) byref -> rbx "CSE - aggressive"
; ; Lcl frame size = 32 G_M21660_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbx sub rsp, 32
- ;; size=5 bbWeight=1 PerfScore 1.25 -G_M21660_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref - ; gcrRegs +[rcx rdx] - lea rbx, bword ptr [rcx+0xB0] - ; byrRegs +[rbx] - mov rax, rbx - ; byrRegs +[rax] - inc dword ptr [rax]
+ mov rbx, rcx + ; gcrRegs +[rbx] + ;; size=8 bbWeight=1 PerfScore 1.50 +G_M21660_IG02: ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdx] + lea rcx, bword ptr [rbx+0xB0] + ; byrRegs +[rcx] + inc dword ptr [rcx] + mov rcx, rbx + ; gcrRegs +[rcx] + ; byrRegs -[rcx]
call [<unknown method>] ; gcrRegs -[rcx rdx] +[rax]
- ; byrRegs -[rax]
; gcr arg pop 0
+ add rbx, 176 + ; gcrRegs -[rbx] + ; byrRegs +[rbx]
dec dword ptr [rbx]
- ;; size=20 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 10.00
G_M21660_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 32 pop rbx ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 31, prolog size 5, PerfScore 12.75, instruction count 10, allocated bytes for code 31 (MethodHash=db99ab63) for method Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
+; Total bytes of code 41, prolog size 5, PerfScore 13.25, instruction count 12, allocated bytes for code 41 (MethodHash=db99ab63) for method Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
; ============================================================ Unwind Info:

libraries.pmi.windows.x64.checked.mch

-10 (-45.45%) : 294925.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rcx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rdx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rcx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rdx single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +21,15 @@ G_M9245_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M9245_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, cl
- movzx r8, dl - movzx rcx, cl - movzx rdx, dl - cmp eax, r8d - mov eax, edx - cmovge eax, ecx - ;; size=21 bbWeight=1 PerfScore 1.75
+ movzx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M9245_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 22 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================ Unwind Info:

-10 (-45.45%) : 294980.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rcx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rdx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rcx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rdx single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +21,15 @@ G_M13207_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M13207_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, cl
- movzx r8, dl - movzx rcx, cl - movzx rdx, dl - cmp eax, r8d - mov eax, edx - cmovge eax, ecx - ;; size=21 bbWeight=1 PerfScore 1.75
+ movzx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M13207_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 22 (MethodHash=6935cc68) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=6935cc68) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================ Unwind Info:

-10 (-45.45%) : 294988.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rcx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rdx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rcx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rdx single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +21,15 @@ G_M48945_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M48945_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, cl
- movzx r8, dl - movzx rcx, cl - movzx rdx, dl - cmp eax, r8d - mov eax, edx - cmovge eax, ecx - ;; size=21 bbWeight=1 PerfScore 1.75
+ movzx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M48945_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 22 (MethodHash=247f40ce) for method System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=247f40ce) for method System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================ Unwind Info:

+16 (+36.36%) : 16943.dasm - System.Enum:AssertValidGenerics[System.__Canon,System.Nullable`1[int]]() (FullOpts)

@@ -13,37 +13,32 @@ ;* V02 tmp1 [V02 ] ( 0, 0 ) int -> zero-ref ;* V03 tmp2 [V03 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V04 tmp3 [V04 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V05 cse0 [V05,T00] ( 5, 5 ) ref -> rbx "CSE - aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M18749_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx - sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M18749_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rbx, 0xD1FFAB1E - ; gcrRegs +[rbx] - mov rcx, rbx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
- mov rdx, rbx
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx] call [<unknown method>] ; gcrRegs -[rcx rdx] ; gcr arg pop 0
- mov rcx, rbx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
- mov rdx, rbx
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- ;; size=28 bbWeight=1 PerfScore 4.25
+ ;; size=46 bbWeight=1 PerfScore 4.00
G_M18749_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32 - pop rbx
+ add rsp, 40
tail.jmp [<unknown method>] ; gcr arg pop 0
- ;; size=11 bbWeight=1 PerfScore 2.75
+ ;; size=10 bbWeight=1 PerfScore 2.25
-; Total bytes of code 44, prolog size 5, PerfScore 8.25, instruction count 11, allocated bytes for code 44 (MethodHash=1a8bb6c2) for method System.Enum:AssertValidGenerics[System.__Canon,System.Nullable`1[int]]() (FullOpts)
+; Total bytes of code 60, prolog size 4, PerfScore 6.50, instruction count 8, allocated bytes for code 60 (MethodHash=1a8bb6c2) for method System.Enum:AssertValidGenerics[System.__Canon,System.Nullable`1[int]]() (FullOpts)
; ============================================================ Unwind Info: @@ -51,10 +46,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

+24 (+38.10%) : 179783.dasm - Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)

@@ -7,40 +7,46 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T01] ( 5, 9 ) ref -> rcx class-hnd single-def <System.String> -; V01 loc0 [V01,T00] ( 6, 19 ) int -> rax
+; V00 arg0 [V00,T02] ( 5, 9 ) ref -> rcx class-hnd single-def <System.String> +; V01 loc0 [V01,T00] ( 7, 23 ) int -> rax
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T02] ( 3, 6 ) int -> rdx "CSE - aggressive" -; V04 cse1 [V04,T03] ( 2, 2 ) int -> rdx "CSE - aggressive"
+; V03 cse0 [V03,T03] ( 4, 8 ) int -> rdx "CSE - unknown" +; V04 cse1 [V04,T04] ( 3, 6 ) int -> r8 "CSE - unknown" +; V05 cse2 [V05,T01] ( 5, 14 ) int -> r10 multi-def "CSE - unknown"
; ; Lcl frame size = 40
-G_M53831_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M53831_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40 ;; size=4 bbWeight=1 PerfScore 0.25 G_M53831_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[rcx] xor eax, eax mov edx, dword ptr [rcx+0x08]
- dec edx - test edx, edx
+ lea r8d, [rdx-0x01] + test r8d, r8d
jle SHORT G_M53831_IG06
- ;; size=11 bbWeight=1 PerfScore 3.75
+ ;; size=14 bbWeight=1 PerfScore 4.00
G_M53831_IG03: ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
- mov r8d, eax - cmp word ptr [rcx+2*r8+0x0C], 46
+ cmp eax, edx + jae SHORT G_M53831_IG10 + mov r10d, eax + cmp word ptr [rcx+2*r10+0x0C], 46
jne SHORT G_M53831_IG05
- ;; size=12 bbWeight=4 PerfScore 17.00
+ ;; size=16 bbWeight=4 PerfScore 22.00
G_M53831_IG04: ; bbWeight=2, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
- lea r8d, [rax+0x01] - cmp word ptr [rcx+2*r8+0x0C], 46
+ lea r10d, [rax+0x01] + cmp r10d, edx + jae SHORT G_M53831_IG10 + cmp word ptr [rcx+2*r10+0x0C], 46
je SHORT G_M53831_IG08
- ;; size=13 bbWeight=2 PerfScore 9.00
+ ;; size=18 bbWeight=2 PerfScore 11.50
G_M53831_IG05: ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
- inc eax - cmp edx, eax
+ lea r10d, [rax+0x01] + mov eax, r10d + cmp r8d, eax
jg SHORT G_M53831_IG03
- ;; size=6 bbWeight=4 PerfScore 6.00
+ ;; size=12 bbWeight=4 PerfScore 8.00
G_M53831_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] xor eax, eax @@ -56,8 +62,13 @@ G_M53831_IG09: ; bbWeight=0.50, epilog, nogc, extend add rsp, 40 ret ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M53831_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + call CORINFO_HELP_RNGCHKFAIL + ; gcr arg pop 0 + int3 + ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 63, prolog size 4, PerfScore 37.50, instruction count 21, allocated bytes for code 63 (MethodHash=36dc2db8) for method Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
+; Total bytes of code 87, prolog size 4, PerfScore 47.25, instruction count 28, allocated bytes for code 87 (MethodHash=36dc2db8) for method Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
; ============================================================ Unwind Info:

+35 (+46.05%) : 177764.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)

@@ -9,17 +9,15 @@ ; Final local variable assignments ; ; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 6, 4.50) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M15570_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx - sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M15570_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rcx], 0
jne SHORT G_M15570_IG04 ;; size=16 bbWeight=1 PerfScore 4.25 G_M15570_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz @@ -28,29 +26,31 @@ G_M15570_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr call [System.Environment:GetEnvironmentVariableCore(System.String):System.String] ; gcrRegs -[rcx] +[rax] ; gcr arg pop 0
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdx, rax ; gcrRegs +[rdx]
- mov rcx, rbx
call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx]
- cmp gword ptr [rbx], 0
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rax], 0
jne SHORT G_M15570_IG04 mov rax, 0xD1FFAB1E ; gcrRegs +[rax]
- mov gword ptr [rbx], rax - ;; size=46 bbWeight=0.50 PerfScore 5.00
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov gword ptr [rcx], rax + ;; size=73 bbWeight=0.50 PerfScore 5.25
G_M15570_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax]
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M15570_IG05: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32 - pop rbx
+ add rsp, 40
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 76, prolog size 5, PerfScore 14.25, instruction count 18, allocated bytes for code 76 (MethodHash=1e56c32d) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
+; Total bytes of code 111, prolog size 4, PerfScore 13.25, instruction count 19, allocated bytes for code 111 (MethodHash=1e56c32d) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
; ============================================================ Unwind Info: @@ -58,10 +58,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

libraries_tests.run.windows.x64.Release.mch

-10 (-45.45%) : 394969.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rcx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rdx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rcx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rdx single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +21,15 @@ G_M10845_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M10845_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, cl
- movzx r8, dl - movzx rcx, cl - movzx rdx, dl - cmp eax, r8d - mov eax, edx - cmovge eax, ecx - ;; size=21 bbWeight=1 PerfScore 1.75
+ movzx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M10845_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 22 (MethodHash=2beed5a2) for method System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=2beed5a2) for method System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
; ============================================================ Unwind Info:

-10 (-45.45%) : 401781.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudePropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rcx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rdx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rcx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rdx single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +21,15 @@ G_M34299_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M34299_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, cl
- movzx r8, dl - movzx rcx, cl - movzx rdx, dl - cmp eax, r8d - mov eax, edx - cmovge eax, ecx - ;; size=21 bbWeight=1 PerfScore 1.75
+ movzx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M34299_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 22 (MethodHash=2ebf7a04) for method System.Numerics.Tensors.TensorPrimitives+MaxMagnitudePropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=2ebf7a04) for method System.Numerics.Tensors.TensorPrimitives+MaxMagnitudePropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)
; ============================================================ Unwind Info:

-10 (-45.45%) : 394990.dasm - System.Byte:System.Numerics.INumberBase.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rcx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rdx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rcx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rdx single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +21,15 @@ G_M14398_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M14398_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, cl
- movzx r8, dl - movzx rcx, cl - movzx rdx, dl - cmp eax, r8d - mov eax, edx - cmovge eax, ecx - ;; size=21 bbWeight=1 PerfScore 1.75
+ movzx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M14398_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 22 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
; ============================================================ Unwind Info:

+15 (+25.86%) : 62229.dasm - NuGet.Common.NullLogger:get_Instance():NuGet.Common.ILogger (Tier1)

@@ -11,43 +11,41 @@ ; ; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <NuGet.Common.NullLogger>
-; V02 cse0 [V02,T00] ( 4, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M16169_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx - sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M16169_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rax], 0
je SHORT G_M16169_IG05 ;; size=16 bbWeight=1 PerfScore 4.25 G_M16169_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M16169_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32 - pop rbx
+ add rsp, 40
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M16169_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs -[rax] mov rcx, 0xD1FFAB1E ; NuGet.Common.NullLogger call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdx, rax ; gcrRegs +[rdx]
- mov rcx, rbx
call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx] jmp SHORT G_M16169_IG03
- ;; size=28 bbWeight=0 PerfScore 0.00
+ ;; size=35 bbWeight=0 PerfScore 0.00
-; Total bytes of code 58, prolog size 5, PerfScore 9.25, instruction count 15, allocated bytes for code 58 (MethodHash=71a2c0d6) for method NuGet.Common.NullLogger:get_Instance():NuGet.Common.ILogger (Tier1)
+; Total bytes of code 73, prolog size 4, PerfScore 8.00, instruction count 14, allocated bytes for code 73 (MethodHash=71a2c0d6) for method NuGet.Common.NullLogger:get_Instance():NuGet.Common.ILogger (Tier1)
; ============================================================ Unwind Info: @@ -55,10 +53,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

+15 (+25.86%) : 84981.dasm - NuGet.Common.NullLogger:get_Instance():NuGet.Common.ILogger (Tier1)

@@ -11,43 +11,41 @@ ; ; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <NuGet.Common.NullLogger>
-; V02 cse0 [V02,T00] ( 4, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M16169_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx - sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M16169_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rax], 0
je SHORT G_M16169_IG05 ;; size=16 bbWeight=1 PerfScore 4.25 G_M16169_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M16169_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32 - pop rbx
+ add rsp, 40
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M16169_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs -[rax] mov rcx, 0xD1FFAB1E ; NuGet.Common.NullLogger call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdx, rax ; gcrRegs +[rdx]
- mov rcx, rbx
call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx] jmp SHORT G_M16169_IG03
- ;; size=28 bbWeight=0 PerfScore 0.00
+ ;; size=35 bbWeight=0 PerfScore 0.00
-; Total bytes of code 58, prolog size 5, PerfScore 9.25, instruction count 15, allocated bytes for code 58 (MethodHash=71a2c0d6) for method NuGet.Common.NullLogger:get_Instance():NuGet.Common.ILogger (Tier1)
+; Total bytes of code 73, prolog size 4, PerfScore 8.00, instruction count 14, allocated bytes for code 73 (MethodHash=71a2c0d6) for method NuGet.Common.NullLogger:get_Instance():NuGet.Common.ILogger (Tier1)
; ============================================================ Unwind Info: @@ -55,10 +53,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

+15 (+30.61%) : 439532.dasm - System.Xml.RwFactoryWriterTests.CModCmdLine:get_CmdLine():OLEDB.Test.ModuleCore.MyDict`2System.String,System.String

@@ -9,42 +9,40 @@ ; Final local variable assignments ; ; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 4, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M40017_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx - sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M40017_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - cmp gword ptr [rbx], 0
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + cmp gword ptr [rax], 0
je SHORT G_M40017_IG05 ;; size=16 bbWeight=1 PerfScore 4.25 G_M40017_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, gword ptr [rbx]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M40017_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32 - pop rbx
+ add rsp, 40
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M40017_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs -[rax] call [OLEDB.Test.ModuleCore.CModInfo:get_Options():OLEDB.Test.ModuleCore.MyDict`2[System.String,System.String]] ; gcrRegs +[rax] ; gcr arg pop 0
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdx, rax ; gcrRegs +[rdx]
- mov rcx, rbx
call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rdx] jmp SHORT G_M40017_IG03
- ;; size=19 bbWeight=0 PerfScore 0.00
+ ;; size=26 bbWeight=0 PerfScore 0.00
-; Total bytes of code 49, prolog size 5, PerfScore 9.25, instruction count 14, allocated bytes for code 49 (MethodHash=8f0763ae) for method System.Xml.RwFactoryWriterTests.CModCmdLine:get_CmdLine():OLEDB.Test.ModuleCore.MyDict`2[System.String,System.String] (Tier1)
+; Total bytes of code 64, prolog size 4, PerfScore 8.00, instruction count 13, allocated bytes for code 64 (MethodHash=8f0763ae) for method System.Xml.RwFactoryWriterTests.CModCmdLine:get_CmdLine():OLEDB.Test.ModuleCore.MyDict`2[System.String,System.String] (Tier1)
; ============================================================ Unwind Info: @@ -52,10 +50,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

librariestestsnotieredcompilation.run.windows.x64.Release.mch

-8 (-88.89%) : 214592.dasm - System.Tests.Types.FunctionPointerTests:CompileTimeIdentity_Managed() (FullOpts)

@@ -10,7 +10,7 @@ ; ;* V00 loc0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;* V01 loc1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
-; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# 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" ;* V04 tmp2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]> ;* V05 tmp3 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" @@ -23,16 +23,16 @@ ;* V12 tmp10 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Nullable`1[ubyte]> ;* V13 tmp11 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]> ;* V14 tmp12 [V14 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Nullable`1[ubyte]>
-;* V15 tmp13 [V15,T01] ( 0, 0 ) ubyte -> zero-ref single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP -;* V16 tmp14 [V16,T02] ( 0, 0 ) ubyte -> zero-ref single-def "field V04.value (fldOffset=0x1)" P-INDEP
+;* V15 tmp13 [V15,T00] ( 0, 0 ) ubyte -> zero-ref single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP +;* V16 tmp14 [V16,T01] ( 0, 0 ) ubyte -> zero-ref single-def "field V04.value (fldOffset=0x1)" P-INDEP
;* V17 tmp15 [V17 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP ;* V18 tmp16 [V18 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V06.value (fldOffset=0x1)" P-INDEP ;* V19 tmp17 [V19 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP ;* V20 tmp18 [V20 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V07.value (fldOffset=0x1)" P-INDEP ;* V21 tmp19 [V21 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V08.hasValue (fldOffset=0x0)" P-INDEP ;* V22 tmp20 [V22 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V08.value (fldOffset=0x1)" P-INDEP
-;* V23 tmp21 [V23,T03] ( 0, 0 ) ubyte -> zero-ref single-def "field V10.hasValue (fldOffset=0x0)" P-INDEP -;* V24 tmp22 [V24,T04] ( 0, 0 ) ubyte -> zero-ref single-def "field V10.value (fldOffset=0x1)" P-INDEP
+;* V23 tmp21 [V23,T02] ( 0, 0 ) ubyte -> zero-ref single-def "field V10.hasValue (fldOffset=0x0)" P-INDEP +;* V24 tmp22 [V24,T03] ( 0, 0 ) ubyte -> zero-ref single-def "field V10.value (fldOffset=0x1)" P-INDEP
;* V25 tmp23 [V25 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V12.hasValue (fldOffset=0x0)" P-INDEP ;* V26 tmp24 [V26 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V12.value (fldOffset=0x1)" P-INDEP ;* V27 tmp25 [V27 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V13.hasValue (fldOffset=0x0)" P-INDEP @@ -40,19 +40,16 @@ ;* V29 tmp27 [V29 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V14.hasValue (fldOffset=0x0)" P-INDEP ;* V30 tmp28 [V30 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V14.value (fldOffset=0x1)" P-INDEP ;* V31 tmp29 [V31 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
-;* V32 cse0 [V32,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
G_M3856_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40 - ;; size=4 bbWeight=1 PerfScore 0.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M3856_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- add rsp, 40
ret
- ;; size=5 bbWeight=1 PerfScore 1.25
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 9, prolog size 4, PerfScore 1.50, instruction count 3, allocated bytes for code 9 (MethodHash=c927f0ef) for method System.Tests.Types.FunctionPointerTests:CompileTimeIdentity_Managed() (FullOpts)
+; Total bytes of code 1, prolog size 0, PerfScore 1.00, instruction count 1, allocated bytes for code 1 (MethodHash=c927f0ef) for method System.Tests.Types.FunctionPointerTests:CompileTimeIdentity_Managed() (FullOpts)
; ============================================================ Unwind Info: @@ -60,9 +57,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x04 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
-10 (-45.45%) : 169017.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rcx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rdx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rcx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rdx single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +21,15 @@ G_M9245_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M9245_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, cl
- movzx r8, dl - movzx rcx, cl - movzx rdx, dl - cmp eax, r8d - mov eax, edx - cmovge eax, ecx - ;; size=21 bbWeight=1 PerfScore 1.75
+ movzx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M9245_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 22 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================ Unwind Info:

-10 (-45.45%) : 168879.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)

@@ -8,10 +8,12 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> rcx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> rdx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> rcx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> rdx single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" +; V04 cse0 [V04,T02] ( 3, 3 ) int -> rax "CSE - unknown" +; V05 cse1 [V05,T03] ( 3, 3 ) int -> rcx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +21,15 @@ G_M9245_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=0 bbWeight=1 PerfScore 0.00 G_M9245_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movzx rax, cl
- movzx r8, dl - movzx rcx, cl - movzx rdx, dl - cmp eax, r8d - mov eax, edx - cmovge eax, ecx - ;; size=21 bbWeight=1 PerfScore 1.75
+ movzx rcx, dl + cmp eax, ecx + cmovl eax, ecx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M9245_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 8, allocated bytes for code 22 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================ Unwind Info:

+32 (+32.99%) : 238503.dasm - System.Security.Cryptography.Tests.Sha512Tests:Sha512_Empty():this (FullOpts)

@@ -10,68 +10,58 @@ ; ; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Security.Cryptography.Tests.Sha512Tests> ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) ref -> rsi "CSE - aggressive" -; V03 cse1 [V03,T02] ( 5, 5 ) ref -> rdi "CSE - aggressive"
; ; Lcl frame size = 32 G_M10290_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi - push rsi
push rbx sub rsp, 32 mov rbx, rcx ; gcrRegs +[rbx]
- ;; size=10 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M10290_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rcx, rbx ; gcrRegs +[rcx]
- mov rsi, 0xD1FFAB1E - ; gcrRegs +[rsi] - mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rdi, 0xD1FFAB1E - ; gcrRegs +[rdi] - mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8] call [<unknown method>] ; gcrRegs -[rcx rdx r8] ; gcr arg pop 0 mov rcx, rbx ; gcrRegs +[rcx]
- mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8] call [<unknown method>] ; gcrRegs -[rcx rdx r8] ; gcr arg pop 0 mov rcx, rbx ; gcrRegs +[rcx]
- mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8] call [<unknown method>] ; gcrRegs -[rcx rdx r8] ; gcr arg pop 0 mov rcx, rbx ; gcrRegs +[rcx]
- mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8]
- ;; size=74 bbWeight=1 PerfScore 12.50
+ ;; size=110 bbWeight=1 PerfScore 12.00
G_M10290_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 32 pop rbx
- pop rsi - pop rdi
tail.jmp [<unknown method>] ; gcr arg pop 0
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=11 bbWeight=1 PerfScore 2.75
-; Total bytes of code 97, prolog size 7, PerfScore 19.75, instruction count 27, allocated bytes for code 97 (MethodHash=7809d7cd) for method System.Security.Cryptography.Tests.Sha512Tests:Sha512_Empty():this (FullOpts)
+; Total bytes of code 129, prolog size 5, PerfScore 16.25, instruction count 21, allocated bytes for code 129 (MethodHash=7809d7cd) for method System.Security.Cryptography.Tests.Sha512Tests:Sha512_Empty():this (FullOpts)
; ============================================================ Unwind Info: @@ -79,12 +69,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07 - CountOfUnwindCodes: 4
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

+32 (+32.99%) : 236716.dasm - System.Security.Cryptography.Tests.Sha256Tests:Sha256_Empty():this (FullOpts)

@@ -10,68 +10,58 @@ ; ; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Security.Cryptography.Tests.Sha256Tests> ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) ref -> rsi "CSE - aggressive" -; V03 cse1 [V03,T02] ( 5, 5 ) ref -> rdi "CSE - aggressive"
; ; Lcl frame size = 32 G_M20978_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi - push rsi
push rbx sub rsp, 32 mov rbx, rcx ; gcrRegs +[rbx]
- ;; size=10 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M20978_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rcx, rbx ; gcrRegs +[rcx]
- mov rsi, 0xD1FFAB1E - ; gcrRegs +[rsi] - mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rdi, 0xD1FFAB1E - ; gcrRegs +[rdi] - mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8] call [<unknown method>] ; gcrRegs -[rcx rdx r8] ; gcr arg pop 0 mov rcx, rbx ; gcrRegs +[rcx]
- mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8] call [<unknown method>] ; gcrRegs -[rcx rdx r8] ; gcr arg pop 0 mov rcx, rbx ; gcrRegs +[rcx]
- mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8] call [<unknown method>] ; gcrRegs -[rcx rdx r8] ; gcr arg pop 0 mov rcx, rbx ; gcrRegs +[rcx]
- mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8]
- ;; size=74 bbWeight=1 PerfScore 12.50
+ ;; size=110 bbWeight=1 PerfScore 12.00
G_M20978_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 32 pop rbx
- pop rsi - pop rdi
tail.jmp [<unknown method>] ; gcr arg pop 0
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=11 bbWeight=1 PerfScore 2.75
-; Total bytes of code 97, prolog size 7, PerfScore 19.75, instruction count 27, allocated bytes for code 97 (MethodHash=4002ae0d) for method System.Security.Cryptography.Tests.Sha256Tests:Sha256_Empty():this (FullOpts)
+; Total bytes of code 129, prolog size 5, PerfScore 16.25, instruction count 21, allocated bytes for code 129 (MethodHash=4002ae0d) for method System.Security.Cryptography.Tests.Sha256Tests:Sha256_Empty():this (FullOpts)
; ============================================================ Unwind Info: @@ -79,12 +69,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07 - CountOfUnwindCodes: 4
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

+32 (+32.99%) : 238676.dasm - System.Security.Cryptography.Tests.Sha1Tests:Sha1_Empty():this (FullOpts)

@@ -10,68 +10,58 @@ ; ; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Security.Cryptography.Tests.Sha1Tests> ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) ref -> rsi "CSE - aggressive" -; V03 cse1 [V03,T02] ( 5, 5 ) ref -> rdi "CSE - aggressive"
; ; Lcl frame size = 32 G_M8882_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi - push rsi
push rbx sub rsp, 32 mov rbx, rcx ; gcrRegs +[rbx]
- ;; size=10 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M8882_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rcx, rbx ; gcrRegs +[rcx]
- mov rsi, 0xD1FFAB1E - ; gcrRegs +[rsi] - mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rdi, 0xD1FFAB1E - ; gcrRegs +[rdi] - mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8] call [<unknown method>] ; gcrRegs -[rcx rdx r8] ; gcr arg pop 0 mov rcx, rbx ; gcrRegs +[rcx]
- mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8] call [<unknown method>] ; gcrRegs -[rcx rdx r8] ; gcr arg pop 0 mov rcx, rbx ; gcrRegs +[rcx]
- mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8] call [<unknown method>] ; gcrRegs -[rcx rdx r8] ; gcr arg pop 0 mov rcx, rbx ; gcrRegs +[rcx]
- mov rdx, rsi
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov r8, rdi
+ mov r8, 0xD1FFAB1E
; gcrRegs +[r8]
- ;; size=74 bbWeight=1 PerfScore 12.50
+ ;; size=110 bbWeight=1 PerfScore 12.00
G_M8882_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 32 pop rbx
- pop rsi - pop rdi
tail.jmp [<unknown method>] ; gcr arg pop 0
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=11 bbWeight=1 PerfScore 2.75
-; Total bytes of code 97, prolog size 7, PerfScore 19.75, instruction count 27, allocated bytes for code 97 (MethodHash=8323dd4d) for method System.Security.Cryptography.Tests.Sha1Tests:Sha1_Empty():this (FullOpts)
+; Total bytes of code 129, prolog size 5, PerfScore 16.25, instruction count 21, allocated bytes for code 129 (MethodHash=8323dd4d) for method System.Security.Cryptography.Tests.Sha1Tests:Sha1_Empty():this (FullOpts)
; ============================================================ Unwind Info: @@ -79,12 +69,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07 - CountOfUnwindCodes: 4
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

realworld.run.windows.x64.checked.mch

-21 (-15.33%) : 16862.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:TryEnqueue(System.Threading.PortableThreadPool+IOCompletionPoller+Event):ubyte:this (FullOpts)

@@ -8,16 +8,20 @@ ; Final local variable assignments ; ; V00 this [V00,T01] ( 6, 23 ) ref -> rcx this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]>
-; V01 arg1 [V01,T05] ( 3, 5 ) byref -> rdx single-def
+; V01 arg1 [V01,T09] ( 3, 5 ) byref -> rdx single-def
; V02 loc0 [V02,T04] ( 5, 18 ) ref -> r8 class-hnd exact single-def <<unknown class>>
-; V03 loc1 [V03,T00] ( 7, 36.50) int -> [rsp+0x24] -; V04 loc2 [V04,T02] ( 5, 25 ) int -> r10
+; V03 loc1 [V03,T00] ( 6, 36 ) int -> [rsp+0x24] spill-single-def +; V04 loc2 [V04,T02] ( 3, 24 ) int -> r10
;* V05 loc3 [V05 ] ( 0, 0 ) int -> zero-ref ; V06 loc4 [V06,T03] ( 3, 20 ) int -> r9 ; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V08 tmp1 [V08 ] ( 0, 0 ) long -> zero-ref "field V01.nativeOverlapped (fldOffset=0x0)" P-INDEP ;* V09 tmp2 [V09 ] ( 0, 0 ) int -> zero-ref "field V01.bytesTransferred (fldOffset=0x8)" P-INDEP ;* V10 tmp3 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.Threading.PortableThreadPool+IOCompletionPoller+Event>
+; V11 cse0 [V11,T06] ( 2, 16 ) int -> r9 "CSE - unknown" +; V12 cse1 [V12,T07] ( 2, 16 ) long -> r10 "CSE - unknown" +; V13 cse2 [V13,T05] ( 4, 17 ) long -> r10 "CSE - unknown" +; V14 cse3 [V14,T08] ( 3, 8.50) int -> r11 "CSE - unknown"
; ; Lcl frame size = 40 @@ -32,30 +36,29 @@ G_M33846_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0004 {rdx}, ;; size=4 bbWeight=1 PerfScore 2.00 G_M33846_IG03: ; bbWeight=8, gcrefRegs=0102 {rcx r8}, byrefRegs=0004 {rdx}, byref, isz mov eax, dword ptr [rcx+0xA0]
+ mov dword ptr [rsp+0x24], eax
mov r10d, eax and r10d, dword ptr [rcx+0x18]
- cmp r10d, dword ptr [r8+0x08]
+ mov r9d, dword ptr [r8+0x08] + cmp r10d, r9d
jae SHORT G_M33846_IG11
- mov r9d, r10d - lea r9, [r9+2*r9] - mov r9d, dword ptr [r8+8*r9+0x10]
+ lea r10, [r10+2*r10] + mov r9d, dword ptr [r8+8*r10+0x10]
sub r9d, eax jne SHORT G_M33846_IG06
- ;; size=36 bbWeight=8 PerfScore 106.00
+ ;; size=40 bbWeight=8 PerfScore 106.00
G_M33846_IG04: ; bbWeight=4, gcrefRegs=0102 {rcx r8}, byrefRegs=0004 {rdx}, byref, isz lea r9, bword ptr [rcx+0xA0] ; byrRegs +[r9] lea r11d, [rax+0x01]
- mov dword ptr [rsp+0x24], eax
lock cmpxchg dword ptr [r9], r11d
- mov r9d, dword ptr [rsp+0x24] - ; byrRegs -[r9] - cmp eax, r9d
+ cmp eax, dword ptr [rsp+0x24]
jne SHORT G_M33846_IG03
- ;; size=30 bbWeight=4 PerfScore 89.00
+ ;; size=22 bbWeight=4 PerfScore 88.00
G_M33846_IG05: ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0004 {rdx}, byref, isz ; gcrRegs -[rcx]
+ ; byrRegs -[r9]
jmp SHORT G_M33846_IG09 ;; size=2 bbWeight=0.50 PerfScore 1.00 G_M33846_IG06: ; bbWeight=4, gcrefRegs=0102 {rcx r8}, byrefRegs=0004 {rdx}, byref, isz @@ -75,16 +78,11 @@ G_M33846_IG08: ; bbWeight=0.50, epilog, nogc, extend G_M33846_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0100 {r8}, byrefRegs=0004 {rdx}, gcvars, byref ; gcrRegs +[r8] ; byrRegs +[rdx]
- mov eax, r10d - lea rax, [rax+2*rax]
vmovups xmm0, xmmword ptr [rdx]
- vmovups xmmword ptr [r8+8*rax+0x18], xmm0 - mov eax, r10d - lea rax, [rax+2*rax] - inc r9d - mov dword ptr [r8+8*rax+0x10], r9d
+ vmovups xmmword ptr [r8+8*r10+0x18], xmm0 + mov dword ptr [r8+8*r10+0x10], r11d
mov eax, 1
- ;; size=38 bbWeight=0.50 PerfScore 4.50
+ ;; size=21 bbWeight=0.50 PerfScore 3.62
G_M33846_IG10: ; bbWeight=0.50, epilog, nogc, extend add rsp, 40 ret @@ -97,7 +95,7 @@ G_M33846_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 137, prolog size 4, PerfScore 209.12, instruction count 39, allocated bytes for code 137 (MethodHash=54067bc9) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:TryEnqueue(System.Threading.PortableThreadPool+IOCompletionPoller+Event):ubyte:this (FullOpts)
+; Total bytes of code 116, prolog size 4, PerfScore 207.25, instruction count 33, allocated bytes for code 116 (MethodHash=54067bc9) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:TryEnqueue(System.Threading.PortableThreadPool+IOCompletionPoller+Event):ubyte:this (FullOpts)
; ============================================================ Unwind Info:

-10 (-14.29%) : 13246.dasm - FSharp.Compiler.Parser+fsyaccreductions@15842-1196:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)

@@ -14,6 +14,7 @@ ; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T02] ( 3, 4.50) ref -> rdx single-def "inline UNBOX clone1" ; V05 tmp2 [V05,T00] ( 3, 6 ) ref -> rdx single-def "arr expr"
+; V06 cse0 [V06,T03] ( 3, 2.25) long -> rcx "CSE - unknown"
; ; Lcl frame size = 40 @@ -31,11 +32,10 @@ G_M11328_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr je SHORT G_M11328_IG04 ;; size=29 bbWeight=1 PerfScore 12.25 G_M11328_IG03: ; bbWeight=0.25, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E ; <unknown class>
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rdx] ; gcr arg pop 0
- ;; size=16 bbWeight=0.25 PerfScore 0.81
+ ;; size=6 bbWeight=0.25 PerfScore 0.75
G_M11328_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, 0xD1FFAB1E ; gcrRegs +[rax] @@ -51,7 +51,7 @@ G_M11328_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 70, prolog size 4, PerfScore 14.81, instruction count 15, allocated bytes for code 70 (MethodHash=4eb2d3bf) for method FSharp.Compiler.Parser+_fsyacc_reductions@15842-1196:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
+; Total bytes of code 60, prolog size 4, PerfScore 14.75, instruction count 14, allocated bytes for code 60 (MethodHash=4eb2d3bf) for method FSharp.Compiler.Parser+_fsyacc_reductions@15842-1196:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
; ============================================================ Unwind Info:

-10 (-14.29%) : 13247.dasm - FSharp.Compiler.Parser+fsyaccreductions@15831-1195:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)

@@ -14,6 +14,7 @@ ; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T02] ( 3, 4.50) ref -> rdx single-def "inline UNBOX clone1" ; V05 tmp2 [V05,T00] ( 3, 6 ) ref -> rdx single-def "arr expr"
+; V06 cse0 [V06,T03] ( 3, 2.25) long -> rcx "CSE - unknown"
; ; Lcl frame size = 40 @@ -31,11 +32,10 @@ G_M36359_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr je SHORT G_M36359_IG04 ;; size=29 bbWeight=1 PerfScore 12.25 G_M36359_IG03: ; bbWeight=0.25, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E ; <unknown class>
call [CORINFO_HELP_UNBOX] ; gcrRegs -[rdx] ; gcr arg pop 0
- ;; size=16 bbWeight=0.25 PerfScore 0.81
+ ;; size=6 bbWeight=0.25 PerfScore 0.75
G_M36359_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, 0xD1FFAB1E ; gcrRegs +[rax] @@ -51,7 +51,7 @@ G_M36359_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 70, prolog size 4, PerfScore 14.81, instruction count 15, allocated bytes for code 70 (MethodHash=0dae71f8) for method FSharp.Compiler.Parser+_fsyacc_reductions@15831-1195:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
+; Total bytes of code 60, prolog size 4, PerfScore 14.75, instruction count 14, allocated bytes for code 60 (MethodHash=0dae71f8) for method FSharp.Compiler.Parser+_fsyacc_reductions@15831-1195:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
; ============================================================ Unwind Info:

+12 (+23.08%) : 21323.dasm - Roslyn.Utilities.UICultureUtilities:.cctor() (FullOpts)

@@ -8,40 +8,37 @@ ; Final local variable assignments ; ; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 4, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M28579_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx - sub rsp, 32 - ;; size=5 bbWeight=1 PerfScore 1.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M28579_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - mov rcx, rbx
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call [<unknown method>] ; gcr arg pop 0 test eax, eax jne SHORT G_M28579_IG04
- ;; size=23 bbWeight=1 PerfScore 4.75
+ ;; size=20 bbWeight=1 PerfScore 4.50
G_M28579_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, rbx
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call [<unknown method>] ; gcr arg pop 0 test eax, eax jne SHORT G_M28579_IG04 xor rax, rax ; gcrRegs +[rax]
- mov gword ptr [rbx], rax - ;; size=18 bbWeight=0.50 PerfScore 2.88
+ mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov gword ptr [rcx], rax + ;; size=35 bbWeight=0.50 PerfScore 3.00
G_M28579_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc ; gcrRegs -[rax]
- add rsp, 32 - pop rbx
+ add rsp, 40
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 52, prolog size 5, PerfScore 10.62, instruction count 16, allocated bytes for code 52 (MethodHash=e5d8905c) for method Roslyn.Utilities.UICultureUtilities:.cctor() (FullOpts)
+; Total bytes of code 64, prolog size 4, PerfScore 9.00, instruction count 14, allocated bytes for code 64 (MethodHash=e5d8905c) for method Roslyn.Utilities.UICultureUtilities:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -49,10 +46,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

+31 (+36.47%) : 3237.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsOSX():ubyte (FullOpts)

@@ -15,15 +15,14 @@ ;* V04 tmp4 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Runtime.InteropServices.OSPlatform> ;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String> ;* V06 tmp6 [V06 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V07 tmp7 [V07,T01] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V07 tmp7 [V07,T00] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V08 tmp8 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V09 tmp9 [V09 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V10 tmp10 [V10 ] ( 0, 0 ) ref -> zero-ref "field V01.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V11 tmp11 [V11,T04] ( 0, 0 ) ubyte -> zero-ref "field V02.hasValue (fldOffset=0x0)" P-INDEP -;* V12 tmp12 [V12,T05] ( 0, 0 ) ubyte -> zero-ref "field V02.value (fldOffset=0x1)" P-INDEP -;* V13 tmp13 [V13,T03] ( 0, 0 ) ref -> zero-ref single-def "field V04.<Name>k__BackingField (fldOffset=0x0)" P-INDEP -;* V14 cse0 [V14,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V15 cse1 [V15,T00] ( 4, 3.50) long -> rax "CSE - aggressive"
+;* V11 tmp11 [V11,T03] ( 0, 0 ) ubyte -> zero-ref "field V02.hasValue (fldOffset=0x0)" P-INDEP +;* V12 tmp12 [V12,T04] ( 0, 0 ) ubyte -> zero-ref "field V02.value (fldOffset=0x1)" P-INDEP +;* V13 tmp13 [V13,T02] ( 0, 0 ) ref -> zero-ref single-def "field V04.<Name>k__BackingField (fldOffset=0x0)" P-INDEP +;* V14 cse0 [V14,T01] ( 0, 0 ) long -> zero-ref "CSE - unknown"
; ; Lcl frame size = 40 @@ -40,14 +39,18 @@ G_M6834_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, jne SHORT G_M6834_IG05 ;; size=15 bbWeight=1 PerfScore 4.25 G_M6834_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov word ptr [rax], 1 - ;; size=5 bbWeight=0.50 PerfScore 0.50
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov byte ptr [rax], 1 + mov rax, 0xD1FFAB1E + mov byte ptr [rax], 0 + ;; size=26 bbWeight=0.50 PerfScore 1.25
G_M6834_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ mov rax, 0xD1FFAB1E ; static handle
cmp byte ptr [rax], 0 je SHORT G_M6834_IG08 mov rax, 0xD1FFAB1E movzx rax, byte ptr [rax]
- ;; size=18 bbWeight=1 PerfScore 6.25
+ ;; size=28 bbWeight=1 PerfScore 6.50
G_M6834_IG06: ; bbWeight=1, epilog, nogc, extend add rsp, 40 ret @@ -65,7 +68,7 @@ G_M6834_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref int3 ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 85, prolog size 4, PerfScore 16.50, instruction count 19, allocated bytes for code 85 (MethodHash=9fd1e54d) for method Microsoft.Build.Shared.NativeMethodsShared:get_IsOSX():ubyte (FullOpts)
+; Total bytes of code 116, prolog size 4, PerfScore 17.50, instruction count 23, allocated bytes for code 116 (MethodHash=9fd1e54d) for method Microsoft.Build.Shared.NativeMethodsShared:get_IsOSX():ubyte (FullOpts)
; ============================================================ Unwind Info:

+31 (+36.47%) : 3235.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)

@@ -15,15 +15,14 @@ ;* V04 tmp4 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Runtime.InteropServices.OSPlatform> ;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String> ;* V06 tmp6 [V06 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V07 tmp7 [V07,T01] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V07 tmp7 [V07,T00] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V08 tmp8 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V09 tmp9 [V09 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V10 tmp10 [V10 ] ( 0, 0 ) ref -> zero-ref "field V01.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V11 tmp11 [V11,T04] ( 0, 0 ) ubyte -> zero-ref "field V02.hasValue (fldOffset=0x0)" P-INDEP -;* V12 tmp12 [V12,T05] ( 0, 0 ) ubyte -> zero-ref "field V02.value (fldOffset=0x1)" P-INDEP -;* V13 tmp13 [V13,T03] ( 0, 0 ) ref -> zero-ref single-def "field V04.<Name>k__BackingField (fldOffset=0x0)" P-INDEP -;* V14 cse0 [V14,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive" -; V15 cse1 [V15,T00] ( 4, 3.50) long -> rax "CSE - aggressive"
+;* V11 tmp11 [V11,T03] ( 0, 0 ) ubyte -> zero-ref "field V02.hasValue (fldOffset=0x0)" P-INDEP +;* V12 tmp12 [V12,T04] ( 0, 0 ) ubyte -> zero-ref "field V02.value (fldOffset=0x1)" P-INDEP +;* V13 tmp13 [V13,T02] ( 0, 0 ) ref -> zero-ref single-def "field V04.<Name>k__BackingField (fldOffset=0x0)" P-INDEP +;* V14 cse0 [V14,T01] ( 0, 0 ) long -> zero-ref "CSE - unknown"
; ; Lcl frame size = 40 @@ -40,14 +39,18 @@ G_M15369_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, jne SHORT G_M15369_IG05 ;; size=15 bbWeight=1 PerfScore 4.25 G_M15369_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov word ptr [rax], 257 - ;; size=5 bbWeight=0.50 PerfScore 0.50
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + mov byte ptr [rax], 1 + mov rax, 0xD1FFAB1E + mov byte ptr [rax], 1 + ;; size=26 bbWeight=0.50 PerfScore 1.25
G_M15369_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ mov rax, 0xD1FFAB1E ; static handle
cmp byte ptr [rax], 0 je SHORT G_M15369_IG08 mov rax, 0xD1FFAB1E movzx rax, byte ptr [rax]
- ;; size=18 bbWeight=1 PerfScore 6.25
+ ;; size=28 bbWeight=1 PerfScore 6.50
G_M15369_IG06: ; bbWeight=1, epilog, nogc, extend add rsp, 40 ret @@ -65,7 +68,7 @@ G_M15369_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref int3 ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 85, prolog size 4, PerfScore 16.50, instruction count 19, allocated bytes for code 85 (MethodHash=8d23c3f6) for method Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)
+; Total bytes of code 116, prolog size 4, PerfScore 17.50, instruction count 23, allocated bytes for code 116 (MethodHash=8d23c3f6) for method Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)
; ============================================================ Unwind Info:

smoke_tests.nativeaot.windows.x64.checked.mch

-10 (-25.00%) : 8473.dasm - System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)

@@ -10,30 +10,26 @@ ; ; V00 arg0 [V00,T00] ( 3, 3 ) double -> mm0 single-def ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) double -> mm6 "CSE - aggressive"
;
-; Lcl frame size = 56
+; Lcl frame size = 40
G_M9194_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 56 - movaps xmmword ptr [rsp+0x20], xmm6 - ;; size=9 bbWeight=1 PerfScore 2.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M9194_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movsd xmm6, qword ptr [reloc @RWD00] - addsd xmm0, xmm6
+ addsd xmm0, qword ptr [reloc @RWD00]
call System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double ; gcr arg pop 0
- subsd xmm0, xmm6 - ;; size=21 bbWeight=1 PerfScore 10.00
+ subsd xmm0, qword ptr [reloc @RWD00] + ;; size=21 bbWeight=1 PerfScore 11.00
G_M9194_IG03: ; bbWeight=1, epilog, nogc, extend
- movaps xmm6, xmmword ptr [rsp+0x20] - add rsp, 56
+ add rsp, 40
ret
- ;; size=10 bbWeight=1 PerfScore 5.25
+ ;; size=5 bbWeight=1 PerfScore 1.25
RWD00 dq 4066800000000000h ; 180
-; Total bytes of code 40, prolog size 9, PerfScore 17.50, instruction count 9, allocated bytes for code 40 (MethodHash=41d9dc15) for method System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)
+; Total bytes of code 30, prolog size 4, PerfScore 12.50, instruction count 6, allocated bytes for code 30 (MethodHash=41d9dc15) for method System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)
; ============================================================ Unwind Info: @@ -41,11 +37,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x09 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x09 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 2 * 16 = 32 = 0x00020 - CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

-10 (-25.00%) : 14112.dasm - System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)

@@ -9,30 +9,26 @@ ; ; V00 arg0 [V00,T00] ( 3, 3 ) double -> mm0 single-def ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) double -> mm6 "CSE - aggressive"
;
-; Lcl frame size = 56
+; Lcl frame size = 40
G_M9194_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 56 - movaps xmmword ptr [rsp+0x20], xmm6 - ;; size=9 bbWeight=1 PerfScore 2.25
+ sub rsp, 40 + ;; size=4 bbWeight=1 PerfScore 0.25
G_M9194_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movsd xmm6, qword ptr [reloc @RWD00] - addsd xmm0, xmm6
+ addsd xmm0, qword ptr [reloc @RWD00]
call System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double ; gcr arg pop 0
- subsd xmm0, xmm6 - ;; size=21 bbWeight=1 PerfScore 10.00
+ subsd xmm0, qword ptr [reloc @RWD00] + ;; size=21 bbWeight=1 PerfScore 11.00
G_M9194_IG03: ; bbWeight=1, epilog, nogc, extend
- movaps xmm6, xmmword ptr [rsp+0x20] - add rsp, 56
+ add rsp, 40
ret
- ;; size=10 bbWeight=1 PerfScore 5.25
+ ;; size=5 bbWeight=1 PerfScore 1.25
RWD00 dq 4066800000000000h ; 180
-; Total bytes of code 40, prolog size 9, PerfScore 17.50, instruction count 9, allocated bytes for code 40 (MethodHash=41d9dc15) for method System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)
+; Total bytes of code 30, prolog size 4, PerfScore 12.50, instruction count 6, allocated bytes for code 30 (MethodHash=41d9dc15) for method System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)
; ============================================================ Unwind Info: @@ -40,11 +36,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x09 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x09 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 2 * 16 = 32 = 0x00020 - CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28

-7 (-17.07%) : 3422.dasm - System.Threading.ThreadStart:InvokeOpenStaticThunk():this (FullOpts)

@@ -8,38 +8,38 @@ ; control-flow guard enabled ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 3.60) ref -> rdx this class-hnd exact single-def <System.Threading.ThreadStart>
+; V00 this [V00,T00] ( 5, 3.50) ref -> rcx this class-hnd exact single-def <System.Threading.ThreadStart>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 5, 1.10) long -> rax multi-def "CSE - unknown"
; ; Lcl frame size = 0 G_M52360_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- mov rdx, rcx - ; gcrRegs +[rdx] - ;; size=3 bbWeight=1 PerfScore 0.25 -G_M52360_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz - test byte ptr [rdx+0x18], 2
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M52360_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rcx] + test byte ptr [rcx+0x18], 2
jne SHORT G_M52360_IG05 ;; size=6 bbWeight=1 PerfScore 4.00
-G_M52360_IG03: ; bbWeight=0.40, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref - mov rax, qword ptr [rdx+0x18]
+G_M52360_IG03: ; bbWeight=0.40, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref + mov rax, qword ptr [rcx+0x18]
;; size=4 bbWeight=0.40 PerfScore 0.80 G_M52360_IG04: ; bbWeight=0.40, epilog, nogc, extend tail.jmp [CORINFO_HELP_DISPATCH_INDIRECT_CALL] ; gcr arg pop 0 ;; size=6 bbWeight=0.40 PerfScore 0.80
-G_M52360_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref - mov rcx, qword ptr [rdx+0x18] - mov rcx, qword ptr [rcx+0x06] - mov rax, qword ptr [rdx+0x18]
+G_M52360_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref + mov rax, qword ptr [rcx+0x18] + mov rcx, qword ptr [rax+0x06] + ; gcrRegs -[rcx]
mov rax, qword ptr [rax-0x02]
- ;; size=16 bbWeight=0.10 PerfScore 0.80
+ ;; size=12 bbWeight=0.10 PerfScore 0.60
G_M52360_IG06: ; bbWeight=0.10, epilog, nogc, extend tail.jmp [CORINFO_HELP_DISPATCH_INDIRECT_CALL] ; gcr arg pop 0 ;; size=6 bbWeight=0.10 PerfScore 0.20
-; Total bytes of code 41, prolog size 3, PerfScore 6.85, instruction count 10, allocated bytes for code 41 (MethodHash=76e43377) for method System.Threading.ThreadStart:InvokeOpenStaticThunk():this (FullOpts)
+; Total bytes of code 34, prolog size 0, PerfScore 6.40, instruction count 8, allocated bytes for code 34 (MethodHash=76e43377) for method System.Threading.ThreadStart:InvokeOpenStaticThunk():this (FullOpts)
; ============================================================ Unwind Info:

+15 (+15.46%) : 16520.dasm - System.IO.Path:GetFileName(System.String):System.String (FullOpts)

@@ -7,8 +7,8 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 7, 5 ) ref -> rbx class-hnd exact single-def <System.String> -; V01 loc0 [V01 ] ( 3, 1.50) struct (16) [rsp+0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ushort]>
+; V00 arg0 [V00,T00] ( 6, 4.50) ref -> rbx class-hnd exact single-def <System.String> +; V01 loc0 [V01 ] ( 3, 1.50) struct (16) [rsp+0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ushort]>
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]> ;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]> @@ -18,28 +18,33 @@ ; V08 tmp6 [V08,T01] ( 2, 2 ) byref -> rdx single-def "Inlining Arg" ;* V09 tmp7 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V10 tmp8 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V11 tmp9 [V11 ] ( 2, 1 ) byref -> [rsp+0x30] do-not-enreg[X] addr-exposed "field V01._reference (fldOffset=0x0)" P-DEP -; V12 tmp10 [V12 ] ( 3, 1.50) int -> [rsp+0x38] do-not-enreg[X] addr-exposed "field V01._length (fldOffset=0x8)" P-DEP
+; V11 tmp9 [V11 ] ( 2, 1 ) byref -> [rsp+0x38] do-not-enreg[X] addr-exposed "field V01._reference (fldOffset=0x0)" P-DEP +; V12 tmp10 [V12 ] ( 3, 1.50) int -> [rsp+0x40] do-not-enreg[X] addr-exposed "field V01._length (fldOffset=0x8)" P-DEP
;* V13 tmp11 [V13 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP ;* V14 tmp12 [V14 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
-; V15 tmp13 [V15,T03] ( 2, 1 ) byref -> rdx single-def "field V04._reference (fldOffset=0x0)" P-INDEP -; V16 tmp14 [V16,T05] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP -; V17 tmp15 [V17,T04] ( 2, 1 ) byref -> rdx single-def "field V05._reference (fldOffset=0x0)" P-INDEP -; V18 tmp16 [V18,T06] ( 2, 1 ) int -> rcx "field V05._length (fldOffset=0x8)" P-INDEP
+; V15 tmp13 [V15,T04] ( 2, 1 ) byref -> rdx single-def "field V04._reference (fldOffset=0x0)" P-INDEP +; V16 tmp14 [V16,T06] ( 2, 1 ) int -> rcx "field V04._length (fldOffset=0x8)" P-INDEP +; V17 tmp15 [V17,T05] ( 2, 1 ) byref -> rdx single-def "field V05._reference (fldOffset=0x0)" P-INDEP +; V18 tmp16 [V18,T07] ( 2, 1 ) int -> rcx "field V05._length (fldOffset=0x8)" P-INDEP
;* V19 tmp17 [V19 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP ;* V20 tmp18 [V20 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
-; V21 tmp19 [V21 ] ( 3, 3 ) struct (16) [rsp+0x20] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+; V21 tmp19 [V21 ] ( 3, 3 ) struct (16) [rsp+0x28] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]> +; V22 cse0 [V22,T03] ( 3, 1.50) int -> rsi "CSE - unknown"
;
-; Lcl frame size = 64
+; Lcl frame size = 72
G_M51874_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+ push rsi
push rbx
- sub rsp, 64
+ sub rsp, 72 + xor eax, eax + mov qword ptr [rsp+0x28], rax
vxorps xmm4, xmm4, xmm4
- vmovdqu ymmword ptr [rsp+0x20], ymm4
+ vmovdqa xmmword ptr [rsp+0x30], xmm4 + mov qword ptr [rsp+0x40], rax
mov rbx, rcx ; gcrRegs +[rbx]
- ;; size=18 bbWeight=1 PerfScore 3.83
+ ;; size=31 bbWeight=1 PerfScore 7.08
G_M51874_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz test rbx, rbx jne SHORT G_M51874_IG05 @@ -50,48 +55,51 @@ G_M51874_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcrRegs +[rax] ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M51874_IG04: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 64
+ add rsp, 72
pop rbx
+ pop rsi
ret
- ;; size=6 bbWeight=0.50 PerfScore 0.88
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
G_M51874_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs -[rax] +[rbx] lea rdx, bword ptr [rbx+0x0C] ; byrRegs +[rdx]
- mov ecx, dword ptr [rbx+0x08] - mov bword ptr [rsp+0x20], rdx - mov dword ptr [rsp+0x28], ecx - lea rdx, [rsp+0x20]
+ mov esi, dword ptr [rbx+0x08] + mov ecx, esi + mov bword ptr [rsp+0x28], rdx + mov dword ptr [rsp+0x30], ecx + lea rdx, [rsp+0x28]
; byrRegs -[rdx]
- lea rcx, [rsp+0x30]
+ lea rcx, [rsp+0x38]
call System.IO.Path:GetFileName(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] ; gcr arg pop 0
- mov eax, dword ptr [rbx+0x08] - cmp eax, dword ptr [rsp+0x38]
+ cmp esi, dword ptr [rsp+0x40]
jne SHORT G_M51874_IG07 mov rax, rbx ; gcrRegs +[rax]
- ;; size=43 bbWeight=0.50 PerfScore 5.88
+ ;; size=42 bbWeight=0.50 PerfScore 5.00
G_M51874_IG06: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 64
+ add rsp, 72
pop rbx
+ pop rsi
ret
- ;; size=6 bbWeight=0.50 PerfScore 0.88
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
G_M51874_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[rax rbx]
- lea rcx, [rsp+0x30]
+ lea rcx, [rsp+0x38]
call System.ReadOnlySpan`1[ushort]:ToString():System.String:this ; gcrRegs +[rax] ; gcr arg pop 0 nop ;; size=11 bbWeight=0.50 PerfScore 0.88 G_M51874_IG08: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 64
+ add rsp, 72
pop rbx
+ pop rsi
ret
- ;; size=6 bbWeight=0.50 PerfScore 0.88
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 97, prolog size 15, PerfScore 14.58, instruction count 31, allocated bytes for code 97 (MethodHash=faab355d) for method System.IO.Path:GetFileName(System.String):System.String (FullOpts)
+; Total bytes of code 112, prolog size 28, PerfScore 17.71, instruction count 38, allocated bytes for code 112 (MethodHash=faab355d) for method System.IO.Path:GetFileName(System.String):System.String (FullOpts)
; ============================================================ Unwind Info: @@ -99,10 +107,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x06 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40 - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)

+7 (+16.28%) : 11838.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)

@@ -10,46 +10,52 @@ ; V00 this [V00,T01] ( 3, 3 ) ref -> rcx this class-hnd exact single-def <Internal.TypeSystem.MethodForInstantiatedType> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 8) zero-ref "guarded devirt return temp" <Internal.TypeSystem.Instantiation>
-; V03 tmp2 [V03,T00] ( 6, 6.33) ref -> rcx single-def "guarded devirt arg temp"
+; V03 tmp2 [V03,T00] ( 5, 5.67) ref -> rcx single-def "guarded devirt arg temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.NoMetadata.RuntimeMethodDesc> ;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.InstantiatedMethod> ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.MethodForInstantiatedType>
-; V07 tmp6 [V07,T02] ( 2, 1 ) ref -> rax single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP
+; V07 tmp6 [V07,T03] ( 2, 1 ) ref -> rax single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP +; V08 cse0 [V08,T02] ( 3, 2.33) long -> rbx "CSE - unknown"
; ; Lcl frame size = 0 G_M20372_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- ;; size=0 bbWeight=1 PerfScore 0.00
+ push rbx + ;; size=1 bbWeight=1 PerfScore 1.00
G_M20372_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[rcx] mov rcx, gword ptr [rcx+0x20]
+ mov rbx, qword ptr [rcx]
lea rax, [(reloc)]
- cmp qword ptr [rcx], rax
+ cmp rbx, rax
jne SHORT G_M20372_IG04
- ;; size=16 bbWeight=1 PerfScore 6.50
+ ;; size=19 bbWeight=1 PerfScore 5.75
G_M20372_IG03: ; bbWeight=0.17, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, epilog, nogc
+ pop rbx
jmp Internal.TypeSystem.NoMetadata.RuntimeMethodDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=5 bbWeight=0.17 PerfScore 0.34
+ ;; size=6 bbWeight=0.17 PerfScore 0.43
G_M20372_IG04: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz lea rax, [(reloc)]
- cmp qword ptr [rcx], rax
+ cmp rbx, rax
jne SHORT G_M20372_IG07
- ;; size=12 bbWeight=0.33 PerfScore 1.49
+ ;; size=12 bbWeight=0.33 PerfScore 0.58
G_M20372_IG05: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref mov rax, gword ptr [rcx+0x50] ; gcrRegs +[rax] ;; size=4 bbWeight=0.50 PerfScore 1.00 G_M20372_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ pop rbx
ret
- ;; size=1 bbWeight=0.50 PerfScore 0.50
+ ;; size=2 bbWeight=0.50 PerfScore 0.75
G_M20372_IG07: ; bbWeight=0.17, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, epilog, nogc ; gcrRegs -[rax]
+ pop rbx
jmp Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=5 bbWeight=0.17 PerfScore 0.33
+ ;; size=6 bbWeight=0.17 PerfScore 0.41
-; Total bytes of code 43, prolog size 0, PerfScore 10.15, instruction count 11, allocated bytes for code 43 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 50, prolog size 1, PerfScore 9.91, instruction count 16, allocated bytes for code 50 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================ Unwind Info: @@ -57,8 +63,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x00 - CountOfUnwindCodes: 0
+ SizeOfProlog : 0x01 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

+7 (+16.28%) : 6443.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)

@@ -11,46 +11,52 @@ ; V00 this [V00,T01] ( 3, 3 ) ref -> rcx this class-hnd exact single-def <Internal.TypeSystem.MethodForInstantiatedType> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 8) zero-ref "guarded devirt return temp" <Internal.TypeSystem.Instantiation>
-; V03 tmp2 [V03,T00] ( 6, 6.33) ref -> rcx single-def "guarded devirt arg temp"
+; V03 tmp2 [V03,T00] ( 5, 5.67) ref -> rcx single-def "guarded devirt arg temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.NoMetadata.RuntimeMethodDesc> ;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.InstantiatedMethod> ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Internal.TypeSystem.MethodForInstantiatedType>
-; V07 tmp6 [V07,T02] ( 2, 1 ) ref -> rax single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP
+; V07 tmp6 [V07,T03] ( 2, 1 ) ref -> rax single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP +; V08 cse0 [V08,T02] ( 3, 2.33) long -> rbx "CSE - unknown"
; ; Lcl frame size = 0 G_M20372_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- ;; size=0 bbWeight=1 PerfScore 0.00
+ push rbx + ;; size=1 bbWeight=1 PerfScore 1.00
G_M20372_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[rcx] mov rcx, gword ptr [rcx+0x20]
+ mov rbx, qword ptr [rcx]
lea rax, [(reloc)]
- cmp qword ptr [rcx], rax
+ cmp rbx, rax
jne SHORT G_M20372_IG04
- ;; size=16 bbWeight=1 PerfScore 6.50
+ ;; size=19 bbWeight=1 PerfScore 5.75
G_M20372_IG03: ; bbWeight=0.17, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, epilog, nogc
+ pop rbx
jmp Internal.TypeSystem.NoMetadata.RuntimeMethodDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=5 bbWeight=0.17 PerfScore 0.34
+ ;; size=6 bbWeight=0.17 PerfScore 0.43
G_M20372_IG04: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz lea rax, [(reloc)]
- cmp qword ptr [rcx], rax
+ cmp rbx, rax
jne SHORT G_M20372_IG07
- ;; size=12 bbWeight=0.33 PerfScore 1.49
+ ;; size=12 bbWeight=0.33 PerfScore 0.58
G_M20372_IG05: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref mov rax, gword ptr [rcx+0x50] ; gcrRegs +[rax] ;; size=4 bbWeight=0.50 PerfScore 1.00 G_M20372_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ pop rbx
ret
- ;; size=1 bbWeight=0.50 PerfScore 0.50
+ ;; size=2 bbWeight=0.50 PerfScore 0.75
G_M20372_IG07: ; bbWeight=0.17, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, epilog, nogc ; gcrRegs -[rax]
+ pop rbx
jmp Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this ; gcr arg pop 0
- ;; size=5 bbWeight=0.17 PerfScore 0.33
+ ;; size=6 bbWeight=0.17 PerfScore 0.41
-; Total bytes of code 43, prolog size 0, PerfScore 10.15, instruction count 11, allocated bytes for code 43 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 50, prolog size 1, PerfScore 9.91, instruction count 16, allocated bytes for code 50 (MethodHash=05d3b06b) for method Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================ Unwind Info: @@ -58,8 +64,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x00 - CountOfUnwindCodes: 0
+ SizeOfProlog : 0x01 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.windows.x64.checked.mch 5,203 2,788 2,160 255 -31,451 +41,418 -0.4996%
benchmarks.run_pgo.windows.x64.checked.mch 10,001 4,640 4,886 475 -43,835 +136,625 -0.1699%
benchmarks.run_tiered.windows.x64.checked.mch 2,289 1,620 579 90 -19,196 +13,793 -0.6226%
coreclr_tests.run.windows.x64.checked.mch 111,508 22,067 83,404 6,037 -258,724 +1,609,587 -0.8411%
libraries.crossgen2.windows.x64.checked.mch 18,521 10,578 6,727 1,216 -74,960 +85,624 -0.0324%
libraries.pmi.windows.x64.checked.mch 30,280 13,496 14,873 1,911 -122,148 +301,570 -0.1410%
libraries_tests.run.windows.x64.Release.mch 53,190 21,165 27,225 4,800 -241,645 +734,829 -0.3699%
librariestestsnotieredcompilation.run.windows.x64.Release.mch 68,415 26,660 39,149 2,606 -321,692 +695,810 -0.4468%
realworld.run.windows.x64.checked.mch 5,767 2,381 3,047 339 -39,289 +64,102 -0.1919%
smoke_tests.nativeaot.windows.x64.checked.mch 2,747 1,131 1,458 158 -7,355 +13,631 -0.0624%
307,921 106,526 183,508 17,887 -1,160,295 +3,696,989

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x64.checked.mch 28,164 4 28,160 5 (0.02%) 17 (0.06%)
benchmarks.run_pgo.windows.x64.checked.mch 101,966 50,185 51,781 4 (0.00%) 4 (0.00%)
benchmarks.run_tiered.windows.x64.checked.mch 53,057 37,302 15,755 4 (0.01%) 4 (0.01%)
coreclr_tests.run.windows.x64.checked.mch 584,421 348,263 236,158 7 (0.00%) 40 (0.01%)
libraries.crossgen2.windows.x64.checked.mch 275,729 15 275,714 0 (0.00%) 42 (0.02%)
libraries.pmi.windows.x64.checked.mch 314,217 6 314,211 19 (0.01%) 126 (0.04%)
libraries_tests.run.windows.x64.Release.mch 682,363 484,080 198,283 18 (0.00%) 318 (0.05%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch 320,571 21,946 298,625 118 (0.04%) 324 (0.10%)
realworld.run.windows.x64.checked.mch 36,912 3 36,909 1 (0.00%) 11 (0.03%)
smoke_tests.nativeaot.windows.x64.checked.mch 32,520 11 32,509 0 (0.00%) 5 (0.02%)
2,429,920 941,815 1,488,105 176 (0.01%) 891 (0.04%)

jit-analyze output

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: 8740616 (overridden on cmd)
Total bytes of diff: 8750583 (overridden on cmd)
Total bytes of delta: 9967 (0.11 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        1549 : 4733.dasm (11.83 % of base)
        1411 : 23497.dasm (8.67 % of base)
        1297 : 4435.dasm (7.48 % of base)
         873 : 18677.dasm (6.41 % of base)
         849 : 1813.dasm (7.97 % of base)
         640 : 17957.dasm (3.95 % of base)
         543 : 8489.dasm (4.45 % of base)
         525 : 18286.dasm (10.78 % of base)
         416 : 2971.dasm (7.70 % of base)
         376 : 7786.dasm (26.20 % of base)
         350 : 10437.dasm (7.27 % of base)
         307 : 8166.dasm (3.80 % of base)
         286 : 9220.dasm (5.71 % of base)
         284 : 6912.dasm (7.21 % of base)
         269 : 2972.dasm (3.12 % of base)
         248 : 24091.dasm (4.25 % of base)
         241 : 9742.dasm (6.33 % of base)
         240 : 28170.dasm (3.33 % of base)
         239 : 10517.dasm (4.48 % of base)
         230 : 6819.dasm (5.47 % of base)

Top file improvements (bytes):
        -494 : 3339.dasm (-5.33 % of base)
        -245 : 8461.dasm (-6.34 % of base)
        -226 : 10589.dasm (-4.21 % of base)
        -195 : 7455.dasm (-10.60 % of base)
        -186 : 10442.dasm (-7.55 % of base)
        -161 : 18922.dasm (-2.71 % of base)
        -160 : 3740.dasm (-5.33 % of base)
        -156 : 7807.dasm (-8.77 % of base)
        -147 : 7342.dasm (-3.03 % of base)
        -138 : 17724.dasm (-7.58 % of base)
        -121 : 15280.dasm (-6.74 % of base)
        -120 : 20373.dasm (-6.68 % of base)
        -120 : 7973.dasm (-13.50 % of base)
        -115 : 4197.dasm (-5.03 % of base)
        -111 : 27466.dasm (-17.65 % of base)
        -110 : 19221.dasm (-9.26 % of base)
        -108 : 21159.dasm (-5.54 % of base)
        -102 : 10943.dasm (-5.22 % of base)
        -100 : 3053.dasm (-18.08 % of base)
         -97 : 13924.dasm (-5.11 % of base)

97 total files with Code Size differences (50 improved, 47 regressed), 20 unchanged.

Top method regressions (bytes):
        1549 (11.83 % of base) : 4733.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
        1411 (8.67 % of base) : 23497.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        1297 (7.48 % of base) : 4435.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         873 (6.41 % of base) : 18677.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         849 (7.97 % of base) : 1813.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
         640 (3.95 % of base) : 17957.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (FullOpts)
         543 (4.45 % of base) : 8489.dasm - MessagePack.MessagePackBinary:.cctor() (FullOpts)
         525 (10.78 % of base) : 18286.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         416 (7.70 % of base) : 2971.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
         376 (26.20 % of base) : 7786.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:.ctor(System.String):this (FullOpts)
         350 (7.27 % of base) : 10437.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this (FullOpts)
         307 (3.80 % of base) : 8166.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
         286 (5.71 % of base) : 9220.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
         284 (7.21 % of base) : 6912.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+EmitInfo:.cctor() (FullOpts)
         269 (3.12 % of base) : 2972.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         248 (4.25 % of base) : 24091.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         241 (6.33 % of base) : 9742.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:ImportDataMembers():this (FullOpts)
         240 (3.33 % of base) : 28170.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         239 (4.48 % of base) : 10517.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
         230 (5.47 % of base) : 6819.dasm - Utf8Json.Internal.Emit.MetaType:.ctor(System.Type,System.Func`2[System.String,System.String],ubyte):this (FullOpts)

Top method improvements (bytes):
        -494 (-5.33 % of base) : 3339.dasm - Product:CreateLists() (FullOpts)
        -245 (-6.34 % of base) : 8461.dasm - MessagePack.Internal.DynamicObjectTypeBuilder:BuildDeserialize(System.Type,MessagePack.Internal.ObjectSerializationInfo,System.Reflection.Emit.ILGenerator,System.Func`3[int,MessagePack.Internal.ObjectSerializationInfo+EmittableMember,System.Action],int) (FullOpts)
        -226 (-4.21 % of base) : 10589.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (FullOpts)
        -195 (-10.60 % of base) : 7455.dasm - ProtoBuf.Internal.Serializers.DefaultValueDecorator:EmitBranchIfDefaultValue(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.CodeLabel):this (FullOpts)
        -186 (-7.55 % of base) : 10442.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
        -161 (-2.71 % of base) : 18922.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
        -160 (-5.33 % of base) : 3740.dasm - System.Text.Json.Utf8JsonReader:.ctor(System.Buffers.ReadOnlySequence`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this (FullOpts)
        -156 (-8.77 % of base) : 7807.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilitiesBenchmark:SetUp():this (FullOpts)
        -147 (-3.03 % of base) : 7342.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
        -138 (-7.58 % of base) : 17724.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetCompilationReferences(System.__Canon,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref,byref):this (FullOpts)
        -121 (-6.74 % of base) : 15280.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -120 (-13.50 % of base) : 7973.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
        -120 (-6.68 % of base) : 20373.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (FullOpts)
        -115 (-5.03 % of base) : 4197.dasm - Sigil.Emit`1[System.__Canon]:Call(System.Reflection.MethodInfo,System.Type[]):Sigil.Emit`1[System.__Canon]:this (FullOpts)
        -111 (-17.65 % of base) : 27466.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
        -110 (-9.26 % of base) : 19221.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -108 (-5.54 % of base) : 21159.dasm - System.Threading.ReaderWriterLockSlim:TryEnterWriteLockCore(System.Threading.ReaderWriterLockSlim+TimeoutTracker):ubyte:this (FullOpts)
        -102 (-5.22 % of base) : 10943.dasm - System.Enum:TryFormatFlagNames[uint](System.Enum+EnumInfo`1[uint],uint,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
        -100 (-18.08 % of base) : 3053.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
         -97 (-5.11 % of base) : 13924.dasm - System.Xml.Serialization.XmlCustomFormatter:.cctor() (FullOpts)

Top method regressions (percentages):
         376 (26.20 % of base) : 7786.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:.ctor(System.String):this (FullOpts)
          12 (23.08 % of base) : 18102.dasm - Roslyn.Utilities.UICultureUtilities:.cctor() (FullOpts)
          18 (22.78 % of base) : 4694.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
           8 (22.22 % of base) : 3338.dasm - Product:GetProductList():System.Collections.Generic.List`1[Product] (FullOpts)
          18 (22.22 % of base) : 11078.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
         223 (20.78 % of base) : 3731.dasm - System.Buffers.ProbabilisticMap:IndexOfAnyVectorized(byref,byref,int,System.ReadOnlySpan`1[ushort]):int (FullOpts)
          15 (20.55 % of base) : 9827.dasm - System.Runtime.Serialization.XmlFormatGeneratorStatics:get_MemberNamesField():System.Reflection.FieldInfo (FullOpts)
          15 (18.29 % of base) : 8328.dasm - MessagePack.MessagePackSerializer:get_DefaultResolver():MessagePack.IFormatterResolver (FullOpts)
          15 (18.29 % of base) : 6686.dasm - Utf8Json.JsonSerializer:get_DefaultResolver():Utf8Json.IJsonFormatterResolver (FullOpts)
          28 (18.18 % of base) : 15849.dasm - Neural:check_out_error():int (FullOpts)
          28 (18.18 % of base) : 15568.dasm - NeuralJagged:check_out_error():int (FullOpts)
          18 (17.31 % of base) : 8968.dasm - System.SpanHelpers:Reverse[System.__Canon](byref,ulong) (FullOpts)
          15 (16.30 % of base) : 2578.dasm - V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
          15 (16.30 % of base) : 2545.dasm - V8.Crypto.Support:runEncrypt(ubyte) (FullOpts)
          15 (16.13 % of base) : 10115.dasm - System.Runtime.Serialization.JsonFormatGeneratorStatics:get_CollectionItemNameProperty():System.Reflection.PropertyInfo (FullOpts)
          15 (16.13 % of base) : 10176.dasm - System.Runtime.Serialization.JsonFormatGeneratorStatics:get_TypeHandleProperty():System.Reflection.PropertyInfo (FullOpts)
          15 (16.13 % of base) : 10162.dasm - System.Runtime.Serialization.JsonFormatGeneratorStatics:get_UseSimpleDictionaryFormatWriteProperty():System.Reflection.PropertyInfo (FullOpts)
          15 (16.13 % of base) : 10707.dasm - System.Runtime.Serialization.XmlFormatGeneratorStatics:get_ChildElementNamespacesProperty():System.Reflection.PropertyInfo (FullOpts)
          15 (16.13 % of base) : 10703.dasm - System.Runtime.Serialization.XmlFormatGeneratorStatics:get_CollectionItemNameProperty():System.Reflection.PropertyInfo (FullOpts)
          15 (16.13 % of base) : 9836.dasm - System.Runtime.Serialization.XmlFormatGeneratorStatics:get_NamespaceProperty():System.Reflection.PropertyInfo (FullOpts)

Top method improvements (percentages):
         -10 (-19.61 % of base) : 6577.dasm - (dynamicClass):Int1Getter(System.Object):int (FullOpts)
         -10 (-19.61 % of base) : 9116.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_10(System.Object):int:this (FullOpts)
         -10 (-19.61 % of base) : 9117.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
         -10 (-19.61 % of base) : 9118.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_14(System.Object):int:this (FullOpts)
         -10 (-19.61 % of base) : 9119.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_16(System.Object):int:this (FullOpts)
         -10 (-19.61 % of base) : 9120.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_18(System.Object):int:this (FullOpts)
         -10 (-19.61 % of base) : 12327.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_0(System.Object):int:this (FullOpts)
         -10 (-19.61 % of base) : 15491.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_0(System.Object):int:this (FullOpts)
         -10 (-19.61 % of base) : 15494.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
         -12 (-19.35 % of base) : 28019.dasm - System.Reflection.Invoke:Ctor0_ActivatorCreateInstance_NoParams():this (FullOpts)
         -10 (-19.23 % of base) : 15237.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -10 (-19.23 % of base) : 6576.dasm - (dynamicClass):String1Getter(System.Object):System.String (FullOpts)
         -10 (-19.23 % of base) : 9111.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_0(System.Object):System.String:this (FullOpts)
         -10 (-19.23 % of base) : 9112.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
         -10 (-19.23 % of base) : 9113.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_4(System.Object):System.String:this (FullOpts)
         -10 (-19.23 % of base) : 9114.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_6(System.Object):System.String:this (FullOpts)
         -10 (-19.23 % of base) : 9115.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_8(System.Object):System.String:this (FullOpts)
         -10 (-19.23 % of base) : 12328.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_2(System.Object):System.String:this (FullOpts)
         -10 (-19.23 % of base) : 15493.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_4(System.Object):System.String:this (FullOpts)
         -10 (-19.23 % of base) : 15495.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_8(System.Object):ubyte:this (FullOpts)


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: 35540192 (overridden on cmd)
Total bytes of diff: 35632982 (overridden on cmd)
Total bytes of delta: 92790 (0.26 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1411 : 82140.dasm (8.67 % of base)
        1297 : 11800.dasm (7.48 % of base)
         596 : 95836.dasm (37.70 % of base)
         584 : 95303.dasm (7.70 % of base)
         580 : 97588.dasm (7.53 % of base)
         488 : 95833.dasm (30.87 % of base)
         462 : 67547.dasm (9.69 % of base)
         450 : 41499.dasm (10.82 % of base)
         450 : 40428.dasm (10.82 % of base)
         448 : 79799.dasm (8.96 % of base)
         448 : 83431.dasm (8.96 % of base)
         448 : 51875.dasm (8.96 % of base)
         435 : 47792.dasm (8.69 % of base)
         435 : 67656.dasm (8.69 % of base)
         435 : 35586.dasm (8.69 % of base)
         435 : 45928.dasm (8.69 % of base)
         435 : 53548.dasm (8.69 % of base)
         435 : 94122.dasm (8.69 % of base)
         435 : 74316.dasm (8.69 % of base)
         428 : 36165.dasm (10.08 % of base)

Top file improvements (bytes):
        -352 : 67240.dasm (-14.42 % of base)
        -197 : 67316.dasm (-2.56 % of base)
        -197 : 82353.dasm (-1.72 % of base)
        -178 : 82367.dasm (-1.56 % of base)
        -159 : 80939.dasm (-3.33 % of base)
        -159 : 36014.dasm (-3.39 % of base)
        -145 : 70427.dasm (-36.34 % of base)
        -143 : 41723.dasm (-3.20 % of base)
        -126 : 40674.dasm (-7.14 % of base)
        -117 : 52462.dasm (-1.21 % of base)
        -116 : 40659.dasm (-5.90 % of base)
        -113 : 83405.dasm (-2.24 % of base)
        -106 : 20156.dasm (-1.10 % of base)
        -106 : 50867.dasm (-2.14 % of base)
        -105 : 68256.dasm (-13.85 % of base)
        -105 : 84719.dasm (-3.19 % of base)
        -105 : 95550.dasm (-13.85 % of base)
        -105 : 41742.dasm (-3.26 % of base)
        -105 : 72879.dasm (-13.85 % of base)
        -105 : 89970.dasm (-13.85 % of base)

97 total files with Code Size differences (39 improved, 58 regressed), 20 unchanged.

Top method regressions (bytes):
        1411 (8.67 % of base) : 82140.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        1297 (7.48 % of base) : 11800.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         596 (37.70 % of base) : 95836.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier1-OSR)
         584 (7.70 % of base) : 95303.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:.ctor(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,System.Text.RegularExpressions.RegexFindOptimizations,System.TimeSpan):this (Tier1)
         580 (7.53 % of base) : 97588.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:.ctor(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,System.Text.RegularExpressions.RegexFindOptimizations,System.TimeSpan):this (Tier1)
         488 (30.87 % of base) : 95833.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier1-OSR)
         462 (9.69 % of base) : 67547.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:Scan(byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+PendingBranch[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalFunctionState]]:this (Tier1)
         450 (10.82 % of base) : 41499.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         450 (10.82 % of base) : 40428.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
         448 (8.96 % of base) : 79799.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         448 (8.96 % of base) : 83431.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         448 (8.96 % of base) : 51875.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         435 (8.69 % of base) : 47792.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         435 (8.69 % of base) : 67656.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         435 (8.69 % of base) : 35586.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         435 (8.69 % of base) : 45928.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         435 (8.69 % of base) : 53548.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         435 (8.69 % of base) : 94122.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         435 (8.69 % of base) : 74316.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier1-OSR)
         428 (10.08 % of base) : 36165.dasm - System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)

Top method improvements (bytes):
        -352 (-14.42 % of base) : 67240.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (Tier1)
        -197 (-1.72 % of base) : 82353.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
        -197 (-2.56 % of base) : 67316.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):this (Tier1)
        -178 (-1.56 % of base) : 82367.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
        -159 (-3.33 % of base) : 80939.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -159 (-3.39 % of base) : 36014.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -145 (-36.34 % of base) : 70427.dasm - System.Threading.ReaderWriterLockSlim:GetThreadRWCount(ubyte):System.Threading.ReaderWriterCount:this (Tier1)
        -143 (-3.20 % of base) : 41723.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -126 (-7.14 % of base) : 40674.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1)
        -117 (-1.21 % of base) : 52462.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
        -116 (-5.90 % of base) : 40659.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1-OSR)
        -113 (-2.24 % of base) : 83405.dasm - System.Xml.Schema.XsdDuration:TryFormat(System.Span`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
        -106 (-1.10 % of base) : 20156.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
        -106 (-2.14 % of base) : 50867.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -105 (-3.19 % of base) : 84719.dasm - (dynamicClass):ReadCampaignSummaryViewModelFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -105 (-3.26 % of base) : 41742.dasm - (dynamicClass):ReadCampaignSummaryViewModelFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -105 (-13.85 % of base) : 95550.dasm - System.Collections.Sort`1[System.__Canon]:LinqOrderByExtension():int:this (Tier1)
        -105 (-13.85 % of base) : 72879.dasm - System.Collections.Sort`1[System.__Canon]:LinqOrderByExtension():int:this (Tier1)
        -105 (-13.85 % of base) : 68256.dasm - System.Collections.Sort`1[System.__Canon]:LinqQuery():int:this (Tier1)
        -105 (-13.85 % of base) : 89970.dasm - System.Collections.Sort`1[System.__Canon]:LinqQuery():int:this (Tier1)

Top method regressions (percentages):
         596 (37.70 % of base) : 95836.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier1-OSR)
         488 (30.87 % of base) : 95833.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier1-OSR)
         350 (22.46 % of base) : 3182.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:.ctor(System.String):this (Tier0-FullOpts)
          18 (20.69 % of base) : 63149.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:IsNullableType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Tier1)
          50 (17.18 % of base) : 39530.dasm - Fourier:Run():double:this (Tier1)
          18 (17.14 % of base) : 67477.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
          26 (16.88 % of base) : 49141.dasm - Neural:check_out_error():int (Tier1)
          26 (16.88 % of base) : 46706.dasm - NeuralJagged:check_out_error():int (Tier1)
           3 (15.79 % of base) : 74261.dasm - System.Collections.IntStruct:CompareTo(System.Collections.IntStruct):int:this (Tier1)
          18 (15.65 % of base) : 67471.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitNonConstructorMethodBody(Microsoft.CodeAnalysis.CSharp.BoundNonConstructorMethodBody):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
          75 (15.34 % of base) : 71860.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int (Tier1-OSR)
          87 (14.15 % of base) : 88249.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:TryMatch(byref,int,byref,uint,byref):ubyte:this (Tier1)
          92 (13.77 % of base) : 94034.dasm - System.Text.Ascii:NarrowUtf16ToAscii_Intrinsified_256(ulong,ulong,ulong):ulong (Tier1)
         167 (12.86 % of base) : 43527.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         125 (12.38 % of base) : 48950.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
           3 (12.00 % of base) : 15243.dasm - System.LocalAppContextSwitches:GetCachedSwitchValue(System.String,byref):ubyte (Tier1)
         410 (12.00 % of base) : 101953.dasm - StringSort:Run():double:this (Tier1)
         151 (11.55 % of base) : 43756.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier1)
          17 (11.41 % of base) : 66815.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:StrippedType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)
           2 (11.11 % of base) : 36163.dasm - System.Int32:CompareTo(int):int:this (Tier1)

Top method improvements (percentages):
        -145 (-36.34 % of base) : 70427.dasm - System.Threading.ReaderWriterLockSlim:GetThreadRWCount(ubyte):System.Threading.ReaderWriterCount:this (Tier1)
          -6 (-30.00 % of base) : 78054.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 37746.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 39946.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 50925.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 65730.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 23837.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 39718.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 73441.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 79118.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 79562.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 84941.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 89805.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 99465.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 30978.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 32717.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 39102.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 47137.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 75125.dasm - System.Math:Max(short,short):short (Tier1)
          -6 (-30.00 % of base) : 41470.dasm - System.Math:Min(short,short):short (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: 12429625 (overridden on cmd)
Total bytes of diff: 12424222 (overridden on cmd)
Total bytes of delta: -5403 (-0.04 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1411 : 46501.dasm (8.67 % of base)
        1297 : 9850.dasm (7.48 % of base)
         525 : 40174.dasm (10.78 % of base)
         416 : 23690.dasm (7.70 % of base)
         376 : 17145.dasm (26.20 % of base)
         307 : 51061.dasm (3.82 % of base)
         272 : 43817.dasm (3.14 % of base)
         269 : 23722.dasm (3.12 % of base)
         205 : 46555.dasm (5.76 % of base)
         204 : 25719.dasm (1.71 % of base)
         183 : 29634.dasm (5.79 % of base)
         179 : 29908.dasm (12.86 % of base)
         171 : 28129.dasm (14.38 % of base)
         169 : 39463.dasm (3.99 % of base)
         158 : 32652.dasm (4.87 % of base)
         128 : 52873.dasm (1.91 % of base)
         121 : 28283.dasm (8.44 % of base)
         121 : 29089.dasm (11.28 % of base)
         115 : 30571.dasm (4.99 % of base)
         109 : 29912.dasm (6.06 % of base)

Top file improvements (bytes):
        -113 : 39947.dasm (-10.01 % of base)
         -95 : 46745.dasm (-1.92 % of base)
         -93 : 27157.dasm (-5.05 % of base)
         -89 : 27158.dasm (-5.50 % of base)
         -78 : 30895.dasm (-0.91 % of base)
         -78 : 41798.dasm (-5.73 % of base)
         -72 : 32654.dasm (-0.87 % of base)
         -72 : 30991.dasm (-1.51 % of base)
         -72 : 46557.dasm (-0.70 % of base)
         -69 : 30368.dasm (-1.52 % of base)
         -69 : 30373.dasm (-1.48 % of base)
         -69 : 41905.dasm (-2.42 % of base)
         -60 : 24096.dasm (-6.49 % of base)
         -59 : 39650.dasm (-1.60 % of base)
         -58 : 45742.dasm (-4.93 % of base)
         -43 : 24318.dasm (-3.26 % of base)
         -42 : 22220.dasm (-3.76 % of base)
         -34 : 40952.dasm (-1.71 % of base)
         -32 : 22494.dasm (-1.42 % of base)
         -32 : 47843.dasm (-17.20 % of base)

88 total files with Code Size differences (44 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
        1411 (8.67 % of base) : 46501.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        1297 (7.48 % of base) : 9850.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         525 (10.78 % of base) : 40174.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         416 (7.70 % of base) : 23690.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
         376 (26.20 % of base) : 17145.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:.ctor(System.String):this (Tier0-FullOpts)
         307 (3.82 % of base) : 51061.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
         272 (3.14 % of base) : 43817.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1-OSR)
         269 (3.12 % of base) : 23722.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
         205 (5.76 % of base) : 46555.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1-OSR)
         204 (1.71 % of base) : 25719.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         183 (5.79 % of base) : 29634.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
         179 (12.86 % of base) : 29908.dasm - Utility:sscanf(System.String,System.String,System.Object[]):int (Tier1)
         171 (14.38 % of base) : 28129.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         169 (3.99 % of base) : 39463.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetWellKnownType(int):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         158 (4.87 % of base) : 32652.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
         128 (1.91 % of base) : 52873.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         121 (8.44 % of base) : 28283.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier1-OSR)
         121 (11.28 % of base) : 29089.dasm - IDEAEncryption:cipher_idea(ubyte[],ubyte[],int,ushort[]) (Tier1)
         115 (4.99 % of base) : 30571.dasm - Neural:read_data_file():this (Tier1)
         109 (6.06 % of base) : 29912.dasm - NeuralJagged:read_data_file():this (Tier1)

Top method improvements (bytes):
        -113 (-10.01 % of base) : 39947.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (Tier1)
         -95 (-1.92 % of base) : 46745.dasm - System.Xml.Schema.XsdDuration:TryFormat(System.Span`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
         -93 (-5.05 % of base) : 27157.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1-OSR)
         -89 (-5.50 % of base) : 27158.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1)
         -78 (-0.91 % of base) : 30895.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
         -78 (-5.73 % of base) : 41798.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxNodeExtensions:SkipRefWorker(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax (Tier1)
         -72 (-0.87 % of base) : 32654.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1)
         -72 (-0.70 % of base) : 46557.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier1)
         -72 (-1.51 % of base) : 30991.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -69 (-2.42 % of base) : 41905.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxExtensions:VisitRankSpecifiers[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]](Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,System.Action`2[System.__Canon,System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]],byref) (Tier1)
         -69 (-1.52 % of base) : 30368.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -69 (-1.48 % of base) : 30373.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -60 (-6.49 % of base) : 24096.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
         -59 (-1.60 % of base) : 39650.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|199_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (Tier1)
         -58 (-4.93 % of base) : 45742.dasm - BenchmarksGame.FannkuchRedux_9:Run(int,int) (Tier0-FullOpts)
         -43 (-3.26 % of base) : 24318.dasm - System.Reflection.AssemblyNameParser:Parse():System.Reflection.AssemblyNameParser+AssemblyNameParts:this (Tier1)
         -42 (-3.76 % of base) : 22220.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (Tier1)
         -34 (-1.71 % of base) : 40952.dasm - Benchstone.BenchI.Puzzle:DoIt():ubyte:this (Tier1-OSR)
         -32 (-17.20 % of base) : 47843.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjObjrefValueType():this (Tier1-OSR)
         -32 (-1.42 % of base) : 22494.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)

Top method regressions (percentages):
         376 (26.20 % of base) : 17145.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:.ctor(System.String):this (Tier0-FullOpts)
          28 (18.18 % of base) : 30567.dasm - Neural:check_out_error():int (Tier1)
          28 (18.18 % of base) : 29894.dasm - NeuralJagged:check_out_error():int (Tier1)
          16 (17.98 % of base) : 31930.dasm - System.Collections.Generic.ValueListBuilder`1[int]:AsSpan():System.ReadOnlySpan`1[int]:this (Tier1)
          16 (17.98 % of base) : 13988.dasm - System.Collections.Generic.ValueListBuilder`1[ushort]:AsSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
          16 (17.98 % of base) : 7063.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:get_Text():System.ReadOnlySpan`1[ushort]:this (Tier1)
          16 (17.98 % of base) : 9981.dasm - System.Text.ValueStringBuilder:AsSpan():System.ReadOnlySpan`1[ushort]:this (Tier1)
         171 (14.38 % of base) : 28129.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          64 (14.16 % of base) : 40987.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int (Tier1-OSR)
          14 (13.46 % of base) : 48321.dasm - System.Buffers.StringSearchValuesHelper:ValidateReadPosition(byref,int,byref,int) (Tier1)
         179 (12.86 % of base) : 29908.dasm - Utility:sscanf(System.String,System.String,System.Object[]):int (Tier1)
          34 (12.27 % of base) : 15756.dasm - System.Net.Sockets.SocketAddressExtensions:GetIPAddress(System.Net.SocketAddress):System.Net.IPAddress (Tier1)
           8 (12.12 % of base) : 25582.dasm - System.Type:get_DefaultBinder():System.Reflection.Binder (Tier1)
         108 (11.80 % of base) : 30663.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          20 (11.70 % of base) : 10040.dasm - System.Text.ValueStringBuilder:AsSpan(ubyte):System.ReadOnlySpan`1[ushort]:this (Tier1)
          18 (11.32 % of base) : 42245.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Unsplit():this (Tier1)
         121 (11.28 % of base) : 29089.dasm - IDEAEncryption:cipher_idea(ubyte[],ubyte[],int,ushort[]) (Tier1)
         525 (10.78 % of base) : 40174.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
          41 (10.73 % of base) : 50761.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex13_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          26 (10.70 % of base) : 14230.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)

Top method improvements (percentages):
         -28 (-21.21 % of base) : 5145.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier1-OSR)
         -28 (-20.90 % of base) : 31534.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjScalarValueType():this (Tier1-OSR)
         -10 (-19.61 % of base) : 6669.dasm - (dynamicClass):Int1Getter(System.Object):int (FullOpts)
         -10 (-19.23 % of base) : 29272.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
         -10 (-19.23 % of base) : 6638.dasm - (dynamicClass):String1Getter(System.Object):System.String (FullOpts)
         -10 (-18.18 % of base) : 6800.dasm - (dynamicClass):Int1Setter(System.Object,int) (FullOpts)
         -10 (-17.86 % of base) : 30642.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
         -32 (-17.20 % of base) : 47843.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjObjrefValueType():this (Tier1-OSR)
         -21 (-15.33 % of base) : 12090.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:TryEnqueue(System.Threading.PortableThreadPool+IOCompletionPoller+Event):ubyte:this (Tier1)
         -10 (-15.15 % of base) : 6788.dasm - (dynamicClass):String1Setter(System.Object,System.String) (FullOpts)
         -10 (-14.29 % of base) : 10010.dasm - System.Threading.AsyncLocal`1[ubyte]:get_Value():ubyte:this (Tier1)
         -25 (-14.20 % of base) : 27812.dasm - Span.Sorting:TestBubbleSortArray(int[]) (Tier1)
         -30 (-12.71 % of base) : 50775.dasm - Benchstone.BenchI.Array1:Quick(int,int,int[]) (Tier1-OSR)
         -25 (-10.64 % of base) : 52308.dasm - Benchstone.BenchI.BubbleSort:SortArray(int[],int) (Tier1-OSR)
         -25 (-10.59 % of base) : 25948.dasm - Fourier:TrapezoidIntegrate(double,double,int,double,int):double (Tier1)
         -25 (-10.55 % of base) : 27810.dasm - Span.Sorting:TestBubbleSortArray(int[]) (Tier1-OSR)
          -9 (-10.11 % of base) : 51568.dasm - IfStatements.IfStatements:Single():this (Tier1-OSR)
         -10 (-10.10 % of base) : 19263.dasm - (dynamicClass):lambda_method19(System.Runtime.CompilerServices.Closure,System.Object,System.Object) (FullOpts)
        -113 (-10.01 % of base) : 39947.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (Tier1)
         -10 (-10.00 % of base) : 15803.dasm - System.Reflection.MetadataImport:Equals(System.Object):ubyte:this (Tier1)


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: 404049115 (overridden on cmd)
Total bytes of diff: 405399978 (overridden on cmd)
Total bytes of delta: 1350863 (0.33 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        3380 : 514370.dasm (3.65 % of base)
        3380 : 514384.dasm (3.65 % of base)
        3380 : 520049.dasm (3.65 % of base)
        3380 : 520051.dasm (3.65 % of base)
        3059 : 513973.dasm (1.88 % of base)
        3059 : 513978.dasm (1.88 % of base)
        2781 : 514809.dasm (3.11 % of base)
        2754 : 520083.dasm (15.39 % of base)
        2754 : 514486.dasm (15.39 % of base)
        2613 : 520075.dasm (15.56 % of base)
        2507 : 520081.dasm (14.49 % of base)
        2507 : 514481.dasm (14.49 % of base)
        2462 : 514491.dasm (13.60 % of base)
        2462 : 520085.dasm (13.60 % of base)
        2460 : 514814.dasm (2.62 % of base)
        2424 : 514501.dasm (13.74 % of base)
        2424 : 520089.dasm (13.74 % of base)
        2288 : 520067.dasm (12.99 % of base)
        2216 : 514428.dasm (11.68 % of base)
        2211 : 520072.dasm (11.44 % of base)

Top file improvements (bytes):
        -694 : 527002.dasm (-3.54 % of base)
        -624 : 473904.dasm (-5.82 % of base)
        -566 : 490604.dasm (-5.82 % of base)
        -553 : 539190.dasm (-5.64 % of base)
        -527 : 564528.dasm (-7.61 % of base)
        -525 : 514474.dasm (-0.57 % of base)
        -496 : 537224.dasm (-7.41 % of base)
        -481 : 550056.dasm (-9.56 % of base)
        -479 : 514410.dasm (-0.51 % of base)
        -439 : 556494.dasm (-7.62 % of base)
        -439 : 561741.dasm (-4.62 % of base)
        -420 : 558377.dasm (-4.05 % of base)
        -419 : 534179.dasm (-5.41 % of base)
        -414 : 558434.dasm (-4.13 % of base)
        -413 : 560749.dasm (-4.74 % of base)
        -406 : 557237.dasm (-7.94 % of base)
        -406 : 547742.dasm (-7.96 % of base)
        -384 : 555996.dasm (-5.94 % of base)
        -381 : 556667.dasm (-3.68 % of base)
        -380 : 566779.dasm (-4.51 % of base)

99 total files with Code Size differences (50 improved, 49 regressed), 20 unchanged.

Top method regressions (bytes):
        3380 (3.65 % of base) : 514370.dasm - overlddiv:TestEntryPoint():int (FullOpts)
        3380 (3.65 % of base) : 520049.dasm - overlddiv:TestEntryPoint():int (FullOpts)
        3380 (3.65 % of base) : 514384.dasm - overldrem:TestEntryPoint():int (FullOpts)
        3380 (3.65 % of base) : 520051.dasm - overldrem:TestEntryPoint():int (FullOpts)
        3059 (1.88 % of base) : 513973.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
        3059 (1.88 % of base) : 513978.dasm - decimalrem:TestEntryPoint():int (FullOpts)
        2781 (3.11 % of base) : 514809.dasm - u4div:TestEntryPoint():int (FullOpts)
        2754 (15.39 % of base) : 520083.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        2754 (15.39 % of base) : 514486.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        2613 (15.56 % of base) : 520075.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
        2507 (14.49 % of base) : 520081.dasm - r8NaNadd:TestEntryPoint():int (FullOpts)
        2507 (14.49 % of base) : 514481.dasm - r8NaNadd:TestEntryPoint():int (FullOpts)
        2462 (13.60 % of base) : 514491.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
        2462 (13.60 % of base) : 520085.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
        2460 (2.62 % of base) : 514814.dasm - u4rem:TestEntryPoint():int (FullOpts)
        2424 (13.74 % of base) : 514501.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
        2424 (13.74 % of base) : 520089.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
        2288 (12.99 % of base) : 520067.dasm - r4NaNdiv:TestEntryPoint():int (FullOpts)
        2216 (11.68 % of base) : 514428.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
        2211 (11.44 % of base) : 520072.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)

Top method improvements (bytes):
        -694 (-3.54 % of base) : 527002.dasm - System.Xml.Xsl.IlGen.XmlILMethods:.cctor() (FullOpts)
        -624 (-5.82 % of base) : 473904.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        -566 (-5.82 % of base) : 490604.dasm - Product:CreateLists() (FullOpts)
        -553 (-5.64 % of base) : 539190.dasm - Generated1134:MethodCallingTest() (FullOpts)
        -527 (-7.61 % of base) : 564528.dasm - Generated910:MethodCallingTest() (FullOpts)
        -525 (-0.57 % of base) : 514474.dasm - r8div:TestEntryPoint():int (FullOpts)
        -496 (-7.41 % of base) : 537224.dasm - Generated1081:MethodCallingTest() (FullOpts)
        -481 (-9.56 % of base) : 550056.dasm - Generated1484:MethodCallingTest() (FullOpts)
        -479 (-0.51 % of base) : 514410.dasm - r4div:TestEntryPoint():int (FullOpts)
        -439 (-7.62 % of base) : 556494.dasm - Generated639:MethodCallingTest() (FullOpts)
        -439 (-4.62 % of base) : 561741.dasm - Generated819:MethodCallingTest() (FullOpts)
        -420 (-4.05 % of base) : 558377.dasm - Generated708:MethodCallingTest() (FullOpts)
        -419 (-5.41 % of base) : 534179.dasm - Generated1009:MethodCallingTest() (FullOpts)
        -414 (-4.13 % of base) : 558434.dasm - Generated710:MethodCallingTest() (FullOpts)
        -413 (-4.74 % of base) : 560749.dasm - Generated787:MethodCallingTest() (FullOpts)
        -406 (-7.96 % of base) : 547742.dasm - Generated1399:MethodCallingTest() (FullOpts)
        -406 (-7.94 % of base) : 557237.dasm - Generated665:MethodCallingTest() (FullOpts)
        -384 (-5.94 % of base) : 555996.dasm - Generated620:MethodCallingTest() (FullOpts)
        -381 (-3.68 % of base) : 556667.dasm - Generated645:MethodCallingTest() (FullOpts)
        -380 (-4.51 % of base) : 566779.dasm - Generated980:MethodCallingTest() (FullOpts)

Top method regressions (percentages):
         164 (57.14 % of base) : 511272.dasm - Test_10w5d.testout1:Func_0_6_6():double (FullOpts)
         164 (57.14 % of base) : 517708.dasm - Test_10w5d.testout1:Func_0_6_6():double (FullOpts)
          62 (48.44 % of base) : 394925.dasm - StdCallMemberFunctionTest:get_UnmanagedCallersOnlyVtable():ulong (FullOpts)
          62 (48.44 % of base) : 395898.dasm - ThisCallTest:get_UnmanagedCallersOnlyVtable():ulong (FullOpts)
          53 (43.80 % of base) : 521662.dasm - SideEffects:main():int (FullOpts)
          82 (41.00 % of base) : 513110.dasm - Test_10w5d.testout1:Func_0_3_2_6():float (FullOpts)
          82 (41.00 % of base) : 519339.dasm - Test_10w5d.testout1:Func_0_3_2_6():float (FullOpts)
          94 (40.17 % of base) : 515348.dasm - structinreg.Program4:test3(long,structinreg.Test43,structinreg.Test43,structinreg.Test43,structinreg.Test43):double (FullOpts)
          94 (40.17 % of base) : 515349.dasm - structinreg.Program4:test4(long,structinreg.Test44,structinreg.Test44,structinreg.Test44,structinreg.Test44):float (FullOpts)
          94 (40.17 % of base) : 515352.dasm - structinreg.Program4:test7(long,structinreg.Test43,structinreg.Test43,structinreg.Test43,structinreg.Test43):double (FullOpts)
          94 (40.17 % of base) : 515353.dasm - structinreg.Program4:test8(long,structinreg.Test44,structinreg.Test44,structinreg.Test44,structinreg.Test44):float (FullOpts)
          43 (39.45 % of base) : 515321.dasm - structinreg.Program2:test24(int,int,int,int,int,int,int,structinreg.Foo1):int (FullOpts)
         128 (38.55 % of base) : 513301.dasm - Test_10w5d.testout1:Func_0_2_3_4():double (FullOpts)
         122 (37.20 % of base) : 519530.dasm - Test_10w5d.testout1:Func_0_2_3_4():double (FullOpts)
          31 (36.47 % of base) : 581115.dasm - Microsoft.Build.Framework.NativeMethods:get_IsOSX():ubyte (FullOpts)
         160 (36.12 % of base) : 517377.dasm - JitTest_s_ldsfld_mulovf_signed_il.Test:Main():int (FullOpts)
         160 (35.96 % of base) : 517381.dasm - JitTest_s_ldsfld_mul_signed_il.Test:Main():int (FullOpts)
         670 (35.92 % of base) : 478751.dasm - VectorTest:TestEntryPoint():int (FullOpts)
         158 (35.27 % of base) : 514668.dasm - JitTest_s_ldsfld_mulovf_signed_cs.Test:TestEntryPoint():int (FullOpts)
         158 (35.11 % of base) : 514671.dasm - JitTest_s_ldsfld_mul_signed_cs.Test:TestEntryPoint():int (FullOpts)

Top method improvements (percentages):
          -6 (-30.00 % of base) : 62913.dasm - System.Math:Max(byte,byte):byte (Tier1)
         -11 (-29.73 % of base) : 280883.dasm - FinalizeTimeout:ThreadMain() (Tier1-OSR)
          -5 (-29.41 % of base) : 62413.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
         -62 (-28.97 % of base) : 1060.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Instrumented Tier1)
         -10 (-24.39 % of base) : 584205.dasm - Tracing.Tests.EventListenerThreadPool+<>c:<TestEntryPoint>b__0_0(System.Object,ubyte):this (FullOpts)
         -16 (-23.53 % of base) : 395781.dasm - NativeVarargTest.VarArg:TestEchoOneFloatStructManagedNoVararg():ubyte (FullOpts)
         -16 (-22.54 % of base) : 395818.dasm - NativeVarargTest.VarArg:TestEchoOneFloatStructManaged():ubyte (FullOpts)
         -16 (-21.62 % of base) : 395783.dasm - NativeVarargTest.VarArg:TestEchoOneDoubleStructManagedNoVararg():ubyte (FullOpts)
        -140 (-21.18 % of base) : 396104.dasm - StructABI:NotEnoughRegistersSysV6Wrapper():ubyte (FullOpts)
        -130 (-20.87 % of base) : 396108.dasm - StructABI:EnoughRegistersSysV4Wrapper():ubyte (FullOpts)
         -16 (-20.78 % of base) : 395822.dasm - NativeVarargTest.VarArg:TestEchoOneDoubleStructManaged():ubyte (FullOpts)
         -16 (-20.78 % of base) : 395847.dasm - NativeVarargTest.VarArg:TestEchoOneFloatStructNoVararg():ubyte (FullOpts)
         -10 (-20.00 % of base) : 477439.dasm - BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
         -10 (-19.61 % of base) : 240404.dasm - Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
         -16 (-19.28 % of base) : 395849.dasm - NativeVarargTest.VarArg:TestEchoOneDoubleStructNoVararg():ubyte (FullOpts)
        -118 (-18.38 % of base) : 396107.dasm - StructABI:EnoughRegistersSysV3Wrapper():ubyte (FullOpts)
        -100 (-18.08 % of base) : 491256.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
        -118 (-17.93 % of base) : 396100.dasm - StructABI:NotEnoughRegistersSysV4Wrapper():ubyte (FullOpts)
         -20 (-17.54 % of base) : 514677.dasm - BoxTest_tailjump_cs.Test:Fibonacci(System.Object,System.Object):System.Object:this (FullOpts)
         -10 (-17.54 % of base) : 578261.dasm - NullableTest:BoxUnboxToNQ(System.ValueType):ubyte (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: 45123608 (overridden on cmd)
Total bytes of diff: 45134272 (overridden on cmd)
Total bytes of delta: 10664 (0.02 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1171 : 51775.dasm (19.34 % of base)
        1041 : 61802.dasm (8.49 % of base)
         605 : 266772.dasm (26.04 % of base)
         477 : 10989.dasm (4.83 % of base)
         443 : 80573.dasm (6.08 % of base)
         443 : 139383.dasm (6.08 % of base)
         428 : 194051.dasm (11.99 % of base)
         404 : 232885.dasm (5.40 % of base)
         372 : 173342.dasm (7.82 % of base)
         352 : 80664.dasm (7.42 % of base)
         352 : 139466.dasm (7.42 % of base)
         349 : 162925.dasm (19.55 % of base)
         318 : 36034.dasm (0.38 % of base)
         304 : 1481.dasm (0.47 % of base)
         295 : 188424.dasm (9.18 % of base)
         294 : 155312.dasm (6.22 % of base)
         289 : 193753.dasm (7.16 % of base)
         286 : 265700.dasm (7.53 % of base)
         268 : 174862.dasm (4.89 % of base)
         262 : 240623.dasm (11.48 % of base)

Top file improvements (bytes):
       -1107 : 96812.dasm (-3.59 % of base)
       -1072 : 121425.dasm (-4.01 % of base)
       -1072 : 59542.dasm (-4.01 % of base)
        -328 : 230587.dasm (-3.53 % of base)
        -188 : 153814.dasm (-4.79 % of base)
        -152 : 173058.dasm (-3.45 % of base)
        -149 : 234889.dasm (-10.42 % of base)
        -140 : 26071.dasm (-6.32 % of base)
        -130 : 31326.dasm (-5.68 % of base)
        -128 : 89964.dasm (-2.55 % of base)
        -126 : 173817.dasm (-14.14 % of base)
        -126 : 173818.dasm (-14.14 % of base)
        -126 : 224937.dasm (-9.37 % of base)
        -123 : 203998.dasm (-2.82 % of base)
        -122 : 154106.dasm (-6.30 % of base)
        -119 : 173047.dasm (-8.62 % of base)
        -118 : 161556.dasm (-2.76 % of base)
        -115 : 156491.dasm (-1.81 % of base)
        -114 : 161470.dasm (-5.22 % of base)
        -114 : 52416.dasm (-5.26 % of base)

93 total files with Code Size differences (43 improved, 50 regressed), 20 unchanged.

Top method regressions (bytes):
        1171 (19.34 % of base) : 51775.dasm - Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime:SetupCallbacks(Microsoft.Diagnostics.Tracing.TraceEventDispatcher) (FullOpts)
        1041 (8.49 % of base) : 61802.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
         605 (26.04 % of base) : 266772.dasm - CommandLine.Core.SpecificationPropertyRules+<>c:<EnforceRequired>b__5_0(System.Collections.Generic.IEnumerable`1[CommandLine.Core.SpecificationProperty]):System.Collections.Generic.IEnumerable`1[CommandLine.Error]:this (FullOpts)
         477 (4.83 % of base) : 10989.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         443 (6.08 % of base) : 80573.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         443 (6.08 % of base) : 139383.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         428 (11.99 % of base) : 194051.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         404 (5.40 % of base) : 232885.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         372 (7.82 % of base) : 173342.dasm - System.Data.DataTable:DeserializeTableSchema(System.Runtime.Serialization.SerializationInfo,ubyte):this (FullOpts)
         352 (7.42 % of base) : 80664.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator:GetTypeAndRefKind(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator+TypeAndRefKind:this (FullOpts)
         352 (7.42 % of base) : 139466.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator:GetTypeAndRefKind(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator+TypeAndRefKind:this (FullOpts)
         349 (19.55 % of base) : 162925.dasm - System.Data.OleDb.OleDbDataReader:CreateBindingsFromMetaData(ubyte):System.Data.OleDb.Bindings[]:this (FullOpts)
         318 (0.38 % of base) : 36034.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         304 (0.47 % of base) : 1481.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
         295 (9.18 % of base) : 188424.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F447D24802EE9EBA703B0F892936D2E7874E330AA8392ACC18BB3A9BCD48147D3__GetSectionMatcherRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         294 (6.22 % of base) : 155312.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
         289 (7.16 % of base) : 193753.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMostSpecific(System.Reflection.MethodBase,System.Reflection.MethodBase,int[],System.Object[],ubyte,int,int,System.Object[]):int:this (FullOpts)
         286 (7.53 % of base) : 265700.dasm - System.Linq.Parallel.SortHelper`2[System.__Canon,System.__Canon]:MergeSortCooperatively():this (FullOpts)
         268 (4.89 % of base) : 174862.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
         262 (11.48 % of base) : 240623.dasm - System.DirectoryServices.Protocols.DirectoryControl:TransformControls(System.DirectoryServices.Protocols.DirectoryControl[]) (FullOpts)

Top method improvements (bytes):
       -1107 (-3.59 % of base) : 96812.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
       -1072 (-4.01 % of base) : 121425.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
       -1072 (-4.01 % of base) : 59542.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -328 (-3.53 % of base) : 230587.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        -188 (-4.79 % of base) : 153814.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
        -152 (-3.45 % of base) : 173058.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -149 (-10.42 % of base) : 234889.dasm - System.Web.Util.HttpEncoder:UrlDecode(System.String,System.Text.Encoding):System.String (FullOpts)
        -140 (-6.32 % of base) : 26071.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
        -130 (-5.68 % of base) : 31326.dasm - System.Diagnostics.Tracing.EventProvider:EncodeObject(byref,byref,byref,byref):System.Object (FullOpts)
        -128 (-2.55 % of base) : 89964.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:MakeVarianceConversionSuggestion(int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref,ubyte):ubyte:this (FullOpts)
        -126 (-9.37 % of base) : 224937.dasm - Newtonsoft.Json.JsonConvert:ToString(System.Object):System.String (FullOpts)
        -126 (-14.14 % of base) : 173817.dasm - System.Data.RBTree`1[System.__Canon]:LeftRotate(int,int,int):int:this (FullOpts)
        -126 (-14.14 % of base) : 173818.dasm - System.Data.RBTree`1[System.__Canon]:RightRotate(int,int,int):int:this (FullOpts)
        -123 (-2.82 % of base) : 203998.dasm - System.DirectoryServices.DirectorySearcher:SetSearchPreferences(System.DirectoryServices.UnsafeNativeMethods+IDirectorySearch,ubyte):this (FullOpts)
        -122 (-6.30 % of base) : 154106.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -119 (-8.62 % of base) : 173047.dasm - System.Data.Common.SqlConvert:ConvertToSqlDouble(System.Object):System.Data.SqlTypes.SqlDouble (FullOpts)
        -118 (-2.76 % of base) : 161556.dasm - System.Runtime.Serialization.DataContracts.CollectionDataContract:IsCollectionOrTryCreate(System.Type,ubyte,byref,byref,ubyte,ubyte):ubyte (FullOpts)
        -115 (-1.81 % of base) : 156491.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteElements(System.String,System.String,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte):this (FullOpts)
        -114 (-5.26 % of base) : 52416.dasm - Microsoft.Diagnostics.Tracing.Etlx.TraceLog+<>c__DisplayClass85_0:<CopyRawEvents>b__1(Microsoft.Diagnostics.Tracing.TraceEvent):this (FullOpts)
        -114 (-5.22 % of base) : 161470.dasm - System.Runtime.Serialization.ExtensionDataReader:MoveToText(System.Type,System.Runtime.Serialization.IDataNode,ubyte):ubyte:this (FullOpts)

Top method regressions (percentages):
          10 (32.26 % of base) : 115615.dasm - Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
         605 (26.04 % of base) : 266772.dasm - CommandLine.Core.SpecificationPropertyRules+<>c:<EnforceRequired>b__5_0(System.Collections.Generic.IEnumerable`1[CommandLine.Core.SpecificationProperty]):System.Collections.Generic.IEnumerable`1[CommandLine.Error]:this (FullOpts)
           9 (25.00 % of base) : 107633.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           9 (25.00 % of base) : 107615.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           9 (25.00 % of base) : 107614.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           9 (25.00 % of base) : 107634.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          14 (22.22 % of base) : 234633.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.__Canon[],int,int) (FullOpts)
         349 (19.55 % of base) : 162925.dasm - System.Data.OleDb.OleDbDataReader:CreateBindingsFromMetaData(ubyte):System.Data.OleDb.Bindings[]:this (FullOpts)
        1171 (19.34 % of base) : 51775.dasm - Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime:SetupCallbacks(Microsoft.Diagnostics.Tracing.TraceEventDispatcher) (FullOpts)
           4 (18.18 % of base) : 72053.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AbstractLexer:GetLexemeOffsetFromPosition(int):int:this (FullOpts)
           4 (18.18 % of base) : 132777.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AbstractLexer:GetLexemeOffsetFromPosition(int):int:this (FullOpts)
           8 (17.39 % of base) : 55331.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
           8 (17.39 % of base) : 117733.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
          28 (16.97 % of base) : 190289.dasm - Microsoft.CodeAnalysis.CachingFactory`2[System.__Canon,System.__Canon]:GetOrMakeValue(System.__Canon):System.__Canon:this (FullOpts)
          28 (16.97 % of base) : 220144.dasm - Microsoft.CodeAnalysis.CachingFactory`2[System.__Canon,System.__Canon]:GetOrMakeValue(System.__Canon):System.__Canon:this (FullOpts)
         193 (16.26 % of base) : 95107.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution,Microsoft.CodeAnalysis.VisualBasic.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeWithModifiers],ubyte):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution (FullOpts)
         193 (16.15 % of base) : 103704.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:ParseXmlProcessingInstruction(int,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlWhitespaceChecker):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlProcessingInstructionSyntax:this (FullOpts)
          24 (15.09 % of base) : 4114.dasm - Microsoft.FSharp.Collections.FSharpSet`1[System.__Canon]:Filter(Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,ubyte]):Microsoft.FSharp.Collections.FSharpSet`1[System.__Canon]:this (FullOpts)
          20 (13.99 % of base) : 141126.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:<ToTypeWithState>g__getFlowState|82_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):ubyte (FullOpts)
          20 (13.99 % of base) : 82383.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:<ToTypeWithState>g__getFlowState|82_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):ubyte (FullOpts)

Top method improvements (percentages):
         -10 (-24.39 % of base) : 31052.dasm - System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)
         -11 (-22.92 % of base) : 177103.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
         -34 (-17.89 % of base) : 9369.dasm - System.MathF:ILogB(float):int (FullOpts)
         -14 (-15.73 % of base) : 261101.dasm - System.Linq.Enumerable+RangeIterator:Skip(int):System.Linq.IPartition`1[int]:this (FullOpts)
         -21 (-15.44 % of base) : 32209.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:TryEnqueue(System.Threading.PortableThreadPool+IOCompletionPoller+Event):ubyte:this (FullOpts)
         -62 (-15.38 % of base) : 178743.dasm - Roslyn.Utilities.EnumUtilities:ConvertEnumUnderlyingTypeToUInt64(System.Object,byte):ulong (FullOpts)
         -62 (-15.38 % of base) : 209059.dasm - Roslyn.Utilities.EnumUtilities:ConvertEnumUnderlyingTypeToUInt64(System.Object,byte):ulong (FullOpts)
         -69 (-15.30 % of base) : 248348.dasm - Microsoft.VisualBasic.VBCodeGenerator:GenerateComment(System.CodeDom.CodeComment):this (FullOpts)
          -7 (-15.22 % of base) : 232284.dasm - System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):long:this (FullOpts)
          -7 (-14.89 % of base) : 180683.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
          -7 (-14.89 % of base) : 210969.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
         -70 (-14.77 % of base) : 225939.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (FullOpts)
          -9 (-14.29 % of base) : 177207.dasm - System.Dynamic.DynamicObject+MetaDynamic:GetDynamicMemberNames():System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
        -126 (-14.14 % of base) : 173817.dasm - System.Data.RBTree`1[System.__Canon]:LeftRotate(int,int,int):int:this (FullOpts)
        -126 (-14.14 % of base) : 173818.dasm - System.Data.RBTree`1[System.__Canon]:RightRotate(int,int,int):int:this (FullOpts)
          -7 (-13.73 % of base) : 54296.dasm - System.Data.Odbc.OdbcDataReader:GetInt32(int):int:this (FullOpts)
         -73 (-13.70 % of base) : 176958.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+ToUnderlying:Convert(System.Object):System.Object:this (FullOpts)
         -60 (-13.61 % of base) : 248474.dasm - Microsoft.CSharp.CSharpCodeGenerator:GenerateComment(System.CodeDom.CodeComment):this (FullOpts)
         -77 (-13.56 % of base) : 24296.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -83 (-13.54 % of base) : 176954.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Unchecked:Convert(System.Object):System.Object:this (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: 62129258 (overridden on cmd)
Total bytes of diff: 62308680 (overridden on cmd)
Total bytes of delta: 179422 (0.29 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        2158 : 134521.dasm (10.69 % of base)
        1663 : 256286.dasm (14.59 % of base)
        1549 : 220553.dasm (11.83 % of base)
        1364 : 132558.dasm (15.41 % of base)
        1244 : 37189.dasm (1.37 % of base)
        1074 : 37458.dasm (4.73 % of base)
        1040 : 37779.dasm (4.94 % of base)
         974 : 206120.dasm (14.64 % of base)
         951 : 218249.dasm (21.83 % of base)
         856 : 85749.dasm (6.24 % of base)
         849 : 238197.dasm (7.97 % of base)
         832 : 146902.dasm (4.25 % of base)
         832 : 187598.dasm (4.25 % of base)
         806 : 218228.dasm (14.84 % of base)
         766 : 211346.dasm (23.86 % of base)
         766 : 95074.dasm (23.86 % of base)
         737 : 175959.dasm (7.67 % of base)
         695 : 162320.dasm (2.44 % of base)
         674 : 162334.dasm (11.19 % of base)
         640 : 148495.dasm (3.95 % of base)

Top file improvements (bytes):
       -1791 : 103729.dasm (-5.18 % of base)
        -624 : 142177.dasm (-5.82 % of base)
        -423 : 61624.dasm (-9.27 % of base)
        -409 : 3570.dasm (-15.55 % of base)
        -379 : 118724.dasm (-7.15 % of base)
        -364 : 137992.dasm (-1.56 % of base)
        -360 : 294004.dasm (-8.78 % of base)
        -346 : 110895.dasm (-3.85 % of base)
        -343 : 101226.dasm (-9.25 % of base)
        -320 : 209801.dasm (-3.63 % of base)
        -267 : 96389.dasm (-1.63 % of base)
        -258 : 218264.dasm (-2.67 % of base)
        -255 : 58719.dasm (-8.21 % of base)
        -242 : 62811.dasm (-2.04 % of base)
        -237 : 96476.dasm (-2.50 % of base)
        -232 : 140378.dasm (-4.31 % of base)
        -229 : 211110.dasm (-3.90 % of base)
        -229 : 313896.dasm (-7.26 % of base)
        -218 : 9959.dasm (-12.30 % of base)
        -212 : 96427.dasm (-3.18 % of base)

93 total files with Code Size differences (43 improved, 50 regressed), 20 unchanged.

Top method regressions (bytes):
        2158 (10.69 % of base) : 134521.dasm - System.Xml.Schema.XsdBuilder:.cctor() (FullOpts)
        1663 (14.59 % of base) : 256286.dasm - R2RTest.R2RTestRootCommand:.ctor():this (FullOpts)
        1549 (11.83 % of base) : 220553.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
        1364 (15.41 % of base) : 132558.dasm - System.Xml.Schema.DatatypeImplementation:.cctor() (FullOpts)
        1244 (1.37 % of base) : 37189.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        1074 (4.73 % of base) : 37458.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrPrivateTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        1040 (4.94 % of base) : 37779.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         974 (14.64 % of base) : 206120.dasm - System.Data.DataTable:SerializeTableSchema(System.Runtime.Serialization.SerializationInfo,ubyte):this (FullOpts)
         951 (21.83 % of base) : 218249.dasm - System.Management.ManagementClassGenerator:GenerateIfClassvalidFunction():this (FullOpts)
         856 (6.24 % of base) : 85749.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         849 (7.97 % of base) : 238197.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
         832 (4.25 % of base) : 146902.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
         832 (4.25 % of base) : 187598.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
         806 (14.84 % of base) : 218228.dasm - System.Management.ManagementClassGenerator:GenerateCollectionClass():this (FullOpts)
         766 (23.86 % of base) : 211346.dasm - System.Data.Common.MultipartIdentifier:ParseMultipartIdentifier(System.String,System.String,System.String,ushort,int,ubyte,System.String,ubyte):System.String[] (FullOpts)
         766 (23.86 % of base) : 95074.dasm - System.Data.Common.MultipartIdentifier:ParseMultipartIdentifier(System.String,System.String,System.String,ushort,int,ubyte,System.String,ubyte):System.String[] (FullOpts)
         737 (7.67 % of base) : 175959.dasm - Microsoft.Build.Evaluation.Preprocessor:CloneChildrenResolvingImports(System.Xml.XmlNode,System.Xml.XmlNode):this (FullOpts)
         695 (2.44 % of base) : 162320.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)
         674 (11.19 % of base) : 162334.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         640 (3.95 % of base) : 148495.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (FullOpts)

Top method improvements (bytes):
       -1791 (-5.18 % of base) : 103729.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -624 (-5.82 % of base) : 142177.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        -423 (-9.27 % of base) : 61624.dasm - Microsoft.CodeAnalysis.CSharp.MethodBodySynthesizer:MakeSubmissionInitialization(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.CSharpCompilation) (FullOpts)
        -409 (-15.55 % of base) : 3570.dasm - <StartupCode$FSharp-Core>.$QueryExtensions:.cctor() (FullOpts)
        -379 (-7.15 % of base) : 118724.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:VisitFieldOrPropertyInitializer(Microsoft.CodeAnalysis.VisualBasic.BoundFieldOrPropertyInitializer,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
        -364 (-1.56 % of base) : 137992.dasm - System.Xml.Xsl.IlGen.XmlILMethods:.cctor() (FullOpts)
        -360 (-8.78 % of base) : 294004.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
        -346 (-3.85 % of base) : 110895.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:ScanNumericLiteral(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
        -343 (-9.25 % of base) : 101226.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedSubmissionConstructorSymbol:MakeSubmissionInitialization(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundStatement] (FullOpts)
        -320 (-3.63 % of base) : 209801.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -267 (-1.63 % of base) : 96389.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindFieldAndPropertyInitializers(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.FieldOrPropertyInitializer]],Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundInitializer] (FullOpts)
        -258 (-2.67 % of base) : 218264.dasm - System.Management.ManagementClassGenerator:AddToDMTFTimeIntervalFunction():this (FullOpts)
        -255 (-8.21 % of base) : 58719.dasm - Microsoft.CodeAnalysis.CSharp.SwitchBinder:CheckSwitchErrors(byref,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -242 (-2.04 % of base) : 62811.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
        -237 (-2.50 % of base) : 96476.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindObjectCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BoundObjectInitializerExpressionBase,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
        -232 (-4.31 % of base) : 140378.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (FullOpts)
        -229 (-3.90 % of base) : 211110.dasm - System.Data.OleDb.OleDbDataReader:DumpToSchemaTable(System.Data.Common.UnsafeNativeMethods+IRowset):this (FullOpts)
        -229 (-7.26 % of base) : 313896.dasm - Xunit.XmlTestExecutionVisitor:CreateTestResultElement(Xunit.Abstractions.ITestResultMessage,System.String):System.Xml.Linq.XElement:this (FullOpts)
        -218 (-12.30 % of base) : 9959.dasm - Microsoft.FSharp.Collections.ArrayModule+Filter:populateDstViaMask[ubyte](ubyte[],uint[],ubyte[]):int (FullOpts)
        -212 (-3.18 % of base) : 96427.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportUnspecificProcedures(Microsoft.CodeAnalysis.Location,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte) (FullOpts)

Top method regressions (percentages):
          35 (46.05 % of base) : 177764.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:get_TaskHostNameForClr2TaskHost():System.String (FullOpts)
          24 (38.10 % of base) : 179783.dasm - Microsoft.Build.Shared.FileMatcher:HasDotDot(System.String):ubyte (FullOpts)
          16 (36.36 % of base) : 16943.dasm - System.Enum:AssertValidGenerics[System.__Canon,System.Nullable`1[int]]() (FullOpts)
          48 (32.43 % of base) : 269137.dasm - System.ComponentModel.ReflectPropertyDescriptor:.cctor() (FullOpts)
          10 (32.26 % of base) : 124659.dasm - Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
         359 (30.42 % of base) : 101973.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution,Microsoft.CodeAnalysis.VisualBasic.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeWithModifiers],ubyte):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution (FullOpts)
          25 (27.17 % of base) : 55122.dasm - System.Security.Cryptography.Pkcs.CmsSignature:.cctor() (FullOpts)
          15 (26.79 % of base) : 179047.dasm - Microsoft.Build.Collections.ReadOnlyEmptyCollection`1[ubyte]:get_Instance():Microsoft.Build.Collections.ReadOnlyEmptyCollection`1[ubyte] (FullOpts)
          35 (26.72 % of base) : 177778.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:GetTaskHostNameFromHostContext(int):System.String (FullOpts)
         175 (26.72 % of base) : 22769.dasm - System.Text.Ascii:NarrowUtf16ToAscii_Intrinsified_512(ulong,ulong,ulong):ulong (FullOpts)
          15 (26.32 % of base) : 99482.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.EmbeddedResources:get_Embedded():System.String (FullOpts)
          15 (26.32 % of base) : 99483.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.EmbeddedResources:get_InternalXmlHelper():System.String (FullOpts)
          15 (26.32 % of base) : 99484.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.EmbeddedResources:get_VbCoreSourceText():System.String (FullOpts)
          15 (26.32 % of base) : 99485.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.EmbeddedResources:get_VbMyTemplateText():System.String (FullOpts)
         142 (26.01 % of base) : 177779.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:GetMSBuildLocationFromHostContext(int):System.String (FullOpts)
          15 (25.42 % of base) : 33827.dasm - Microsoft.Diagnostics.Symbols.SymbolPath:get_MicrosoftSymbolServerPath():System.String (FullOpts)
           7 (25.00 % of base) : 116412.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           7 (25.00 % of base) : 116394.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           7 (25.00 % of base) : 116393.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           7 (25.00 % of base) : 116413.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

Top method improvements (percentages):
         -10 (-45.45 % of base) : 294988.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-45.45 % of base) : 294925.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-45.45 % of base) : 294980.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -11 (-44.00 % of base) : 294932.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -11 (-44.00 % of base) : 294984.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
         -11 (-44.00 % of base) : 295021.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[short]:Invoke(short,short):short (FullOpts)
         -11 (-44.00 % of base) : 295041.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
          -7 (-36.84 % of base) : 28201.dasm - System.Diagnostics.Tracing.Statics:Combine(int,ubyte):ubyte (FullOpts)
         -34 (-32.08 % of base) : 211363.dasm - System.Data.Common.DbConnectionOptions:DebugTraceKeyValuePair(System.String,System.String,System.Collections.Hashtable) (FullOpts)
         -10 (-19.61 % of base) : 15208.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[int](System.Object):int (FullOpts)
         -10 (-19.61 % of base) : 16338.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[int]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):int:this (FullOpts)
         -10 (-19.61 % of base) : 27372.dasm - System.Runtime.CompilerServices.Unsafe:Unbox[ubyte](System.Object):byref (FullOpts)
         -10 (-19.61 % of base) : 138082.dasm - System.Xml.Xsl.IlGen.StorageDescriptor:get_ParameterLocation():int:this (FullOpts)
         -10 (-19.23 % of base) : 240309.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[int]:<Cast>b__0():int:this (FullOpts)
         -10 (-19.23 % of base) : 15211.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[long](System.Object):long (FullOpts)
         -10 (-19.23 % of base) : 15206.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[ubyte](System.Object):ubyte (FullOpts)
         -10 (-19.23 % of base) : 16341.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[long]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):long:this (FullOpts)
         -10 (-19.23 % of base) : 16332.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[ubyte]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):ubyte:this (FullOpts)
         -10 (-19.23 % of base) : 218317.dasm - System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):long:this (FullOpts)
         -10 (-19.23 % of base) : 137708.dasm - System.Xml.Xsl.Qil.QilLiteral:op_Implicit(System.Xml.Xsl.Qil.QilLiteral):int (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: 282300135 (overridden on cmd)
Total bytes of diff: 282793319 (overridden on cmd)
Total bytes of delta: 493184 (0.17 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        6554 : 19957.dasm (58.98 % of base)
        6309 : 67528.dasm (57.53 % of base)
        5793 : 71101.dasm (56.17 % of base)
        1732 : 418783.dasm (12.26 % of base)
        1682 : 639227.dasm (11.02 % of base)
        1456 : 629925.dasm (7.05 % of base)
        1337 : 419076.dasm (11.05 % of base)
        1280 : 638490.dasm (14.68 % of base)
        1136 : 358905.dasm (8.85 % of base)
        1016 : 440366.dasm (13.76 % of base)
        1005 : 348533.dasm (9.99 % of base)
         970 : 379435.dasm (7.43 % of base)
         925 : 362687.dasm (7.30 % of base)
         896 : 85288.dasm (4.66 % of base)
         888 : 403558.dasm (20.37 % of base)
         888 : 305556.dasm (6.54 % of base)
         881 : 403593.dasm (12.80 % of base)
         878 : 403544.dasm (22.03 % of base)
         866 : 543335.dasm (10.16 % of base)
         865 : 637271.dasm (6.36 % of base)

Top file improvements (bytes):
       -1073 : 88512.dasm (-6.28 % of base)
       -1021 : 621186.dasm (-4.45 % of base)
        -651 : 56833.dasm (-7.85 % of base)
        -629 : 210125.dasm (-4.24 % of base)
        -618 : 218807.dasm (-3.82 % of base)
        -599 : 84748.dasm (-7.79 % of base)
        -598 : 88384.dasm (-7.85 % of base)
        -557 : 218810.dasm (-4.15 % of base)
        -481 : 639578.dasm (-5.10 % of base)
        -438 : 632749.dasm (-2.42 % of base)
        -412 : 625613.dasm (-1.82 % of base)
        -411 : 90704.dasm (-5.46 % of base)
        -405 : 634737.dasm (-9.81 % of base)
        -368 : 77563.dasm (-5.11 % of base)
        -349 : 628260.dasm (-3.42 % of base)
        -342 : 170270.dasm (-8.53 % of base)
        -338 : 237291.dasm (-4.61 % of base)
        -337 : 613200.dasm (-8.10 % of base)
        -324 : 636032.dasm (-13.27 % of base)
        -315 : 589802.dasm (-3.31 % of base)

100 total files with Code Size differences (41 improved, 59 regressed), 20 unchanged.

Top method regressions (bytes):
        6554 (58.98 % of base) : 19957.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)
        6309 (57.53 % of base) : 67528.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)
        5793 (56.17 % of base) : 71101.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)
        1732 (12.26 % of base) : 418783.dasm - XPathTests.Common.Utils:XPathNodesetTest(int,System.String,System.String,XPathTests.Common.XPathResult,System.Xml.XmlNamespaceManager,System.String) (Tier1)
        1682 (11.02 % of base) : 639227.dasm - Microsoft.Cci.MetadataWriter:PopulateTypeRefTableRows():this (Tier1)
        1456 (7.05 % of base) : 629925.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitBinaryLogicalOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (Tier1)
        1337 (11.05 % of base) : 419076.dasm - System.Xml.XPath.XPathNavigator:ComparePosition(System.Xml.XPath.XPathNavigator):int:this (Tier1)
        1280 (14.68 % of base) : 638490.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodSpecTableRows():this (Tier1)
        1136 (8.85 % of base) : 358905.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        1016 (13.76 % of base) : 440366.dasm - System.Xml.RwFactoryWriterTests.CXmlDriverEngine:BuildVirtualNode(System.Xml.Linq.XElement,System.Xml.Linq.XElement):System.Xml.Linq.XElement (Tier1)
        1005 (9.99 % of base) : 348533.dasm - System.SpanTests.ReadOnlySpanTests:OnSequenceEqualOfEqualSpansMakeSureEveryElementIsCompared(int) (Tier1-OSR)
         970 (7.43 % of base) : 379435.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         925 (7.30 % of base) : 362687.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         896 (4.66 % of base) : 85288.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)
         888 (6.54 % of base) : 305556.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         888 (20.37 % of base) : 403558.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1+<>c__DisplayClass84_0[float]:<ScalarSpanDestination_AllLengths>b__0(int):this (Tier1)
         881 (12.80 % of base) : 403593.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Divide_TwoTensors>b__140_0(int):this (Tier1)
         878 (22.03 % of base) : 403544.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1+<>c__DisplayClass85_0[float]:<ScalarSpanDestination_InPlace>b__0(int):this (Tier1)
         866 (10.16 % of base) : 543335.dasm - System.Text.Encodings.Web.Tests.JavaScriptEncoderTests:FindFirstCharacterToEncode(ushort,System.Text.Encodings.Web.JavaScriptEncoder,ubyte):this (Tier1-OSR)
         865 (6.36 % of base) : 637271.dasm - Microsoft.Cci.MetadataWriter:EmbedMetadataReferenceInformation(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder):this (Tier1)

Top method improvements (bytes):
       -1073 (-6.28 % of base) : 88512.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
       -1021 (-4.45 % of base) : 621186.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
        -651 (-7.85 % of base) : 56833.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:EarlyDecodeDeprecatedOrExperimentalOrObsoleteAttribute(byref,byref,byref,byref):ubyte (Tier1)
        -629 (-4.24 % of base) : 210125.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -618 (-3.82 % of base) : 218807.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:Write(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo):this (Tier1)
        -599 (-7.79 % of base) : 84748.dasm - Microsoft.CodeAnalysis.TransformNode`2[System.Collections.Immutable.ImmutableArray`1[ubyte],int]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[int],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[int]:this (Tier1)
        -598 (-7.85 % of base) : 88384.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:EarlyDecodeDeprecatedOrExperimentalOrObsoleteAttribute(byref,byref,byref,byref):ubyte (Tier1)
        -557 (-4.15 % of base) : 218810.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:Write(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.String[],System.Type[],System.Object[],System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo[]):this (Tier1)
        -481 (-5.10 % of base) : 639578.dasm - Microsoft.Cci.MetadataWriter:AddAssemblyAttributesToTable(System.Collections.Generic.IEnumerable`1[Microsoft.Cci.ICustomAttribute],ubyte,ubyte):this (Tier1)
        -438 (-2.42 % of base) : 632749.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ConvertObjectCreationExpression>g__bindObjectCreationExpression|209_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression (Tier1)
        -412 (-1.82 % of base) : 625613.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
        -411 (-5.46 % of base) : 90704.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:HaveSameParameterTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,int,int):ubyte (Tier1)
        -405 (-9.81 % of base) : 634737.dasm - Microsoft.Cci.MetadataVisitor:Visit(Microsoft.Cci.ICustomAttribute):this (Tier1)
        -368 (-5.11 % of base) : 77563.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.42 % of base) : 628260.dasm - Microsoft.CodeAnalysis.CodeGen.SequencePointList:GetSequencePoints(Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.SequencePoint]):this (Tier1)
        -342 (-8.53 % of base) : 170270.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetRewrittenAttributeConstructorArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant],Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant]:this (Tier1)
        -338 (-4.61 % of base) : 237291.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_RefArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_RefArgs (Tier1)
        -337 (-8.10 % of base) : 613200.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex169_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -324 (-13.27 % of base) : 636032.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (Tier1)
        -315 (-3.31 % of base) : 589802.dasm - System.Text.Json.Serialization.Converters.IListConverter`1[System.__Canon]:OnWriteResume(System.Text.Json.Utf8JsonWriter,System.__Canon,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1-OSR)

Top method regressions (percentages):
        6554 (58.98 % of base) : 19957.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)
        6309 (57.53 % of base) : 67528.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)
        5793 (56.17 % of base) : 71101.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)
          98 (43.75 % of base) : 98836.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          82 (42.27 % of base) : 272572.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          94 (42.15 % of base) : 98845.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          82 (41.41 % of base) : 270953.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          89 (40.45 % of base) : 272251.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 273155.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage04a.usage04a.Parent,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 278667.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage10a.usage10a.Parent,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 274856.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.prms.prms01b.prms01b.Parent,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 272596.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 275929.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 278968.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          94 (38.84 % of base) : 96932.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          73 (36.50 % of base) : 98051.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          73 (36.50 % of base) : 98086.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          73 (36.50 % of base) : 98100.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          73 (36.32 % of base) : 98094.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          73 (36.32 % of base) : 98631.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)

Top method improvements (percentages):
         -10 (-45.45 % of base) : 394969.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
         -10 (-45.45 % of base) : 401731.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Tier1)
         -10 (-45.45 % of base) : 394990.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
         -10 (-45.45 % of base) : 401703.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
         -10 (-45.45 % of base) : 401781.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudePropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)
         -10 (-45.45 % of base) : 401740.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)
         -11 (-44.00 % of base) : 398039.dasm - System.Int16:Max(short,short):short (Instrumented Tier1)
         -11 (-44.00 % of base) : 401356.dasm - System.Int16:Max(short,short):short (Tier1)
         -11 (-44.00 % of base) : 398021.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)
         -11 (-44.00 % of base) : 401382.dasm - System.Int16:Min(short,short):short (Tier1)
         -11 (-44.00 % of base) : 401376.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (Tier1)
         -11 (-44.00 % of base) : 401383.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (Tier1)
         -11 (-44.00 % of base) : 401357.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (Tier1)
         -10 (-43.48 % of base) : 401741.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (Tier1)
         -56 (-31.28 % of base) : 526566.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -52 (-31.14 % of base) : 374295.dasm - System.Net.LazyAsyncResult:get_CurrentThreadContext():System.Net.LazyAsyncResult+ThreadContext (Tier1)
         -52 (-30.41 % of base) : 677610.dasm - System.Transactions.ContextData:get_TLSCurrentData():System.Transactions.ContextData (Tier1)
          -5 (-29.41 % of base) : 626301.dasm - Microsoft.CodeAnalysis.CSharp.NullableFlowStateExtensions:Join(ubyte,ubyte):ubyte (Tier1)
          -5 (-29.41 % of base) : 634113.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[ushort,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+CharTC]:Min(ushort,ushort):ushort (Tier1)
          -5 (-29.41 % of base) : 506231.dasm - System.Math:Max(ubyte,ubyte):ubyte (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: 136037588 (overridden on cmd)
Total bytes of diff: 136411706 (overridden on cmd)
Total bytes of delta: 374118 (0.28 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        2393 : 183320.dasm (16.12 % of base)
        2158 : 64197.dasm (10.69 % of base)
        1953 : 95755.dasm (20.98 % of base)
        1626 : 186630.dasm (17.35 % of base)
        1549 : 20359.dasm (11.83 % of base)
        1433 : 74084.dasm (24.86 % of base)
        1383 : 67076.dasm (1.62 % of base)
        1375 : 101920.dasm (20.76 % of base)
        1364 : 64284.dasm (15.40 % of base)
        1337 : 45067.dasm (10.11 % of base)
        1294 : 36838.dasm (11.90 % of base)
        1275 : 242301.dasm (8.21 % of base)
        1164 : 240311.dasm (19.81 % of base)
        1157 : 276069.dasm (14.22 % of base)
        1087 : 314881.dasm (10.84 % of base)
        1084 : 97722.dasm (9.99 % of base)
        1015 : 101551.dasm (18.55 % of base)
         994 : 138687.dasm (7.91 % of base)
         991 : 54624.dasm (21.49 % of base)
         969 : 101615.dasm (13.16 % of base)

Top file improvements (bytes):
        -857 : 126922.dasm (-3.34 % of base)
        -857 : 128509.dasm (-3.34 % of base)
        -675 : 97580.dasm (-8.37 % of base)
        -624 : 25216.dasm (-5.82 % of base)
        -604 : 215283.dasm (-18.64 % of base)
        -548 : 202257.dasm (-1.74 % of base)
        -548 : 219092.dasm (-1.74 % of base)
        -521 : 94739.dasm (-5.40 % of base)
        -521 : 97038.dasm (-5.74 % of base)
        -518 : 218223.dasm (-3.56 % of base)
        -516 : 219260.dasm (-3.43 % of base)
        -516 : 202517.dasm (-3.43 % of base)
        -438 : 118383.dasm (-1.78 % of base)
        -436 : 26559.dasm (-3.13 % of base)
        -431 : 119151.dasm (-2.47 % of base)
        -417 : 202933.dasm (-2.28 % of base)
        -417 : 219190.dasm (-2.28 % of base)
        -400 : 111200.dasm (-2.79 % of base)
        -399 : 192843.dasm (-3.86 % of base)
        -382 : 263537.dasm (-5.93 % of base)

102 total files with Code Size differences (55 improved, 47 regressed), 20 unchanged.

Top method regressions (bytes):
        2393 (16.12 % of base) : 183320.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (FullOpts)
        2158 (10.69 % of base) : 64197.dasm - System.Xml.Schema.XsdBuilder:.cctor() (FullOpts)
        1953 (20.98 % of base) : 95755.dasm - System.Data.Tests.DataColumnCollectionTest:Add():this (FullOpts)
        1626 (17.35 % of base) : 186630.dasm - System.Reflection.Emit.Tests.CustomAttributeBuilderTests:Ctor_AllPrimitives() (FullOpts)
        1549 (11.83 % of base) : 20359.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
        1433 (24.86 % of base) : 74084.dasm - System.Collections.Immutable.Tests.ImmutableHashSetTest:Create():this (FullOpts)
        1383 (1.62 % of base) : 67076.dasm - System.CodeDom.Compiler.Tests.CodeValidatorTests+<ValidateIdentifiers_Valid_TestData>d__0:MoveNext():ubyte:this (FullOpts)
        1375 (20.76 % of base) : 101920.dasm - System.Diagnostics.Tests.DiagnosticSourceEventSourceBridgeTests+<>c:<TestFilteringWithActivityName>b__6_0():this (FullOpts)
        1364 (15.40 % of base) : 64284.dasm - System.Xml.Schema.DatatypeImplementation:.cctor() (FullOpts)
        1337 (10.11 % of base) : 45067.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        1294 (11.90 % of base) : 36838.dasm - DryIoc.WrappersSupport:BuildSupportedWrappers():ImTools.ImMap`1[ImTools.ImMap+KValue`1[System.Type]] (FullOpts)
        1275 (8.21 % of base) : 242301.dasm - System.ServiceModel.Syndication.Tests.Rss20FeedFormatterTests+<>c__DisplayClass29_0:<Read_FullItem_ReturnsExpected>b__0(System.ServiceModel.Syndication.SyndicationFeed):this (FullOpts)
        1164 (19.81 % of base) : 240311.dasm - System.ServiceModel.Syndication.Tests.AtomPub10ServiceDocumentFormatterTests+<WriteTo_TestData>d__9:MoveNext():ubyte:this (FullOpts)
        1157 (14.22 % of base) : 276069.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TrySkipHelper(System.String,ubyte,System.Collections.Generic.List`1[ubyte],ubyte) (FullOpts)
        1087 (10.84 % of base) : 314881.dasm - System.Threading.Tasks.Tests.TaskFactory_FromAsyncTests:RunAPMFactoryTests() (FullOpts)
        1084 (9.99 % of base) : 97722.dasm - System.Data.Tests.DataTableTest2:GetChanges_ByDataRowState():this (FullOpts)
        1015 (18.55 % of base) : 101551.dasm - System.Diagnostics.Tests.ActivityTests:ActivityTraceFlagsTests():this (FullOpts)
         994 (7.91 % of base) : 138687.dasm - System.IO.Tests.TextWriterTests+<CreateBroadcasting_DelegatesToAllWriters>d__57:MoveNext():this (FullOpts)
         991 (21.49 % of base) : 54624.dasm - Microsoft.Extensions.Logging.Test.LoggerExtensionsTest:LogValuesEventIdAndError_LogsCorrectValues():this (FullOpts)
         969 (13.16 % of base) : 101615.dasm - System.Diagnostics.Tests.ActivityTests:TestTagObjects():this (FullOpts)

Top method improvements (bytes):
        -857 (-3.34 % of base) : 126922.dasm - System.Globalization.Tests.CultureInfoAll+<CultureInfo_TestData>d__102:MoveNext():ubyte:this (FullOpts)
        -857 (-3.34 % of base) : 128509.dasm - System.Globalization.Tests.CultureInfoAll+<CultureInfo_TestData>d__102:MoveNext():ubyte:this (FullOpts)
        -675 (-8.37 % of base) : 97580.dasm - System.Data.Tests.DataSetTest:ReadXmlSchema():this (FullOpts)
        -624 (-5.82 % of base) : 25216.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        -604 (-18.64 % of base) : 215283.dasm - System.Tests.TimeOnlyTests:TryFormatTest() (FullOpts)
        -548 (-1.74 % of base) : 202257.dasm - System.Tests.ArrayTests+<Sort_SZArray_TestData>d__159:MoveNext():ubyte:this (FullOpts)
        -548 (-1.74 % of base) : 219092.dasm - System.Tests.ArrayTests+<Sort_SZArray_TestData>d__159:MoveNext():ubyte:this (FullOpts)
        -521 (-5.40 % of base) : 94739.dasm - System.Data.Tests.DataTableLoadRowTest:LoadRowTestOverwriteChanges():this (FullOpts)
        -521 (-5.74 % of base) : 97038.dasm - System.Data.Tests.DataTableTest:ImportRowTest():this (FullOpts)
        -518 (-3.56 % of base) : 218223.dasm - System.Tests.EnumTests+<HasFlag_TestData>d__41:MoveNext():ubyte:this (FullOpts)
        -516 (-3.43 % of base) : 219260.dasm - System.Tests.ArrayTests+<Copy_SZArray_Reliable_TestData>d__56:MoveNext():ubyte:this (FullOpts)
        -516 (-3.43 % of base) : 202517.dasm - System.Tests.ArrayTests+<Copy_SZArray_Reliable_TestData>d__56:MoveNext():ubyte:this (FullOpts)
        -438 (-1.78 % of base) : 118383.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Methods.Oneclass2methods.literals01.literals01.A:MainMethod():int (FullOpts)
        -436 (-3.13 % of base) : 26559.dasm - Microsoft.CSharp.RuntimeBinder.Tests.DefaultParameterTests:MarshalAsOptionalsCorrectDefault():this (FullOpts)
        -431 (-2.47 % of base) : 119151.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach004.freach004.Test:MainMethod():int (FullOpts)
        -417 (-2.28 % of base) : 202933.dasm - System.Tests.ArrayTests+<Reverse_TestData>d__149:MoveNext():ubyte:this (FullOpts)
        -417 (-2.28 % of base) : 219190.dasm - System.Tests.ArrayTests+<Reverse_TestData>d__149:MoveNext():ubyte:this (FullOpts)
        -400 (-2.79 % of base) : 111200.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum005.enum005.Test:MainMethod():int (FullOpts)
        -399 (-3.86 % of base) : 192843.dasm - System.Reflection.Tests.FieldTests:TestLiteralFields1() (FullOpts)
        -382 (-5.93 % of base) : 263537.dasm - System.Text.Json.SourceGeneration.Tests.NodeInteropTests_Default+NodeInteropTestsContext_Default:SimpleTestClassWithGenericCollectionWrappersSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClassWithGenericCollectionWrappers):this (FullOpts)

Top method regressions (percentages):
          78 (47.27 % of base) : 116632.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.dynamicobj001.dynamicobj001.Test:MainMethod():int (FullOpts)
          97 (43.50 % of base) : 26818.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
         350 (42.94 % of base) : 170125.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4ToStringTest():this (FullOpts)
          82 (42.27 % of base) : 108032.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          82 (41.62 % of base) : 110913.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          89 (40.45 % of base) : 108308.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          89 (40.09 % of base) : 26830.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 109347.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage04a.usage04a.Parent,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 108929.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage10a.usage10a.Parent,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 109179.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.prms.prms01b.prms01b.Parent,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 108038.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 114331.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          93 (38.91 % of base) : 117856.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
          93 (38.59 % of base) : 26177.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object,System.Object):System.Object (FullOpts)
         312 (36.79 % of base) : 161964.dasm - System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest:BasicTest_GetIPInterfaceStatistics_Success():this (FullOpts)
         312 (36.75 % of base) : 162027.dasm - System.Net.NetworkInformation.Tests.NetworkInterfaceIPv4Statistics:BasicTest_GetIPv4InterfaceStatistics_Success():this (FullOpts)
         157 (36.01 % of base) : 22528.dasm - NuGet.Packaging.PackagingConstants+Folders:.cctor() (FullOpts)
          72 (35.82 % of base) : 112179.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          72 (35.82 % of base) : 29194.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          72 (35.82 % of base) : 29198.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)

Top method improvements (percentages):
          -8 (-88.89 % of base) : 214592.dasm - System.Tests.Types.FunctionPointerTests:CompileTimeIdentity_Managed() (FullOpts)
         -10 (-45.45 % of base) : 168879.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-45.45 % of base) : 169017.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -11 (-44.00 % of base) : 168138.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -11 (-44.00 % of base) : 169026.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -11 (-44.00 % of base) : 168111.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
         -11 (-44.00 % of base) : 168075.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
         -10 (-43.48 % of base) : 168789.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
         -10 (-43.48 % of base) : 168819.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
        -336 (-23.01 % of base) : 216601.dasm - System.Tests.DoubleTests_GenericMath:CreateSaturatingFromNFloatTest() (FullOpts)
        -336 (-23.01 % of base) : 217028.dasm - System.Tests.DoubleTests_GenericMath:CreateTruncatingFromNFloatTest() (FullOpts)
         -10 (-20.00 % of base) : 268461.dasm - (dynamicClass):OneGetter(System.Object):int (FullOpts)
         -10 (-20.00 % of base) : 149214.dasm - System.Linq.Tests.OrderByTests+<>c:<LastOnOrderedMatchingCases>b__30_0(System.Object):int:this (FullOpts)
         -10 (-20.00 % of base) : 263033.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default+<>c:<KeyValuePairInt32Int32PropInit>b__513_1(System.Object):int:this (FullOpts)
         -10 (-20.00 % of base) : 258814.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Metadata+CollectionTestsContext_Metadata+<>c:<KeyValuePairStringInt32PropInit>b__519_1(System.Object):int:this (FullOpts)
         -10 (-20.00 % of base) : 256062.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default+<>c:<MultiplePublicParameterizedCtor_StructPropInit>b__679_0(System.Object):int:this (FullOpts)
         -10 (-20.00 % of base) : 255966.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default+<>c:<Point_2D_Struct_WithAttributePropInit>b__807_0(System.Object):int:this (FullOpts)
         -10 (-20.00 % of base) : 255926.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default+<>c:<Point_3D_StructPropInit>b__837_0(System.Object):int:this (FullOpts)
         -10 (-20.00 % of base) : 256149.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default+<>c:<SingleParameterlessCtor_MultiplePublicParameterizedCtor_StructPropInit>b__1111_0(System.Object):int:this (FullOpts)
         -10 (-20.00 % of base) : 266965.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata+<>c:<StructWithFourArgsPropInit>b__997_2(System.Object):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: 14153477 (overridden on cmd)
Total bytes of diff: 14178290 (overridden on cmd)
Total bytes of delta: 24813 (0.18 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1549 : 16439.dasm (11.83 % of base)
        1180 : 15886.dasm (20.81 % of base)
        1091 : 2819.dasm (11.12 % of base)
         873 : 23244.dasm (6.41 % of base)
         849 : 21622.dasm (7.97 % of base)
         799 : 1522.dasm (4.66 % of base)
         640 : 21037.dasm (3.95 % of base)
         615 : 21921.dasm (11.62 % of base)
         525 : 16101.dasm (3.92 % of base)
         442 : 26413.dasm (3.90 % of base)
         437 : 32605.dasm (4.07 % of base)
         361 : 10869.dasm (3.01 % of base)
         326 : 17633.dasm (3.87 % of base)
         323 : 26999.dasm (6.49 % of base)
         322 : 18601.dasm (8.73 % of base)
         315 : 32584.dasm (11.53 % of base)
         307 : 948.dasm (4.04 % of base)
         286 : 1343.dasm (3.35 % of base)
         280 : 16137.dasm (3.34 % of base)
         274 : 24423.dasm (5.59 % of base)

Top file improvements (bytes):
       -8971 : 33693.dasm (-6.77 % of base)
       -1078 : 5806.dasm (-1.23 % of base)
        -848 : 1194.dasm (-5.15 % of base)
        -436 : 1438.dasm (-2.40 % of base)
        -424 : 32793.dasm (-5.58 % of base)
        -392 : 1445.dasm (-2.97 % of base)
        -360 : 17250.dasm (-8.78 % of base)
        -304 : 35967.dasm (-3.40 % of base)
        -303 : 33091.dasm (-2.04 % of base)
        -263 : 2551.dasm (-1.66 % of base)
        -259 : 28327.dasm (-2.23 % of base)
        -237 : 27265.dasm (-7.98 % of base)
        -232 : 33349.dasm (-5.61 % of base)
        -227 : 15096.dasm (-4.61 % of base)
        -212 : 11803.dasm (-5.26 % of base)
        -165 : 26762.dasm (-3.43 % of base)
        -165 : 33079.dasm (-4.76 % of base)
        -161 : 23707.dasm (-2.71 % of base)
        -156 : 25145.dasm (-6.08 % of base)
        -148 : 1395.dasm (-1.75 % of base)

97 total files with Code Size differences (45 improved, 52 regressed), 20 unchanged.

Top method regressions (bytes):
        1549 (11.83 % of base) : 16439.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
        1180 (20.81 % of base) : 15886.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Bottom(byref,int,System.ReadOnlySpan`1[SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32]]):SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32] (FullOpts)
        1091 (11.12 % of base) : 2819.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
         873 (6.41 % of base) : 23244.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         849 (7.97 % of base) : 21622.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
         799 (4.66 % of base) : 1522.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TrianglePairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         640 (3.95 % of base) : 21037.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (FullOpts)
         615 (11.62 % of base) : 21921.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         525 (3.92 % of base) : 16101.dasm - Microsoft.ML.Data.Conversion.Conversions:.ctor():this (FullOpts)
         442 (3.90 % of base) : 26413.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
         437 (4.07 % of base) : 32605.dasm - System.Management.Automation.Runspaces.InitialSessionState:.cctor() (FullOpts)
         361 (3.01 % of base) : 10869.dasm - FSharp.Compiler.AugmentWithHashCompare:CheckAugmentationAttribs(ubyte,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.TypedTree+Entity) (FullOpts)
         326 (3.87 % of base) : 17633.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3[System.__Canon,System.__Canon,System.__Canon]:TrainCore(Microsoft.ML.Runtime.IChannel,Microsoft.ML.Data.RoleMappedData,Microsoft.ML.Trainers.LinearModelParameters,int):System.__Canon:this (FullOpts)
         323 (6.49 % of base) : 26999.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalAccess(Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess,byref):this (FullOpts)
         322 (8.73 % of base) : 18601.dasm - Microsoft.ML.Benchmarks.KMeansAndLogisticRegressionBench:TrainKMeansAndLR():Microsoft.ML.Calibrators.CalibratedModelParametersBase`2[Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator]:this (FullOpts)
         315 (11.53 % of base) : 32584.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex13_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         307 (4.04 % of base) : 948.dasm - BepuPhysics.Constraints.HingeFunctions:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
         286 (3.35 % of base) : 1343.dasm - BepuPhysics.CollisionDetection.SweepTasks.ConvexPairSweepTask`5[BepuPhysics.Collidables.Sphere,BepuPhysics.Collidables.SphereWide,BepuPhysics.Collidables.Box,BepuPhysics.Collidables.BoxWide,BepuPhysics.CollisionDetection.SweepTasks.SphereBoxDistanceTester]:Sweep[BepuPhysics.CollisionDetection.SweepTasks.ConvexPairSweepTask`5+OffsetSweep[BepuPhysics.Collidables.Sphere,BepuPhysics.Collidables.SphereWide,BepuPhysics.Collidables.Box,BepuPhysics.Collidables.BoxWide,BepuPhysics.CollisionDetection.SweepTasks.SphereBoxDistanceTester]](ulong,byref,byref,ulong,byref,byref,byref,float,float,float,int,byref,byref,byref,byref,byref):ubyte (FullOpts)
         280 (3.34 % of base) : 16137.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
         274 (5.59 % of base) : 24423.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol:AddDelegateMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol],Microsoft.CodeAnalysis.CSharp.Syntax.DelegateDeclarationSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)

Top method improvements (bytes):
       -8971 (-6.77 % of base) : 33693.dasm - System.Management.Automation.Runspaces.TypeTable:Process_Types_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
       -1078 (-1.23 % of base) : 5806.dasm - FSharp.Compiler.TcGlobals+TcGlobals:.ctor(ubyte,FSharp.Compiler.AbstractIL.IL+ILGlobals,FSharp.Compiler.TypedTree+CcuThunk,System.String,ubyte,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+CcuThunk]]],ubyte,ubyte,Internal.Utilities.PathMap,FSharp.Compiler.Features+LanguageVersion):this (FullOpts)
        -848 (-5.15 % of base) : 1194.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -436 (-2.40 % of base) : 1438.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -424 (-5.58 % of base) : 32793.dasm - System.Management.Automation.Runspaces.PSSnapInHelpers:InitializeCoreCmdletsAndProviders(System.Management.Automation.PSSnapInInfo,byref,byref,System.String) (FullOpts)
        -392 (-2.97 % of base) : 1445.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CylinderPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -360 (-8.78 % of base) : 17250.dasm - System.Net.HeaderInfoTable:CreateHeaderHashtable():System.Collections.Hashtable (FullOpts)
        -304 (-3.40 % of base) : 35967.dasm - System.Management.Automation.Verbs:.cctor() (FullOpts)
        -303 (-2.04 % of base) : 33091.dasm - System.Management.Automation.Language.CachedReflectionInfo:.cctor() (FullOpts)
        -263 (-1.66 % of base) : 2551.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Syntax.PrettyNaming:.cctor() (FullOpts)
        -259 (-2.23 % of base) : 28327.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
        -237 (-7.98 % of base) : 27265.dasm - Microsoft.CodeAnalysis.CSharp.SwitchBinder:CheckSwitchErrors(byref,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -232 (-5.61 % of base) : 33349.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseManager:ProcessBuiltin(System.Management.Automation.Runspaces.PSSnapInTypeAndFormatErrors,Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBase,Microsoft.PowerShell.Commands.Internal.Format.PSPropertyExpressionFactory,System.Collections.Generic.List`1[Microsoft.PowerShell.Commands.Internal.Format.XmlLoaderLoggerEntry],byref):ubyte (FullOpts)
        -227 (-4.61 % of base) : 15096.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.SpectralConverter`1[SixLabors.ImageSharp.PixelFormats.Rgb24]:ConvertStride(int):this (FullOpts)
        -212 (-5.26 % of base) : 11803.dasm - FSharp.Compiler.Parser:tryMkSynMemberDefnMember@1863(ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynReturnInfo],FSharp.Compiler.Text.Range,FSharp.Compiler.Syntax.SynPat,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynMemberKind,FSharp.Compiler.Syntax.SynMemberFlags],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynAttributeList],FSharp.Compiler.Text.Range,FSharp.Compiler.Xml.PreXmlDoc,Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.PropertyKeyword],ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynAttributeList],System.Tuple`2[FSharp.Compiler.Syntax.SynPat,FSharp.Compiler.Text.Range],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynReturnInfo],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range],FSharp.Compiler.Syntax.SynExpr,FSharp.Compiler.Text.Range):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberDefn] (FullOpts)
        -165 (-3.43 % of base) : 26762.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindIsOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -165 (-4.76 % of base) : 33079.dasm - System.Management.Automation.Language.Compiler:.cctor() (FullOpts)
        -161 (-2.71 % of base) : 23707.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
        -156 (-6.08 % of base) : 25145.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbol:.ctor(int,Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.String,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.Syntax.OperatorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -148 (-1.75 % of base) : 1395.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)

Top method regressions (percentages):
          31 (36.47 % of base) : 3237.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsOSX():ubyte (FullOpts)
          31 (36.47 % of base) : 3235.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)
          12 (23.08 % of base) : 21323.dasm - Roslyn.Utilities.UICultureUtilities:.cctor() (FullOpts)
          18 (22.78 % of base) : 16498.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
        1180 (20.81 % of base) : 15886.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Bottom(byref,int,System.ReadOnlySpan`1[SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32]]):SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32] (FullOpts)
          40 (17.39 % of base) : 4789.dasm - System.Diagnostics.TraceInternal:InitializeSettings() (FullOpts)
          21 (16.67 % of base) : 35778.dasm - System.Management.Automation.Language.IsSafeValueVisitor:<VisitHashtable>b__67_0(System.Tuple`2[System.Management.Automation.Language.ExpressionAst,System.Management.Automation.Language.StatementAst]):ubyte:this (FullOpts)
          15 (15.79 % of base) : 34616.dasm - System.Environment:get_ProcessPath():System.String (FullOpts)
          60 (14.78 % of base) : 32612.dasm - System.Management.Automation.Security.SystemPolicy:GetSystemLockdownPolicy():int (FullOpts)
          63 (14.42 % of base) : 33232.dasm - System.Management.Automation.ModuleIntrinsics:.cctor() (FullOpts)
          20 (13.99 % of base) : 22571.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:<ToTypeWithState>g__getFlowState|82_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):ubyte (FullOpts)
          30 (13.76 % of base) : 2665.dasm - FSharp.Compiler.AbstractIL.IL+ILArgConvention:.cctor() (FullOpts)
          30 (13.76 % of base) : 5613.dasm - FSharp.Compiler.Syntax.SynMemberKind:.cctor() (FullOpts)
         113 (13.11 % of base) : 4950.dasm - System.Collections.Generic.ArraySortHelper`2[System.__Canon,int]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Span`1[int],System.Collections.Generic.IComparer`1[System.__Canon]):int (FullOpts)
          74 (12.87 % of base) : 17077.dasm - System.Text.Ascii:Equals[ubyte,ushort,System.Text.Ascii+WideningLoader](byref,byref,ulong):ubyte (FullOpts)
          15 (12.71 % of base) : 2972.dasm - System.IO.Path:GetFileName(System.String):System.String (FullOpts)
           8 (12.70 % of base) : 24657.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.IndexedTypeParameterSymbol:GetTypeParameter(int):Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol (FullOpts)
          23 (12.57 % of base) : 21747.dasm - Microsoft.CodeAnalysis.SymbolEqualityComparer:.cctor() (FullOpts)
          16 (12.50 % of base) : 19045.dasm - Roslyn.Utilities.FileNameUtilities:IndexOfFileName(System.String):int (FullOpts)
          16 (12.50 % of base) : 14709.dasm - System.Reflection.Metadata.PathUtilities:IndexOfFileName(System.String):int (FullOpts)

Top method improvements (percentages):
        -111 (-17.65 % of base) : 35275.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -21 (-15.33 % of base) : 16862.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:TryEnqueue(System.Threading.PortableThreadPool+IOCompletionPoller+Event):ubyte:this (FullOpts)
         -10 (-14.29 % of base) : 13247.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@15831-1195:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
         -10 (-14.29 % of base) : 13246.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@15842-1196:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
         -25 (-14.12 % of base) : 14955.dasm - SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
        -137 (-14.09 % of base) : 1426.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxTriangleTester:TestBoxEdgesAgainstTriangleEdge(byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
         -10 (-14.08 % of base) : 35219.dasm - System.Management.Automation.Language.IsSafeValueVisitor:<VisitArrayLiteral>b__66_0(System.Management.Automation.Language.ExpressionAst):ubyte:this (FullOpts)
        -120 (-13.70 % of base) : 36258.dasm - System.Linq.Expressions.Compiler.ILGen:TryEmitILConstant(System.Reflection.Emit.ILGenerator,System.Object,System.Type):ubyte (FullOpts)
         -10 (-13.33 % of base) : 33598.dasm - System.Collections.Specialized.OrderedDictionary:get_Item(int):System.Object:this (FullOpts)
         -27 (-11.84 % of base) : 4544.dasm - System.Buffers.SharedArrayPoolPartitions:.ctor(int):this (FullOpts)
         -10 (-11.49 % of base) : 36834.dasm - System.Management.Automation.ReflectionParameterBinder+<>c:<.cctor>b__4_23(System.Object,System.Object):this (FullOpts)
         -10 (-11.49 % of base) : 16682.dasm - System.Net.Sockets.Socket:get_DualMode():ubyte:this (FullOpts)
         -10 (-11.36 % of base) : 35681.dasm - System.Management.Automation.ReflectionParameterBinder+<>c:<.cctor>b__4_19(System.Object,System.Object):this (FullOpts)
         -10 (-11.11 % of base) : 28974.dasm - System.Collections.Immutable.ImmutableArray:ToImmutableArray[ubyte](System.Collections.Generic.IEnumerable`1[ubyte]):System.Collections.Immutable.ImmutableArray`1[ubyte] (FullOpts)
         -15 (-11.11 % of base) : 34946.dasm - System.Management.Automation.Interpreter.HybridReferenceDictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this (FullOpts)
         -10 (-10.99 % of base) : 19969.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveParser:EvaluateBool(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):ubyte:this (FullOpts)
         -10 (-10.75 % of base) : 12712.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@8623-588:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
         -10 (-10.64 % of base) : 7206.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@8577-584:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
         -10 (-10.53 % of base) : 12714.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@8646-590:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
         -10 (-10.53 % of base) : 7239.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@8702-595:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object: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: 5114999 (overridden on cmd)
Total bytes of diff: 5121275 (overridden on cmd)
Total bytes of delta: 6276 (0.12 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         383 : 11521.dasm (4.43 % of base)
         300 : 17341.dasm (29.41 % of base)
         290 : 19998.dasm (22.46 % of base)
         230 : 19999.dasm (21.62 % of base)
         153 : 16314.dasm (13.48 % of base)
         152 : 18970.dasm (9.11 % of base)
         148 : 18946.dasm (17.27 % of base)
         140 : 6204.dasm (6.50 % of base)
         140 : 11517.dasm (7.20 % of base)
         140 : 14891.dasm (7.20 % of base)
         125 : 23330.dasm (11.41 % of base)
          97 : 15148.dasm (3.75 % of base)
          97 : 11440.dasm (3.74 % of base)
          93 : 8391.dasm (3.22 % of base)
          90 : 7505.dasm (8.20 % of base)
          88 : 10942.dasm (5.37 % of base)
          88 : 5659.dasm (5.37 % of base)
          70 : 32071.dasm (0.81 % of base)
          70 : 10025.dasm (0.81 % of base)
          65 : 10112.dasm (6.36 % of base)

Top file improvements (bytes):
        -271 : 6416.dasm (-4.95 % of base)
        -262 : 14973.dasm (-4.84 % of base)
        -262 : 12182.dasm (-4.85 % of base)
         -92 : 2644.dasm (-4.48 % of base)
         -92 : 5948.dasm (-4.48 % of base)
         -92 : 14882.dasm (-4.47 % of base)
         -87 : 23096.dasm (-4.28 % of base)
         -87 : 20424.dasm (-4.26 % of base)
         -87 : 17768.dasm (-4.28 % of base)
         -59 : 31558.dasm (-0.83 % of base)
         -59 : 31672.dasm (-0.83 % of base)
         -47 : 7183.dasm (-2.07 % of base)
         -45 : 32063.dasm (-1.52 % of base)
         -41 : 5090.dasm (-5.43 % of base)
         -41 : 10609.dasm (-5.43 % of base)
         -39 : 27183.dasm (-7.82 % of base)
         -33 : 28855.dasm (-6.88 % of base)
         -33 : 27347.dasm (-7.07 % of base)
         -31 : 10463.dasm (-3.26 % of base)
         -31 : 4947.dasm (-3.26 % of base)

80 total files with Code Size differences (43 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         383 (4.43 % of base) : 11521.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         300 (29.41 % of base) : 17341.dasm - System.Buffers.ProbabilisticMap:IndexOfAnyVectorized(byref,byref,int,System.ReadOnlySpan`1[ushort]):int (FullOpts)
         290 (22.46 % of base) : 19998.dasm - System.Buffers.ProbabilisticMap:IndexOfAnyVectorizedAvx512(byref,byref,int,System.ReadOnlySpan`1[ushort]):int (FullOpts)
         230 (21.62 % of base) : 19999.dasm - System.Buffers.ProbabilisticMap:IndexOfAnyVectorized(byref,byref,int,System.ReadOnlySpan`1[ushort]):int (FullOpts)
         153 (13.48 % of base) : 16314.dasm - System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong (FullOpts)
         152 (9.11 % of base) : 18970.dasm - System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong (FullOpts)
         148 (17.27 % of base) : 18946.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (FullOpts)
         140 (6.50 % of base) : 6204.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         140 (7.20 % of base) : 11517.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         140 (7.20 % of base) : 14891.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         125 (11.41 % of base) : 23330.dasm - PInvokeTests.Program:TestMarshalStructAPIs() (FullOpts)
          97 (3.75 % of base) : 15148.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          97 (3.74 % of base) : 11440.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          93 (3.22 % of base) : 8391.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          90 (8.20 % of base) : 7505.dasm - System.Collections.Generic.ArraySortHelper`2[System.__Canon,System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Span`1[System.__Canon],System.Collections.Generic.IComparer`1[System.__Canon]):int (FullOpts)
          88 (5.37 % of base) : 10942.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
          88 (5.37 % of base) : 5659.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
          70 (0.81 % of base) : 32071.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
          70 (0.81 % of base) : 10025.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
          65 (6.36 % of base) : 10112.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileNoLabelPush(System.Linq.Expressions.Expression):this (FullOpts)

Top method improvements (bytes):
        -271 (-4.95 % of base) : 6416.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
        -262 (-4.84 % of base) : 14973.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
        -262 (-4.85 % of base) : 12182.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
         -92 (-4.48 % of base) : 2644.dasm - Internal.Win32.RegistryKey:GetValue(System.String,System.Object):System.Object:this (FullOpts)
         -92 (-4.48 % of base) : 5948.dasm - Internal.Win32.RegistryKey:GetValue(System.String,System.Object):System.Object:this (FullOpts)
         -92 (-4.47 % of base) : 14882.dasm - Internal.Win32.RegistryKey:GetValue(System.String,System.Object):System.Object:this (FullOpts)
         -87 (-4.28 % of base) : 23096.dasm - Internal.Win32.RegistryKey:GetValue(System.String,System.Object):System.Object:this (FullOpts)
         -87 (-4.26 % of base) : 20424.dasm - Internal.Win32.RegistryKey:GetValue(System.String,System.Object):System.Object:this (FullOpts)
         -87 (-4.28 % of base) : 17768.dasm - Internal.Win32.RegistryKey:GetValue(System.String,System.Object):System.Object:this (FullOpts)
         -59 (-0.83 % of base) : 31558.dasm - ReflectionTest+TestReflectionInvoke:Run() (FullOpts)
         -59 (-0.83 % of base) : 31672.dasm - ReflectionTest+TestReflectionInvoke:Run() (FullOpts)
         -47 (-2.07 % of base) : 7183.dasm - System.Diagnostics.NtProcessManager:GetProcessInfos(System.Diagnostics.PerformanceCounterLib,int,int,System.ReadOnlySpan`1[ubyte]):System.Diagnostics.ProcessInfo[] (FullOpts)
         -45 (-1.52 % of base) : 32063.dasm - WaitSubsystemTests:SemaphoreTest() (FullOpts)
         -41 (-5.43 % of base) : 5090.dasm - System.Globalization.InvariantModeCasing:ToLower(System.String):System.String (FullOpts)
         -41 (-5.43 % of base) : 10609.dasm - System.Globalization.InvariantModeCasing:ToLower(System.String):System.String (FullOpts)
         -39 (-7.82 % of base) : 27183.dasm - System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|87_0[long,System.SpanHelpers+DontNegate`1[long],System.Runtime.Intrinsics.Vector512`1[long]](byref,long,int):int (FullOpts)
         -33 (-7.07 % of base) : 27347.dasm - System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|87_0[int,System.SpanHelpers+DontNegate`1[int],System.Runtime.Intrinsics.Vector512`1[int]](byref,int,int):int (FullOpts)
         -33 (-6.88 % of base) : 28855.dasm - System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|87_0[ubyte,System.SpanHelpers+DontNegate`1[ubyte],System.Runtime.Intrinsics.Vector512`1[ubyte]](byref,ubyte,int):int (FullOpts)
         -31 (-3.26 % of base) : 10463.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (FullOpts)
         -31 (-3.26 % of base) : 4947.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (FullOpts)

Top method regressions (percentages):
         300 (29.41 % of base) : 17341.dasm - System.Buffers.ProbabilisticMap:IndexOfAnyVectorized(byref,byref,int,System.ReadOnlySpan`1[ushort]):int (FullOpts)
         290 (22.46 % of base) : 19998.dasm - System.Buffers.ProbabilisticMap:IndexOfAnyVectorizedAvx512(byref,byref,int,System.ReadOnlySpan`1[ushort]):int (FullOpts)
         230 (21.62 % of base) : 19999.dasm - System.Buffers.ProbabilisticMap:IndexOfAnyVectorized(byref,byref,int,System.ReadOnlySpan`1[ushort]):int (FullOpts)
         148 (17.27 % of base) : 18946.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (FullOpts)
           7 (16.28 % of base) : 6443.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
           7 (16.28 % of base) : 11838.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
          15 (15.46 % of base) : 19178.dasm - System.IO.Path:GetFileName(System.String):System.String (FullOpts)
          15 (15.46 % of base) : 16520.dasm - System.IO.Path:GetFileName(System.String):System.String (FullOpts)
          15 (15.46 % of base) : 21910.dasm - System.IO.Path:GetFileName(System.String):System.String (FullOpts)
         153 (13.48 % of base) : 16314.dasm - System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong (FullOpts)
           7 (12.96 % of base) : 9676.dasm - System.Linq.Expressions.ParameterExpression:Accept(System.Linq.Expressions.ExpressionVisitor):System.Linq.Expressions.Expression:this (FullOpts)
          27 (12.80 % of base) : 3839.dasm - System.Threading.ObjectHeader:AssignHashCode(System.Object,ulong):int (FullOpts)
          27 (12.80 % of base) : 901.dasm - System.Threading.ObjectHeader:AssignHashCode(System.Object,ulong):int (FullOpts)
          27 (12.80 % of base) : 18757.dasm - System.Threading.ObjectHeader:AssignHashCode(System.Object,ulong):int (FullOpts)
          27 (12.80 % of base) : 16084.dasm - System.Threading.ObjectHeader:AssignHashCode(System.Object,ulong):int (FullOpts)
          27 (12.80 % of base) : 21316.dasm - System.Threading.ObjectHeader:AssignHashCode(System.Object,ulong):int (FullOpts)
         125 (11.41 % of base) : 23330.dasm - PInvokeTests.Program:TestMarshalStructAPIs() (FullOpts)
          10 (10.00 % of base) : 4820.dasm - System.IO.Path:GetFileName(System.String):System.String (FullOpts)
          10 (10.00 % of base) : 1331.dasm - System.IO.Path:GetFileName(System.String):System.String (FullOpts)
          55 (9.47 % of base) : 12271.dasm - System.DefaultBinder:CreateParamOrder(int[],System.ReadOnlySpan`1[System.Reflection.ParameterInfo],System.String[]):ubyte (FullOpts)

Top method improvements (percentages):
         -10 (-25.00 % of base) : 8473.dasm - System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)
         -10 (-25.00 % of base) : 14112.dasm - System.Globalization.CalendricalCalculationsHelper:InitLongitude(double):double (FullOpts)
          -7 (-17.07 % of base) : 3828.dasm - System.Func`1[int]:InvokeOpenStaticThunk():int:this (FullOpts)
          -7 (-17.07 % of base) : 3831.dasm - System.Func`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
          -7 (-17.07 % of base) : 3422.dasm - System.Threading.ThreadStart:InvokeOpenStaticThunk():this (FullOpts)
          -4 (-13.79 % of base) : 9485.dasm - Generics+TestVariantCasting+GenericDelegate`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
          -4 (-13.79 % of base) : 9283.dasm - System.Action:InvokeOpenStaticThunk():this (FullOpts)
          -4 (-13.79 % of base) : 9438.dasm - System.Func`1[int]:InvokeOpenStaticThunk():int:this (FullOpts)
          -4 (-13.79 % of base) : 21052.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
          -4 (-13.79 % of base) : 18400.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
          -4 (-13.79 % of base) : 23263.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
          -4 (-13.79 % of base) : 15679.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
         -13 (-10.08 % of base) : 10100.dasm - System.Linq.Expressions.Interpreter.HybridReferenceDictionary`2[System.__Canon,System.__Canon]:TryGetValue(System.__Canon,byref):ubyte:this (FullOpts)
         -10 (-9.17 % of base) : 30338.dasm - System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation:GetPostActionCallback():System.Threading.ContextCallback (FullOpts)
          -4 (-9.09 % of base) : 31773.dasm - System.Random+Net5CompatDerivedImpl:Next():int:this (FullOpts)
          -5 (-8.77 % of base) : 279.dasm - System.Globalization.CultureData:get_Invariant():System.Globalization.CultureData (FullOpts)
          -5 (-8.77 % of base) : 3257.dasm - System.Globalization.CultureData:get_Invariant():System.Globalization.CultureData (FullOpts)
          -5 (-8.77 % of base) : 20846.dasm - System.Globalization.CultureData:get_Invariant():System.Globalization.CultureData (FullOpts)
          -5 (-8.77 % of base) : 18160.dasm - System.Globalization.CultureData:get_Invariant():System.Globalization.CultureData (FullOpts)
          -5 (-8.77 % of base) : 15608.dasm - System.Globalization.CultureData:get_Invariant():System.Globalization.CultureData (FullOpts)