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.VBuffer
1[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.ValueTuple
2[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 : 31262.dasm (3.14 % of base)
112 : 27080.dasm (2.16 % of base)
108 : 5674.dasm (1.79 % of base)
108 : 28366.dasm (13.64 % of base)
108 : 12780.dasm (1.00 % of base)
108 : 26829.dasm (4.76 % 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 : 10984.dasm (-12.64 % of base)
-320 : 5686.dasm (-8.57 % 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 : 29172.dasm (-5.14 % of base)
-144 : 6898.dasm (-9.78 % of base)
-144 : 10654.dasm (-2.13 % of base)
-144 : 14688.dasm (-5.50 % of base)
-136 : 5839.dasm (-1.71 % of base)
-136 : 5939.dasm (-1.19 % of base)
-132 : 28014.dasm (-6.72 % of base)
-132 : 18552.dasm (-2.07 % 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) : 22296.dasm - BenchmarkDotNet.Autogenerated.Runnable_180:.ctor():this (FullOpts)
92 (19.17 % of base) : 20604.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 : 128502.dasm (6.49 % of base)
184 : 142359.dasm (19.57 % of base)
184 : 25225.dasm (6.48 % 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 : 109505.dasm (12.35 % of base)
168 : 109506.dasm (11.23 % of base)
168 : 66560.dasm (11.23 % of base)
168 : 103905.dasm (12.35 % of base)
168 : 59917.dasm (11.23 % of base)
168 : 59918.dasm (12.35 % 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 : 121297.dasm (-2.17 % of base)
-212 : 123884.dasm (-2.17 % of base)
-160 : 86853.dasm (-4.90 % of base)
-160 : 86837.dasm (-4.90 % of base)
-144 : 86838.dasm (-1.52 % of base)
-140 : 113351.dasm (-1.43 % of base)
-140 : 119970.dasm (-1.47 % of base)
-132 : 124510.dasm (-1.40 % of base)
-132 : 142834.dasm (-13.64 % of base)
-132 : 144596.dasm (-13.58 % 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.49 % of base) : 128502.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
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 (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) : 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) : 66560.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 (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)
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) : 121297.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
-212 (-2.17 % of base) : 123884.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
-160 (-4.90 % of base) : 86853.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
-160 (-4.90 % of base) : 86837.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.43 % of base) : 113351.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
-140 (-1.47 % of base) : 119970.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):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)
-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) : 7281.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
24 (19.35 % of base) : 409.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) : 124442.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (Tier1-OSR)
76 (13.67 % of base) : 93667.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) : 103276.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
40 (12.82 % of base) : 141195.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)
40 (12.82 % of base) : 99716.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) : 90392.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) : 146530.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
-64 (-16.16 % of base) : 107549.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) : 73157.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)
-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 : 33513.dasm (3.46 % of base)
160 : 46158.dasm (4.21 % 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 : 18162.dasm (1.10 % of base)
76 : 22414.dasm (5.92 % of base)
76 : 18242.dasm (4.19 % of base)
68 : 35301.dasm (2.23 % of base)
64 : 32115.dasm (3.44 % of base)
64 : 59413.dasm (7.05 % of base)
64 : 34127.dasm (7.44 % of base)
64 : 52722.dasm (14.41 % 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 : 56747.dasm (-2.84 % of base)
-108 : 56749.dasm (-1.01 % of base)
-108 : 49265.dasm (-5.28 % of base)
-92 : 55779.dasm (-1.57 % of base)
-92 : 60542.dasm (-1.85 % of base)
-92 : 60547.dasm (-1.81 % of base)
-92 : 18562.dasm (-2.41 % 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 : 586612.dasm (3.61 % of base)
796 : 578676.dasm (3.61 % of base)
732 : 544994.dasm (21.53 % of base)
732 : 544997.dasm (21.53 % of base)
704 : 586614.dasm (3.07 % of base)
704 : 578681.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) : 586612.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
796 (3.61 % of base) : 578676.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) : 586614.dasm - r8NaNmul:TestEntryPoint():int (FullOpts)
704 (3.07 % of base) : 578681.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) : 437260.dasm - Internal.TypeSystem.ArrayType:get_Rank():int:this (Tier1)
-8 (-20.00 % of base) : 431751.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 : 192534.dasm (8.71 % of base)
192 : 23733.dasm (8.71 % of base)
192 : 88042.dasm (0.89 % 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 : 226914.dasm (-2.47 % of base)
-168 : 88045.dasm (-4.59 % of base)
-164 : 223323.dasm (-6.93 % of base)
-160 : 47123.dasm (-8.21 % of base)
-160 : 112825.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 : 31715.dasm (-13.45 % of base)
-128 : 199747.dasm (-13.45 % of base)
-124 : 192105.dasm (-14.09 % of base)
-124 : 224286.dasm (-4.70 % of base)
-124 : 23167.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) : 192534.dasm - Microsoft.Cci.FullMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
192 (8.71 % of base) : 23733.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) : 47123.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
-160 (-8.21 % of base) : 112825.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) : 31715.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (FullOpts)
-128 (-13.45 % of base) : 199747.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (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 (-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 (-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) : 195242.dasm - Microsoft.CodeAnalysis.CommonTypeEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
-20 (-23.81 % of base) : 26731.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 : 291332.dasm (1.48 % of base)
160 : 227024.dasm (2.29 % of base)
160 : 89139.dasm (2.96 % 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 : 424735.dasm (17.67 % of base)
904 : 465588.dasm (4.34 % 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 : 415793.dasm (-8.88 % of base)
-640 : 423713.dasm (-8.88 % of base)
-580 : 415499.dasm (-8.05 % of base)
-580 : 426511.dasm (-6.84 % 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 : 521150.dasm (-3.01 % of base)
-400 : 192775.dasm (-3.52 % of base)
-376 : 27125.dasm (-4.65 % of base)
-352 : 360008.dasm (-2.64 % of base)
-352 : 434035.dasm (-2.94 % of base)
-352 : 675220.dasm (-2.33 % 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) : 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)
-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)
-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) : 52997.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsName(ushort):ubyte (Tier1)
20 (45.45 % of base) : 89131.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) : 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) : 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) : 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) : 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) : 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) : 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)
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) : 100166.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) : 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)
-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)
-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 : 60636.dasm (0.96 % of base)
828 : 60974.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 : 245914.dasm (-1.99 % of base)
-1116 : 246310.dasm (-1.99 % of base)
-1116 : 251209.dasm (-1.99 % of base)
-1116 : 251693.dasm (-1.99 % of base)
-1116 : 240454.dasm (-1.99 % of base)
-1116 : 234596.dasm (-1.99 % of base)
-1116 : 237834.dasm (-1.99 % of base)
-1116 : 237878.dasm (-1.99 % of base)
-1116 : 252113.dasm (-1.99 % of base)
-1112 : 240602.dasm (-1.98 % of base)
-1112 : 235686.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 : 148658.dasm (-12.62 % of base)
-624 : 167412.dasm (-4.30 % 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) : 101536.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (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)
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) : 159487.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (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) : 159058.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (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) : 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 : 13587.dasm (4.81 % of base)
180 : 2498.dasm (2.25 % 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 : 30090.dasm (-1.77 % of base)
-264 : 30934.dasm (-3.10 % 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 : 4459.dasm (4.62 % of base)
308 : 17549.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 : 16228.dasm (7.19 % of base)
40 : 1842.dasm (6.45 % of base)
40 : 4474.dasm (5.99 % of base)
40 : 6933.dasm (4.10 % of base)
40 : 15794.dasm (5.21 % of base)
40 : 18528.dasm (5.21 % of base)
Top file improvements (bytes):
-368 : 15793.dasm (-4.38 % of base)
-368 : 18531.dasm (-4.38 % of base)
-152 : 18775.dasm (-4.43 % of base)
-152 : 15944.dasm (-4.43 % of base)
-112 : 18774.dasm (-4.97 % of base)
-112 : 15943.dasm (-4.97 % of base)
-100 : 1548.dasm (-7.55 % of base)
-96 : 6410.dasm (-8.33 % of base)
-96 : 6413.dasm (-3.38 % of base)
-96 : 6679.dasm (-13.04 % of base)
-96 : 15159.dasm (-8.30 % of base)
-96 : 6671.dasm (-13.04 % 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) : 4459.dasm - ReflectionTest+TestReflectionInvoke:Run() (FullOpts)
308 (4.62 % of base) : 17549.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) : 15793.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
-368 (-4.38 % of base) : 18531.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
-152 (-4.43 % of base) : 18775.dasm - Generics+TestFieldAccess:TestStaticFields() (FullOpts)
-152 (-4.43 % of base) : 15944.dasm - Generics+TestFieldAccess:TestStaticFields() (FullOpts)
-112 (-4.97 % of base) : 18774.dasm - Generics+TestFieldAccess:TestInstanceFields() (FullOpts)
-112 (-4.97 % of base) : 15943.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.33 % of base) : 6410.dasm - System.Enum:ToObject(System.Type,System.Object):System.Object (FullOpts)
-96 (-8.30 % of base) : 15159.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.ReadOnlyEmptyCollection
1ubyte
@@ -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.VBuffer
1[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 : 11744.dasm (4.93 % of base)
235 : 2657.dasm (5.69 % 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 : 12466.dasm (-2.17 % of base)
-100 : 5635.dasm (-17.99 % of base)
-91 : 13452.dasm (-5.91 % of base)
-88 : 4867.dasm (-4.80 % of base)
-84 : 20693.dasm (-5.27 % of base)
-84 : 10765.dasm (-7.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 : 60737.dasm (11.18 % of base)
484 : 55329.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 : 119230.dasm (5.39 % of base)
315 : 137170.dasm (3.88 % 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) : 60737.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)
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) : 62157.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) : 25890.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) : 83685.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) : 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) : 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) : 77473.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 : 50528.dasm (3.30 % of base)
136 : 33253.dasm (9.96 % 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 : 539797.dasm (7.66 % of base)
1372 : 545388.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 : 561237.dasm (-3.71 % of base)
-536 : 590806.dasm (-5.94 % 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) : 539797.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
1372 (7.66 % of base) : 545388.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) : 45306.dasm - System.Math:Max(byte,byte):byte (Tier1)
-6 (-30.00 % of base) : 95835.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) : 170240.dasm - System.Math:Min(short,short):short (Tier1)
-6 (-30.00 % of base) : 185515.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) : 189644.dasm - System.Math:Min(ushort,ushort):ushort (Tier1)
-5 (-29.41 % of base) : 170321.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 : 69362.dasm (4.43 % of base)
293 : 133702.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 : 63167.dasm (-4.23 % of base)
-1128 : 128384.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 : 67878.dasm (-11.56 % of base)
-133 : 132557.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) : 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)
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)
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) : 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)
-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)
-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) : 67878.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
-133 (-11.56 % of base) : 132557.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) : 195882.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerActions:AddSyntaxTreeAction(Microsoft.CodeAnalysis.Diagnostics.SyntaxTreeAnalyzerAction):this (FullOpts)
-11 (-19.64 % of base) : 176935.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 : 161073.dasm (3.46 % of base)
666 : 202368.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 : 92702.dasm (-8.80 % of base)
-196 : 154613.dasm (-2.72 % of base)
-186 : 22094.dasm (-3.72 % of base)
-180 : 185274.dasm (-9.56 % of base)
-175 : 100700.dasm (-1.79 % of base)
-170 : 22081.dasm (-8.56 % of base)
-170 : 202283.dasm (-13.05 % of base)
-169 : 209316.dasm (-4.46 % of base)
-169 : 85516.dasm (-4.92 % 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) : 161073.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
666 (3.46 % of base) : 202368.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) : 301704.dasm - System.Net.CookieParser:get_IsQuotedDomainField():System.Reflection.FieldInfo (FullOpts)
20 (31.25 % of base) : 246475.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 : 432735.dasm (14.62 % of base)
1094 : 421530.dasm (14.62 % of base)
1094 : 427211.dasm (14.62 % of base)
1094 : 430502.dasm (14.62 % of base)
1094 : 430681.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) : 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) : 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) : 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) : 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) : 375593.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) : 429857.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) : 517669.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)
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) : 128536.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) : 325479.dasm - Microsoft.DotNet.RemoteExecutor.RemoteExecutor:get_RuntimeConfigPath():System.String (Tier1)
13 (43.33 % of base) : 126059.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 : 112831.dasm (3.85 % of base)
806 : 72872.dasm (13.43 % 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 : 197593.dasm (-7.60 % of base)
-505 : 200040.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) : 197593.dasm - DataContractSerializerTests:DCS_BasicPerSerializerRoundTripAndCompare_ItRef() (FullOpts)
-505 (-7.60 % of base) : 200040.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) : 199568.dasm - SerializationTestTypes.RuntimeTypeHandleEqualityComparer:get_Comparer():SerializationTestTypes.RuntimeTypeHandleEqualityComparer (FullOpts)
20 (41.67 % of base) : 198252.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 : 4798.dasm (-2.83 % of base)
-174 : 19907.dasm (-6.13 % 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 : 3567.dasm (8.90 % of base)
163 : 21708.dasm (8.89 % 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 : 14753.dasm (1.40 % of base)
95 : 1078.dasm (1.40 % of base)
95 : 19798.dasm (1.40 % of base)
95 : 25910.dasm (1.40 % of base)
89 : 16745.dasm (1.08 % of base)
89 : 22274.dasm (1.08 % of base)
84 : 11234.dasm (8.85 % of base)
84 : 21468.dasm (8.82 % of base)
82 : 21252.dasm (5.21 % of base)
Top file improvements (bytes):
-127 : 12725.dasm (-7.20 % of base)
-61 : 20239.dasm (-6.50 % of base)
-61 : 26409.dasm (-6.50 % of base)
-61 : 1498.dasm (-6.52 % of base)
-61 : 15171.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 : 21723.dasm (-2.90 % of base)
-27 : 26685.dasm (-9.03 % of base)
-27 : 26783.dasm (-2.92 % of base)
-27 : 15558.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.90 % of base) : 3567.dasm - System.DefaultBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo: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)
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) : 14753.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (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) : 19798.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)
89 (1.08 % of base) : 16745.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
89 (1.08 % of base) : 22274.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
84 (8.85 % of base) : 11234.dasm - System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:MakeGenericType(System.Type[]):System.Type:this (FullOpts)
84 (8.82 % of base) : 21468.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.50 % of base) : 20239.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (FullOpts)
-61 (-6.50 % of base) : 26409.dasm - System.Threading.LowLevelLock:WaitAndAcquire():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)
-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.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)
-27 (-2.92 % of base) : 15558.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) : 19340.dasm - Internal.Metadata.NativeFormat.MethodSignatureHandle: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) : 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) : 622.dasm - System.Func`1[System.__Canon]:InvokeOpenStaticThunk():System.__Canon:this (FullOpts)
-4 (-11.43 % of base) : 14285.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) : 25494.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) : 19149.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
-4 (-11.43 % of base) : 12184.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
-4 (-11.43 % of base) : 14087.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
-4 (-11.43 % of base) : 25318.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) : 16158.dasm - System.Math:<BigMul>g__SoftwareFallback|47_0(ulong,ulong,byref):ulong (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) : 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.IEnumerable
1Microsoft.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.Vector512
1[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.VBuffer
1[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 : 12786.dasm (3.46 % of base)
160 : 14657.dasm (2.31 % of base)
152 : 9308.dasm (0.47 % of base)
112 : 16419.dasm (2.16 % of base)
112 : 19901.dasm (3.14 % of base)
108 : 16168.dasm (4.76 % of base)
108 : 9475.dasm (1.00 % of base)
108 : 17706.dasm (13.64 % of base)
108 : 7780.dasm (1.81 % of base)
104 : 24384.dasm (0.97 % of base)
104 : 17598.dasm (2.26 % 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 : 6296.dasm (-12.64 % of base)
-320 : 7786.dasm (-8.57 % 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 : 18503.dasm (-5.14 % of base)
-144 : 3973.dasm (-5.50 % of base)
-144 : 4699.dasm (-2.13 % 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 : 70144.dasm (6.48 % of base)
184 : 35041.dasm (8.81 % of base)
184 : 35289.dasm (8.44 % of base)
184 : 68105.dasm (6.49 % of base)
184 : 82035.dasm (19.57 % of base)
176 : 71220.dasm (6.83 % of base)
176 : 31179.dasm (3.95 % of base)
168 : 69969.dasm (7.78 % of base)
168 : 54337.dasm (5.93 % 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 : 77462.dasm (-2.17 % of base)
-212 : 67419.dasm (-2.17 % of base)
-172 : 58929.dasm (-34.96 % of base)
-164 : 63445.dasm (-0.44 % of base)
-160 : 55476.dasm (-4.90 % of base)
-160 : 55467.dasm (-4.90 % of base)
-148 : 60175.dasm (-9.44 % of base)
-144 : 55468.dasm (-1.52 % of base)
-144 : 64025.dasm (-1.51 % of base)
-140 : 57685.dasm (-1.42 % of base)
-140 : 55965.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) : 77462.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)
-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) : 55476.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
-160 (-4.90 % of base) : 55467.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) : 57685.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)
-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) : 14855.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) : 10178.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) : 38879.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) : 34197.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) : 37208.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)
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) : 55554.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) : 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 : 37361.dasm (4.22 % of base)
160 : 26787.dasm (3.46 % of base)
152 : 20588.dasm (0.47 % of base)
112 : 37711.dasm (2.16 % of base)
112 : 5643.dasm (8.86 % of base)
92 : 47424.dasm (6.04 % of base)
76 : 9529.dasm (5.92 % of base)
68 : 29275.dasm (2.23 % of base)
64 : 27988.dasm (3.44 % of base)
64 : 28546.dasm (7.31 % of base)
64 : 12698.dasm (0.92 % of base)
64 : 39779.dasm (15.84 % of base)
64 : 46896.dasm (7.05 % 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 : 37854.dasm (-1.57 % of base)
-92 : 41785.dasm (-2.41 % of base)
-92 : 48169.dasm (-1.85 % of base)
-92 : 48174.dasm (-1.81 % 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 : 40776.dasm (-2.85 % of base)
-60 : 30928.dasm (-3.17 % of base)
-60 : 38433.dasm (-2.19 % 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 : 587.dasm (8.71 % of base)
192 : 146622.dasm (0.89 % of base)
192 : 194629.dasm (8.71 % of base)
188 : 24643.dasm (3.09 % of base)
188 : 173611.dasm (3.92 % 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 : 227342.dasm (-1.79 % of base)
-176 : 105534.dasm (-9.05 % 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 : 201830.dasm (-13.45 % of base)
-128 : 8637.dasm (-13.45 % of base)
-124 : 194201.dasm (-14.09 % of base)
-124 : 221196.dasm (-4.70 % of base)
-124 : 191840.dasm (-4.70 % of base)
-124 : 9.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) : 587.dasm - Microsoft.Cci.FullMetadataWriter:CreateIndicesForNonTypeMembers(Microsoft.Cci.ITypeDefinition):this (FullOpts)
192 (8.71 % of base) : 194629.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) : 201830.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (FullOpts)
-128 (-13.45 % of base) : 8637.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitTypeReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext) (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 (-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 (-4.70 % of base) : 221196.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
-124 (-4.70 % of base) : 191840.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) : 246787.dasm - System.Reflection.TypeLoading.Ecma.EcmaCustomAttributeData:get_ConstructorArguments():System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
24 (30.00 % of base) : 259490.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) : 199019.dasm - Microsoft.CodeAnalysis.Text.SourceHashAlgorithms:GetSourceHashAlgorithm(System.Guid):int (FullOpts)
28 (18.92 % of base) : 5342.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) : 196306.dasm - Microsoft.CodeAnalysis.DocumentationCommentId:GetTotalTypeParameterCount(Microsoft.CodeAnalysis.INamedTypeSymbol):int (FullOpts)
-28 (-20.00 % of base) : 2472.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 : 169698.dasm (10.15 % of base)
184 : 170745.dasm (10.11 % of base)
176 : 101293.dasm (3.00 % of base)
172 : 275409.dasm (3.91 % of base)
172 : 242200.dasm (2.63 % of base)
164 : 78221.dasm (3.97 % of base)
160 : 211997.dasm (2.29 % of base)
160 : 241481.dasm (2.87 % of base)
160 : 132724.dasm (2.96 % of base)
156 : 275027.dasm (7.25 % of base)
156 : 132726.dasm (2.63 % of base)
156 : 191894.dasm (2.10 % of base)
156 : 20682.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 : 126841.dasm (-9.10 % of base)
-328 : 168629.dasm (-4.45 % of base)
-328 : 77206.dasm (-0.97 % 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 : 307091.dasm (-2.61 % of base)
-220 : 176945.dasm (-6.02 % 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) : 300448.dasm - System.Reflection.TypeLoading.RoConstructor:GetMethodImplementationFlags():int:this (FullOpts)
16 (23.53 % of base) : 308687.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) : 42705.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:.cctor() (FullOpts)
-40 (-23.81 % of base) : 230137.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) : 223647.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
-36 (-21.95 % of base) : 35730.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) : 270318.dasm - System.Net.LazyAsyncResult:get_Result():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) : 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) : 227477.dasm - Microsoft.CodeAnalysis.CommonEventEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
-20 (-16.13 % of base) : 39969.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 : 120744.dasm (3.41 % of base)
484 : 292697.dasm (4.95 % of base)
480 : 146353.dasm (3.48 % of base)
476 : 610236.dasm (3.32 % of base)
472 : 117174.dasm (3.33 % of base)
472 : 410123.dasm (3.33 % of base)
472 : 435332.dasm (3.33 % of base)
472 : 189507.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) : 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) : 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) : 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) : 82272.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) : 51895.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) : 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) : 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) : 98241.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) : 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)
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) : 583247.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
-96 (-40.00 % of base) : 235162.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) : 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)
-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)
-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 : 203766.dasm (7.63 % of base)
608 : 208995.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 : 231646.dasm (-1.03 % of base)
-576 : 246075.dasm (-1.03 % of base)
-576 : 246105.dasm (-1.06 % of base)
-576 : 236004.dasm (-1.03 % of base)
-576 : 241294.dasm (-1.07 % of base)
-576 : 244627.dasm (-1.03 % of base)
-576 : 233335.dasm (-1.03 % of base)
-576 : 234834.dasm (-1.03 % of base)
-576 : 247587.dasm (-1.03 % of base)
-576 : 246645.dasm (-1.03 % of base)
-576 : 246681.dasm (-1.03 % of base)
-564 : 242418.dasm (-1.00 % of base)
-564 : 235719.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 : 12574.dasm (2.67 % of base)
232 : 24780.dasm (8.59 % of base)
228 : 12085.dasm (6.96 % of base)
208 : 30993.dasm (1.98 % of base)
180 : 13526.dasm (4.81 % of base)
176 : 2495.dasm (2.20 % of base)
176 : 17221.dasm (3.11 % of base)
176 : 18872.dasm (2.52 % 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.VBuffer
1[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.ValueTuple
2[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 : 19308.dasm (3.46 % of base)
160 : 20999.dasm (2.28 % of base)
112 : 15936.dasm (2.16 % of base)
112 : 19763.dasm (3.14 % of base)
108 : 15685.dasm (4.76 % of base)
108 : 8716.dasm (1.00 % of base)
108 : 17224.dasm (13.64 % of base)
108 : 6572.dasm (1.79 % 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 : 10374.dasm (-5.50 % of base)
-144 : 7291.dasm (-3.94 % of base)
-144 : 7371.dasm (-2.13 % of base)
-144 : 18021.dasm (-5.14 % of base)
-144 : 2957.dasm (-9.78 % 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 : 87554.dasm (6.49 % of base)
184 : 92584.dasm (19.57 % of base)
184 : 90154.dasm (6.48 % of base)
176 : 61301.dasm (3.95 % of base)
176 : 91228.dasm (6.83 % of base)
160 : 87525.dasm (8.35 % of base)
160 : 87551.dasm (5.81 % of base)
152 : 63579.dasm (3.21 % of base)
148 : 93927.dasm (1.99 % of base)
140 : 75565.dasm (3.24 % of base)
140 : 78018.dasm (3.24 % of base)
140 : 33990.dasm (3.17 % 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 : 60910.dasm (-4.90 % of base)
-160 : 59507.dasm (-1.55 % of base)
-160 : 60901.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 : 85624.dasm (-1.40 % of base)
-132 : 97111.dasm (-1.71 % of base)
-124 : 65318.dasm (-29.52 % of base)
-112 : 44646.dasm (-1.05 % of base)
-112 : 27753.dasm (-0.83 % of base)
-108 : 91877.dasm (-4.54 % of base)
-108 : 31190.dasm (-2.00 % of base)
-108 : 63822.dasm (-3.35 % of base)
-108 : 65725.dasm (-4.54 % of base)
-108 : 74297.dasm (-1.87 % of base)
-108 : 38414.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.49 % of base) : 87554.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
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 (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.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)
140 (3.17 % of base) : 33990.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) : 60910.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier1-OSR)
-160 (-4.90 % of base) : 60901.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) : 91877.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) : 38414.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) : 10896.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)
24 (19.35 % of base) : 7678.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) : 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) : 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) : 80839.dasm - System.Diagnostics.Tracing.EventListener:get_EventListenersLock():System.Object (Tier1)
24 (19.35 % of base) : 18490.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)
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) : 96555.dasm - System.Globalization.Ordinal:IndexOfOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):int (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.62 % of base) : 85599.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.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) : 75723.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)
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) : 72904.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
-56 (-14.89 % of base) : 76111.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte: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)
-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) : 21241.dasm - System.Math:Max(short,short):short (Tier1)
-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) : 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 : 38582.dasm (3.46 % of base)
160 : 37051.dasm (4.21 % 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 : 11796.dasm (4.19 % of base)
76 : 17187.dasm (1.10 % of base)
76 : 48075.dasm (5.92 % of base)
72 : 48480.dasm (11.76 % of base)
68 : 29063.dasm (2.23 % of base)
64 : 45105.dasm (7.05 % of base)
64 : 27552.dasm (7.44 % of base)
64 : 26376.dasm (3.44 % 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 : 43629.dasm (-2.84 % of base)
-108 : 43631.dasm (-1.01 % of base)
-108 : 37967.dasm (-1.22 % of base)
-108 : 40418.dasm (-5.28 % 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 : 9591.dasm (-1.81 % of base)
-64 : 8165.dasm (-3.36 % 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 : 549094.dasm (5.24 % of base)
1156 : 554690.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 : 554696.dasm (4.32 % of base)
952 : 549109.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 : 513916.dasm (22.17 % of base)
736 : 513913.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 : 548978.dasm (-1.92 % of base)
-2044 : 548992.dasm (-1.92 % of base)
-1844 : 597813.dasm (-12.95 % of base)
-1828 : 571114.dasm (-10.07 % of base)
-1828 : 598588.dasm (-9.12 % 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) : 549094.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
1156 (5.24 % of base) : 554690.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) : 554696.dasm - r8NaNsub:TestEntryPoint():int (FullOpts)
952 (4.32 % of base) : 549109.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) : 513916.dasm - VectorTest:TestEntryPoint():int (FullOpts)
736 (22.17 % of base) : 513913.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 : 93807.dasm (1.85 % of base)
580 : 59666.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 : 178920.dasm (1.10 % of base)
296 : 239587.dasm (2.77 % 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 : 204007.dasm (8.71 % of base)
192 : 38647.dasm (0.89 % 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 : 264060.dasm (-1.79 % of base)
-176 : 140743.dasm (-9.05 % of base)
-168 : 250060.dasm (-2.47 % of base)
-168 : 38650.dasm (-4.59 % of base)
-164 : 220671.dasm (-6.93 % of base)
-160 : 98019.dasm (-8.21 % of base)
-160 : 64378.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) : 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)
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)
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) : 98019.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
-160 (-8.21 % of base) : 64378.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) : 230351.dasm - System.Reflection.TypeLoading.RoType:get_IsByRefLike():ubyte:this (FullOpts)
24 (27.27 % of base) : 231349.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) : 231368.dasm - System.Reflection.TypeLoading.RoType:IsValueTypeImpl():ubyte:this (FullOpts)
24 (27.27 % of base) : 230371.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) : 231303.dasm - System.Reflection.TypeLoading.RoFatMethodParameter:get_Attributes():int:this (FullOpts)
24 (25.00 % of base) : 230299.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) : 230459.dasm - System.Reflection.TypeLoading.RoGenericParameterType:get_GenericParameterPosition():int:this (FullOpts)
24 (25.00 % of base) : 231435.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) : 213517.dasm - Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[System.__Canon]:get_ExperimentalAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData: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) : 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) : 206630.dasm - Microsoft.CodeAnalysis.CommonFieldEarlyWellKnownAttributeData: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) : 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) : 206662.dasm - Microsoft.CodeAnalysis.CommonModuleWellKnownAttributeData:get_ExperimentalAttributeData():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) : 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) : 206688.dasm - Microsoft.CodeAnalysis.CommonTypeEarlyWellKnownAttributeData:get_ObsoleteAttributeData():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
-20 (-23.81 % of base) : 153709.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 : 197163.dasm (10.15 % of base)
184 : 198207.dasm (10.11 % 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 : 98893.dasm (2.63 % of base)
156 : 125062.dasm (3.24 % of base)
156 : 16265.dasm (6.18 % 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 : 42949.dasm (-1.13 % of base)
-384 : 172870.dasm (-6.69 % 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) : 129215.dasm - Roslyn.Utilities.StringExtensions:.cctor() (FullOpts)
-36 (-21.95 % of base) : 154532.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 : 580314.dasm (2.98 % of base)
436 : 643166.dasm (2.98 % of base)
432 : 267573.dasm (2.92 % of base)
432 : 306405.dasm (4.30 % 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 : 623765.dasm (-2.71 % of base)
-288 : 583232.dasm (-2.40 % 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) : 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)
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)
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) : 85083.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) : 52555.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) : 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)
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) : 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)
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 : 61223.dasm (0.96 % of base)
828 : 61561.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 : 215176.dasm (7.16 % of base)
520 : 213134.dasm (7.16 % of base)
520 : 221679.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 : 263346.dasm (-1.49 % of base)
-836 : 262658.dasm (-1.49 % of base)
-836 : 262856.dasm (-1.49 % of base)
-836 : 248992.dasm (-1.49 % of base)
-836 : 250386.dasm (-1.49 % of base)
-836 : 264010.dasm (-1.49 % of base)
-836 : 256020.dasm (-1.49 % of base)
-836 : 261801.dasm (-1.49 % of base)
-836 : 262376.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 : 20117.dasm (2.51 % of base)
176 : 2393.dasm (2.20 % of base)
176 : 18471.dasm (3.11 % of base)
168 : 11810.dasm (4.81 % of base)
168 : 1533.dasm (10.66 % of base)
152 : 15008.dasm (4.06 % of base)
148 : 5984.dasm (2.56 % of base)
148 : 2811.dasm (1.85 % 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 : 418.dasm (-2.36 % of base)
-168 : 33000.dasm (-11.48 % 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 : 1148.dasm (5.89 % of base)
268 : 4419.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 : 14834.dasm (5.62 % of base)
76 : 11486.dasm (5.65 % of base)
76 : 6112.dasm (4.95 % of base)
60 : 9979.dasm (4.20 % of base)
60 : 23661.dasm (4.20 % of base)
52 : 4954.dasm (7.83 % of base)
52 : 1463.dasm (7.83 % of base)
44 : 15203.dasm (6.15 % of base)
40 : 8204.dasm (3.72 % of base)
40 : 11971.dasm (4.10 % of base)
Top file improvements (bytes):
-368 : 9986.dasm (-4.38 % of base)
-368 : 23663.dasm (-4.38 % of base)
-152 : 23922.dasm (-4.43 % of base)
-152 : 10397.dasm (-4.43 % of base)
-112 : 10396.dasm (-4.97 % of base)
-112 : 23921.dasm (-4.97 % of base)
-100 : 4836.dasm (-7.44 % of base)
-100 : 10154.dasm (-7.55 % of base)
-96 : 6783.dasm (-3.13 % of base)
-96 : 11162.dasm (-8.33 % of base)
-96 : 14921.dasm (-8.30 % of base)
-96 : 12111.dasm (-3.38 % of base)
-96 : 12292.dasm (-13.04 % of base)
-96 : 12296.dasm (-13.04 % of base)
-96 : 6327.dasm (-8.03 % 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) : 1148.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
268 (5.89 % of base) : 4419.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.62 % of base) : 14834.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase: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 (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) : 9979.dasm - Generics+TestDelegateToCanonMethods:Run() (FullOpts)
60 (4.20 % of base) : 23661.dasm - Generics+TestDelegateToCanonMethods:Run() (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)
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)
44 (6.15 % of base) : 15203.dasm - PInvokeTests.Program:TestStringBuilder() (FullOpts)
40 (3.72 % of base) : 8204.dasm - System.Type:GetEnumData(byref,byref):this (FullOpts)
40 (4.10 % of base) : 11971.dasm - System.Type:GetEnumData(byref,byref):this (FullOpts)
Top method improvements (bytes):
-368 (-4.38 % of base) : 9986.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
-368 (-4.38 % of base) : 23663.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
-152 (-4.43 % of base) : 23922.dasm - Generics+TestFieldAccess:TestStaticFields() (FullOpts)
-152 (-4.43 % of base) : 10397.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.44 % of base) : 4836.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetStaticRuntimeMethodHandleComponents(System.RuntimeMethodHandle,byref,byref,byref):ubyte:this (FullOpts)
-100 (-7.55 % of base) : 10154.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.13 % of base) : 6783.dasm - System.Reflection.CustomAttributeTypedArgument:ToString(ubyte):System.String:this (FullOpts)
-96 (-3.38 % of base) : 12111.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) : 9379.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
12 (13.64 % of base) : 3295.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) : 8207.dasm - Internal.TypeSystem.CastingHelper:IsMethodSignatureCompatibleWith(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):ubyte (FullOpts)
-12 (-10.71 % of base) : 13924.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.ReadOnlySpan
1[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 : 7973.dasm (-13.50 % of base)
-120 : 20373.dasm (-6.68 % 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 : 51875.dasm (8.96 % of base)
448 : 83431.dasm (8.96 % of base)
448 : 79799.dasm (8.96 % of base)
435 : 35586.dasm (8.69 % of base)
435 : 45928.dasm (8.69 % of base)
435 : 53548.dasm (8.69 % of base)
435 : 74316.dasm (8.69 % of base)
435 : 47792.dasm (8.69 % of base)
435 : 67656.dasm (8.69 % of base)
435 : 94122.dasm (8.69 % of base)
428 : 36165.dasm (10.08 % of base)
Top file improvements (bytes):
-352 : 67240.dasm (-14.42 % of base)
-197 : 82353.dasm (-1.72 % of base)
-197 : 67316.dasm (-2.56 % 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 : 84719.dasm (-3.19 % of base)
-105 : 72879.dasm (-13.85 % of base)
-105 : 68256.dasm (-13.85 % of base)
-105 : 41742.dasm (-3.26 % of base)
-105 : 89970.dasm (-13.85 % of base)
-105 : 95550.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) : 51875.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) : 79799.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) : 74316.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) : 94122.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) : 72879.dasm - System.Collections.Sort`1[System.__Canon]:LinqOrderByExtension():int:this (Tier1)
-105 (-13.85 % of base) : 95550.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) : 23961.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) : 37746.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) : 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) : 73441.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) : 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) : 23837.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) : 47137.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) : 99465.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) : 39718.dasm - System.Math:Max(short,short):short (Tier1)
-6 (-30.00 % of base) : 78054.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) : 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 : 41798.dasm (-5.73 % of base)
-78 : 30895.dasm (-0.91 % of base)
-72 : 32654.dasm (-0.87 % of base)
-72 : 46557.dasm (-0.70 % of base)
-72 : 30991.dasm (-1.51 % of base)
-69 : 41905.dasm (-2.42 % of base)
-69 : 30368.dasm (-1.52 % of base)
-69 : 30373.dasm (-1.48 % 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 : 520051.dasm (3.65 % of base)
3380 : 514370.dasm (3.65 % of base)
3380 : 514384.dasm (3.65 % of base)
3380 : 520049.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 : 514486.dasm (15.39 % of base)
2754 : 520083.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) : 520051.dasm - overldrem:TestEntryPoint():int (FullOpts)
3380 (3.65 % of base) : 514384.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) : 514486.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
2754 (15.39 % of base) : 520083.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) : 519339.dasm - Test_10w5d.testout1:Func_0_3_2_6():float (FullOpts)
82 (41.00 % of base) : 513110.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 : 139383.dasm (6.08 % of base)
443 : 80573.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 : 139466.dasm (7.42 % of base)
352 : 80664.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 : 59542.dasm (-4.01 % of base)
-1072 : 121425.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 : 52416.dasm (-5.26 % of base)
-114 : 161470.dasm (-5.22 % 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) : 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)
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)
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) : 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)
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)
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) : 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)
-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)
-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) : 132777.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AbstractLexer:GetLexemeOffsetFromPosition(int):int:this (FullOpts)
4 (18.18 % of base) : 72053.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AbstractLexer:GetLexemeOffsetFromPosition(int):int:this (FullOpts)
8 (17.39 % of base) : 117733.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
8 (17.39 % of base) : 55331.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
28 (16.97 % of base) : 220144.dasm - Microsoft.CodeAnalysis.CachingFactory`2[System.__Canon,System.__Canon]:GetOrMakeValue(System.__Canon):System.__Canon:this (FullOpts)
28 (16.97 % of base) : 190289.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 : 305556.dasm (6.54 % of base)
888 : 403558.dasm (20.37 % 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) : 98100.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,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.32 % of base) : 98631.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)
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 : 128509.dasm (-3.34 % of base)
-857 : 126922.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) : 128509.dasm - System.Globalization.Tests.CultureInfoAll+<CultureInfo_TestData>d__102:MoveNext():ubyte:this (FullOpts)
-857 (-3.34 % of base) : 126922.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) : 29198.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)
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 : 11517.dasm (7.20 % of base)
140 : 14891.dasm (7.20 % of base)
140 : 6204.dasm (6.50 % 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 : 10025.dasm (0.81 % of base)
70 : 32071.dasm (0.81 % of base)
65 : 10112.dasm (6.36 % of base)
Top file improvements (bytes):
-271 : 6416.dasm (-4.95 % of base)
-262 : 12182.dasm (-4.85 % of base)
-262 : 14973.dasm (-4.84 % of base)
-92 : 2644.dasm (-4.48 % of base)
-92 : 14882.dasm (-4.47 % of base)
-92 : 5948.dasm (-4.48 % of base)
-87 : 23096.dasm (-4.28 % of base)
-87 : 17768.dasm (-4.28 % of base)
-87 : 20424.dasm (-4.26 % 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 : 10609.dasm (-5.43 % of base)
-41 : 5090.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 : 4947.dasm (-3.26 % of base)
-31 : 10463.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 (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)
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)
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) : 10025.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
70 (0.81 % of base) : 32071.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.85 % of base) : 12182.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)
-92 (-4.48 % of base) : 2644.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)
-92 (-4.48 % of base) : 5948.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.28 % of base) : 17768.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)
-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) : 10609.dasm - System.Globalization.InvariantModeCasing:ToLower(System.String):System.String (FullOpts)
-41 (-5.43 % of base) : 5090.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) : 4947.dasm - System.Threading.LowLevelLock:WaitAndAcquire():this (FullOpts)
-31 (-3.26 % of base) : 10463.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) : 11838.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
7 (16.28 % of base) : 6443.dasm - Internal.TypeSystem.MethodForInstantiatedType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
15 (15.46 % of base) : 16520.dasm - System.IO.Path:GetFileName(System.String):System.String (FullOpts)
15 (15.46 % of base) : 19178.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) : 16084.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) : 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) : 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) : 15679.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) : 21052.dasm - System.Func`1[ubyte]:InvokeOpenStaticThunk():ubyte:this (FullOpts)
-4 (-13.79 % of base) : 23263.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) : 15608.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) : 20846.dasm - System.Globalization.CultureData:get_Invariant():System.Globalization.CultureData (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)