Assembly Diffs
linux arm
Diffs are based on 2,262,678 contexts (832,863 MinOpts, 1,429,815 FullOpts).
MISSED contexts: base: 75,600 (3.23%), diff: 76,390 (3.26%)
Overall (-3,300,590 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
PerfScore in Diffs |
benchmarks.run.linux.arm.checked.mch |
16,543,852 |
-199,676 |
-0.63% |
benchmarks.run_pgo.linux.arm.checked.mch |
68,542,524 |
-243,856 |
-0.11% |
benchmarks.run_tiered.linux.arm.checked.mch |
19,429,376 |
-138,392 |
-0.77% |
coreclr_tests.run.linux.arm.checked.mch |
321,435,778 |
-1,975,302 |
+0.16% |
libraries.crossgen2.linux.arm.checked.mch |
37,762,784 |
+3,738 |
+0.88% |
libraries.pmi.linux.arm.checked.mch |
49,767,906 |
-93,410 |
+0.05% |
libraries_tests.run.linux.arm.Release.mch |
237,219,854 |
-242,640 |
+0.06% |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
93,098,472 |
-389,964 |
-0.08% |
realworld.run.linux.arm.checked.mch |
13,575,744 |
-21,088 |
+0.21% |
FullOpts (-3,300,590 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
PerfScore in Diffs |
benchmarks.run.linux.arm.checked.mch |
16,084,556 |
-199,676 |
-0.63% |
benchmarks.run_pgo.linux.arm.checked.mch |
56,557,950 |
-243,856 |
-0.11% |
benchmarks.run_tiered.linux.arm.checked.mch |
11,504,824 |
-138,392 |
-0.77% |
coreclr_tests.run.linux.arm.checked.mch |
108,984,412 |
-1,975,302 |
+0.16% |
libraries.crossgen2.linux.arm.checked.mch |
37,761,554 |
+3,738 |
+0.88% |
libraries.pmi.linux.arm.checked.mch |
49,661,682 |
-93,410 |
+0.05% |
libraries_tests.run.linux.arm.Release.mch |
115,169,888 |
-242,640 |
+0.06% |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
83,068,678 |
-389,964 |
-0.08% |
realworld.run.linux.arm.checked.mch |
13,140,820 |
-21,088 |
+0.21% |
Example diffs
benchmarks.run.linux.arm.checked.mch
-42 (-19.09%) : 14745.dasm - System.MathF:ILogB(float):int (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 13 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 7, 5 ) float -> f16 ld-addr-op single-def
+; V00 arg0 [V00,T00] ( 4, 3.50) float -> f0 ld-addr-op single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) float -> zero-ref "Inlining Arg"
;* V03 tmp2 [V03 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
@@ -20,7 +20,7 @@
;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V11 tmp10 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V12 tmp11 [V12,T03] ( 3, 1.50) int -> r3 "Inline return value spill temp"
+; V12 tmp11 [V12,T05] ( 3, 1.50) int -> r3 "Inline return value spill temp"
; V13 tmp12 [V13,T01] ( 4, 4 ) int -> r0 "Inlining Arg"
;* V14 tmp13 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V15 tmp14 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -28,77 +28,74 @@
;* V17 tmp16 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V18 tmp17 [V18 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp18 [V19 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x4)" P-INDEP
-; V20 tmp19 [V20,T04] ( 2, 1 ) byref -> r3 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+; V20 tmp19 [V20,T06] ( 2, 1 ) byref -> r3 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x4)" P-INDEP
;* V22 tmp21 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x4)" P-INDEP
-; V24 cse0 [V24,T02] ( 3, 2.50) int -> r1 "CSE - aggressive"
+; V24 cse0 [V24,T04] ( 3, 1.50) ref -> r1 "CSE - unknown"
+; V25 cse1 [V25,T03] ( 3, 2.50) int -> r1 "CSE - unknown"
+; V26 cse2 [V26,T02] ( 5, 3.50) int -> r4 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M35754_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr}
- vpush {d8-d8}
+ push {r3,r4,r11,lr}
add r11, sp, 8
- vmov s16, s0
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M35754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmov.f2i r0, s16
- mvn r1, 0x80000000
- ands r1, r0
+ vmov.f2i r4, s0
+ mvn r0, 0x80000000
+ and r1, r4, r0
sub r0, r1, 0x800000
cmp r0, 0x7f000000
blo SHORT G_M35754_IG12
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=22 bbWeight=1 PerfScore 6.00
G_M35754_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movs r0, 0
vmov.i2f s8, r0
- vcmp s16, s8
+ vcmp s0, s8
vmrs APSR, FPSCR
bne SHORT G_M35754_IG05
mov r0, 0x80000000
;; size=20 bbWeight=0.50 PerfScore 3.00
G_M35754_IG04: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8}
- pop {r11,pc}
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- vmov.f2i r0, s16
- mov r3, 0x7f800000
- bics r0, r3, r0
+ mov r0, 0x7f800000
+ bics r0, r4
cmp r0, 0
bne SHORT G_M35754_IG07
mvn r0, 0x80000000
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=14 bbWeight=0.50 PerfScore 2.50
G_M35754_IG06: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8}
- pop {r11,pc}
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
subs r0, r1, 1
movw r1, 0xd1ff
movt r1, 0xd1ff
cmp r0, r1
blo SHORT G_M35754_IG08
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ;; size=42 bbWeight=0.50 PerfScore 6.50
+ ; gcrRegs -[r0]
+ ;; size=36 bbWeight=0.50 PerfScore 6.00
G_M35754_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmov.f2i r0, s16
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ands r0, r3
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ands r0, r4
cmp r0, 0
bne SHORT G_M35754_IG09
movs r3, 32
b SHORT G_M35754_IG10
- ;; size=22 bbWeight=0.50 PerfScore 4.00
+ ;; size=18 bbWeight=0.50 PerfScore 3.50
G_M35754_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -116,22 +113,19 @@ G_M35754_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
subs r0, 126
;; size=8 bbWeight=0.50 PerfScore 1.50
G_M35754_IG11: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8}
- pop {r11,pc}
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- vmov.f2i r0, s16
- lsrs r0, r0, 23
+ lsrs r0, r4, 23
uxtb r0, r0
subs r0, 127
sxtb r0, r0
- ;; size=12 bbWeight=0.50 PerfScore 2.50
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
G_M35754_IG13: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8}
- pop {r11,pc}
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 220, prolog size 12, PerfScore 39.00, instruction count 68, allocated bytes for code 220 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (FullOpts)
+; Total bytes of code 178, prolog size 8, PerfScore 33.00, instruction count 58, allocated bytes for code 178 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (FullOpts)
; ============================================================
Unwind Info:
@@ -143,7 +137,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 110 (0x0006e) Actual length = 220 (0x0000dc)
+ Function Length : 89 (0x00059) Actual length = 178 (0x0000b2)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -163,7 +157,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- E0 vpop {d8} ; opsize 32
- A8 00 pop {r11,lr} ; opsize 32
+ A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ FF end
FF end
-8 (-18.18%) : 18465.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_1076(System.Object):int:this (FullOpts)
@@ -13,6 +13,7 @@
;* V02 loc0 [V02 ] ( 0, 0 ) struct (20) 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 ) int -> zero-ref "V02.[012..016)"
+; V05 cse0 [V05,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
;
; Lcl frame size = 0
@@ -31,15 +32,13 @@ G_M21734_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M21734_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
; gcr arg pop 0
- ;; size=22 bbWeight=0.25 PerfScore 1.75
+ ;; size=14 bbWeight=0.25 PerfScore 1.25
G_M21734_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldr r0, [r4+0x10]
;; size=2 bbWeight=1 PerfScore 1.00
@@ -47,7 +46,7 @@ G_M21734_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 44, prolog size 2, PerfScore 10.75, instruction count 16, allocated bytes for code 44 (MethodHash=925eab19) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
+; Total bytes of code 36, prolog size 2, PerfScore 10.25, instruction count 14, allocated bytes for code 36 (MethodHash=925eab19) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-18.18%) : 19705.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_602(System.Object):System.String:this (FullOpts)
@@ -13,6 +13,7 @@
;* V02 loc0 [V02 ] ( 0, 0 ) struct (40) 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.[004..008)"
+; V05 cse0 [V05,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
;
; Lcl frame size = 0
@@ -31,15 +32,13 @@ G_M684_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref,
G_M684_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
; gcr arg pop 0
- ;; size=22 bbWeight=0.25 PerfScore 1.75
+ ;; size=14 bbWeight=0.25 PerfScore 1.25
G_M684_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldr r0, [r4+0x08]
; gcrRegs +[r0]
@@ -48,7 +47,7 @@ G_M684_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 44, prolog size 2, PerfScore 10.75, instruction count 16, allocated bytes for code 44 (MethodHash=c677fd53) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
+; Total bytes of code 36, prolog size 2, PerfScore 10.25, instruction count 14, allocated bytes for code 36 (MethodHash=c677fd53) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
; ============================================================
Unwind Info:
@@ -60,7 +59,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+22 (+25.58%) : 39354.dasm - V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
@@ -8,23 +8,24 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> r4 single-def
-; V01 loc0 [V01,T02] ( 3, 2.50) ref -> r6 class-hnd exact single-def <System.String>
+; V01 loc0 [V01,T01] ( 3, 2.50) ref -> r5 class-hnd exact single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T01] ( 5, 4.50) int -> r5 "CSE - aggressive"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M52824_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,r6,r11,lr}
- add r11, sp, 16
+ push {r4,r5,r11,lr}
+ add r11, sp, 8
mov r4, r0
;; size=10 bbWeight=1 PerfScore 3.00
G_M52824_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff
- movt r5, 0xd1ff
- ldr r0, [r5]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
- ldr r1, [r5+0x04]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r1, [r1]
; gcrRegs +[r1]
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -32,17 +33,19 @@ G_M52824_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr r2, [r0]
blx r3 // V8.Crypto.RSAKey:decrypt(System.String):System.String:this
; gcrRegs -[r1]
- mov r6, r0
- ; gcrRegs +[r6]
+ mov r5, r0
+ ; gcrRegs +[r5]
uxtb r1, r4
cmp r1, 0
beq SHORT G_M52824_IG04
- ;; size=34 bbWeight=1 PerfScore 13.00
-G_M52824_IG03: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref
+ ;; size=42 bbWeight=1 PerfScore 15.00
+G_M52824_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
- ldr r1, [r5+0x04]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r1, [r1]
; gcrRegs +[r1]
- mov r2, r6
+ mov r2, r5
; gcrRegs +[r2]
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -51,21 +54,22 @@ G_M52824_IG03: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, b
ldr r3, [r3]
blx r3 // <unknown method>
; gcrRegs -[r1-r2]
- ;; size=24 bbWeight=0.50 PerfScore 4.00
-G_M52824_IG04: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref
- adds r0, r5, 4
- mov r1, r6
+ ;; size=32 bbWeight=0.50 PerfScore 5.00
+G_M52824_IG04: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ mov r1, r5
; gcrRegs +[r1]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[r1 r6]
- ;; size=14 bbWeight=1 PerfScore 5.00
+ ; gcrRegs -[r1 r5]
+ ;; size=20 bbWeight=1 PerfScore 6.00
G_M52824_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r3,r4,r5,r6,r11,pc}
+ pop {r4,r5,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 86, prolog size 8, PerfScore 26.00, instruction count 30, allocated bytes for code 86 (MethodHash=3ba131a7) for method V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 30.00, instruction count 35, allocated bytes for code 108 (MethodHash=3ba131a7) for method V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
; ============================================================
Unwind Info:
@@ -77,11 +81,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 43 (0x0002b) Actual length = 86 (0x000056)
+ Function Length : 54 (0x00036) Actual length = 108 (0x00006c)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
+ A8 30 pop {r4,r5,r11,lr} ; opsize 32
FF end
FF end
+30 (+27.78%) : 377.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
@@ -9,15 +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 -> r3
-; V02 cse0 [V02,T00] ( 6, 5.50) int -> r4 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 2 ) int -> r3
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M15866_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r11,lr}
- add r11, sp, 8
- ;; size=8 bbWeight=1 PerfScore 2.00
+ push {r11,lr}
+ mov r11, sp
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M15866_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -36,9 +35,9 @@ G_M15866_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r0, 1
;; size=2 bbWeight=1 PerfScore 1.00
G_M15866_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movw r4, 0xd1ff
- movt r4, 0xd1ff
- strb r0, [r4]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ strb r0, [r3]
movw r0, 0xd1ff
movt r0, 0xd1ff
movw r3, 0xd1ff
@@ -56,18 +55,24 @@ G_M15866_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r3, 1
;; size=2 bbWeight=1 PerfScore 1.00
G_M15866_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- strb r3, [r4+0x01]
- ldrb r3, [r4]
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldrb r3, [r3]
cmp r3, 0
beq SHORT G_M15866_IG10
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=24 bbWeight=1 PerfScore 8.00
G_M15866_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldrb r3, [r4+0x01]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldrb r3, [r3]
cmp r3, 0
beq SHORT G_M15866_IG08
movs r3, 0
b SHORT G_M15866_IG09
- ;; size=10 bbWeight=0.50 PerfScore 2.50
+ ;; size=18 bbWeight=0.50 PerfScore 3.50
G_M15866_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r3, 1
;; size=2 bbWeight=0.50 PerfScore 0.50
@@ -78,13 +83,15 @@ G_M15866_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movs r3, 0
;; size=2 bbWeight=0.50 PerfScore 0.50
G_M15866_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- strb r3, [r4+0x02]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M15866_IG12: ; bbWeight=1, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+ pop {r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 108, prolog size 8, PerfScore 37.00, instruction count 41, allocated bytes for code 108 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
+; Total bytes of code 138, prolog size 6, PerfScore 44.00, instruction count 49, allocated bytes for code 138 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -96,11 +103,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 54 (0x00036) Actual length = 108 (0x00006c)
+ Function Length : 69 (0x00045) Actual length = 138 (0x00008a)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ A8 00 pop {r11,lr} ; opsize 32
FF end
FF end
+20 (+28.57%) : 989.dasm - System.Diagnostics.Stopwatch:.cctor() (FullOpts)
@@ -8,27 +8,28 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T02] ( 5, 5 ) int -> r4 "CSE - aggressive"
-; V02 rat0 [V02,T00] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable"
-; V03 rat1 [V03,T01] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
+; V01 rat0 [V01,T00] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
+; V02 rat1 [V02,T01] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M2214_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,lr}
+ push {r3,lr}
;; size=2 bbWeight=1 PerfScore 1.00
G_M2214_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r4, 0xd1ff
- movt r4, 0xd1ff
- mov r0, r4
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
- str r1, [r0]
- movs r1, 0
- str r1, [r0+0x04]
+ str r0, [r1]
+ movs r0, 0
+ str r0, [r1+0x04]
movs r0, 1
- strb r0, [r4+0x10]
- mov r1, r4
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ strb r0, [r1]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
ldr r0, [r1]
ldr r1, [r1+0x04]
movw r3, 0xd1ff
@@ -40,13 +41,15 @@ G_M2214_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movt r3, 0xd1ff
vmov.i2d d4, r2, r3
vdiv d4, d4, d0
- vstr d4, [r4+0x08]
- ;; size=66 bbWeight=1 PerfScore 22.00
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ vstr d4, [r3]
+ ;; size=86 bbWeight=1 PerfScore 26.00
G_M2214_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,pc}
+ pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 70, prolog size 2, PerfScore 24.00, instruction count 24, allocated bytes for code 70 (MethodHash=b3f5f759) for method System.Diagnostics.Stopwatch:.cctor() (FullOpts)
+; Total bytes of code 90, prolog size 2, PerfScore 28.00, instruction count 28, allocated bytes for code 90 (MethodHash=b3f5f759) for method System.Diagnostics.Stopwatch:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -58,12 +61,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 70 (0x000046)
+ Function Length : 45 (0x0002d) Actual length = 90 (0x00005a)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- D4 pop {r4,lr} ; opsize 16
- FF end
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
benchmarks.run_pgo.linux.arm.checked.mch
-8 (-19.05%) : 73845.dasm - System.Runtime.CompilerServices.Unsafe:UnboxMicroBenchmarks.Serializers.StructRecord:byref (Tier1)
@@ -9,6 +9,7 @@
;
; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
;
; Lcl frame size = 0
@@ -27,14 +28,12 @@ G_M33476_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M33476_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M33476_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
adds r0, r4, 4
; byrRegs +[r0]
@@ -43,7 +42,7 @@ G_M33476_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=ea8b7d3b) for method System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.StructRecord](System.Object):byref (Tier1)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=ea8b7d3b) for method System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.StructRecord](System.Object):byref (Tier1)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-19.05%) : 35091.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
@@ -11,6 +11,7 @@
; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 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) int -> r0 "CSE - unknown"
;
; Lcl frame size = 0
@@ -29,14 +30,12 @@ G_M40937_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M40937_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M40937_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldr r0, [r4+0x04]
; gcrRegs +[r0]
@@ -45,7 +44,7 @@ G_M40937_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=08526016) for method (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=08526016) for method (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -57,7 +56,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-19.05%) : 58415.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
@@ -11,6 +11,7 @@
; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 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) int -> r0 "CSE - unknown"
;
; Lcl frame size = 0
@@ -29,14 +30,12 @@ G_M25960_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M25960_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M25960_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldrb r0, [r4+0x14]
;; size=2 bbWeight=1 PerfScore 1.00
@@ -44,7 +43,7 @@ G_M25960_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +55,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+6 (+13.64%) : 105541.dasm - System.Collections.IterateFor`1[System.Canon]:ImmutableArray():System.Canon:this (Tier0-FullOpts)
@@ -15,13 +15,12 @@
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V07 tmp3 [V07,T08] ( 3, 2.50) ref -> r2 single-def "field V02.array (fldOffset=0x0)" P-INDEP
-;* V08 cse0 [V08,T09] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V09 cse1 [V09,T03] ( 3, 6 ) int -> lr "CSE - aggressive"
-; V10 cse2 [V10,T05] ( 2, 4.50) byref -> r2 hoist "CSE - aggressive"
-;* V11 rat0 [V11,T06] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
-;* V12 rat1 [V12,T07] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V13 rat2 [V13,T04] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V07 tmp3 [V07,T03] ( 3, 6 ) ref -> r2 single-def "field V02.array (fldOffset=0x0)" P-INDEP
+;* V08 cse0 [V08,T08] ( 0, 0 ) int -> zero-ref "CSE - unknown"
+; V09 cse1 [V09,T04] ( 3, 6 ) int -> lr "CSE - unknown"
+;* V10 rat0 [V10,T06] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+;* V11 rat1 [V11,T07] ( 0, 0 ) int -> zero-ref "runtime lookup"
+;* V12 rat2 [V12,T05] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -39,32 +38,30 @@ G_M3722_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
movs r1, 0
ldr lr, [r2+0x04]
cmp lr, 0
- ble SHORT G_M3722_IG05
+ ble SHORT G_M3722_IG04
;; size=18 bbWeight=1 PerfScore 7.00
-G_M3722_IG03: ; bbWeight=0.50, gcVars=00000002 {V00}, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, gcvars, byref
+G_M3722_IG03: ; bbWeight=4, gcVars=00000002 {V00}, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r0]
- adds r2, 8
- ; gcrRegs -[r2]
- ; byrRegs +[r2]
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M3722_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {r2}, byref, isz
- lsls r3, r1, 2
- ldr r3, [r2+r3]
+ add r3, r2, 8
+ ; byrRegs +[r3]
+ lsl r12, r1, 2
+ ldr r3, [r3+r12]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
adds r1, r1, 1
cmp lr, r1
- bgt SHORT G_M3722_IG04
- ;; size=10 bbWeight=4 PerfScore 20.00
-G_M3722_IG05: ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref
- ; byrRegs -[r2]
+ bgt SHORT G_M3722_IG03
+ ;; size=18 bbWeight=4 PerfScore 24.00
+G_M3722_IG04: ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r2]
mov r0, r3
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
-G_M3722_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M3722_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r2,r3,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 44, prolog size 8, PerfScore 31.50, instruction count 17, allocated bytes for code 44 (MethodHash=877ef175) for method System.Collections.IterateFor`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 50, prolog size 8, PerfScore 35.00, instruction count 17, allocated bytes for code 50 (MethodHash=877ef175) for method System.Collections.IterateFor`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -76,7 +73,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 25 (0x00019) Actual length = 50 (0x000032)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+32 (+17.78%) : 122386.dasm - System.Runtime.Serialization.XmlSerializableReader:Read():ubyte:this (Tier1)
@@ -12,13 +12,13 @@
; V00 this [V00,T01] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.Runtime.Serialization.XmlSerializableReader>
; V01 loc0 [V01,T00] ( 13, 6.00) ref -> r5 class-hnd single-def <System.Xml.XmlReader>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T04] ( 3, 2 ) int -> r8 "guarded devirt return temp"
+; V03 tmp1 [V03,T03] ( 3, 2 ) int -> r7 "guarded devirt return temp"
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader>
-; V05 tmp3 [V05,T05] ( 3, 1.33) int -> r9 "guarded devirt return temp"
+; V05 tmp3 [V05,T04] ( 3, 1.33) int -> r8 "guarded devirt return temp"
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader>
-; V07 tmp5 [V07,T06] ( 3, 0.67) int -> r10 "guarded devirt return temp"
+; V07 tmp5 [V07,T05] ( 3, 0.67) int -> r9 "guarded devirt return temp"
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader>
-; V09 tmp7 [V09,T07] ( 3, 0.67) int -> r3 "guarded devirt return temp"
+; V09 tmp7 [V09,T06] ( 3, 0.67) int -> r10 "guarded devirt return temp"
;* V10 tmp8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader>
;* V11 tmp9 [V11 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader>
@@ -27,8 +27,7 @@
;* V15 tmp13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V17 tmp15 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
-; V18 cse0 [V18,T02] ( 11, 4.00) int -> r6 "CSE - aggressive"
-; V19 cse1 [V19,T03] ( 6, 4.00) int -> r7 "CSE - aggressive"
+; V18 cse0 [V18,T02] ( 11, 4.00) int -> r6 "CSE - unknown"
;
; Lcl frame size = 4
@@ -42,66 +41,74 @@ G_M44598_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
ldr r5, [r4+0x08]
; gcrRegs +[r5]
ldr r6, [r5]
- movw r7, 0xd1ff
- movt r7, 0xd1ff
- cmp r6, r7
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ cmp r6, r0
bne SHORT G_M44598_IG15
ldr r0, [r5+0x60]
ldr r3, [r5+0x08]
; gcrRegs +[r3]
ldr r3, [r3+0x20]
; gcrRegs -[r3]
- add r8, r0, r3
- ;; size=26 bbWeight=1 PerfScore 10.00
+ adds r7, r0, r3
+ ;; size=24 bbWeight=1 PerfScore 10.00
G_M44598_IG03: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
ldr r0, [r4+0x0C]
- cmp r8, r0
+ cmp r7, r0
bne SHORT G_M44598_IG09
;; size=6 bbWeight=1 PerfScore 3.00
G_M44598_IG04: ; bbWeight=0.67, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r4]
- cmp r6, r7
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ cmp r6, r0
bne SHORT G_M44598_IG16
ldr r0, [r5+0x08]
; gcrRegs +[r0]
- ldr r9, [r0+0x18]
- ;; size=10 bbWeight=0.67 PerfScore 2.67
+ ldr r8, [r0+0x18]
+ ;; size=18 bbWeight=0.67 PerfScore 4.00
G_M44598_IG05: ; bbWeight=0.67, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- cmp r9, 15
+ cmp r8, 15
beq SHORT G_M44598_IG11
;; size=6 bbWeight=0.67 PerfScore 1.33
G_M44598_IG06: ; bbWeight=0.33, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
- cmp r6, r7
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ cmp r6, r0
bne SHORT G_M44598_IG17
ldr r0, [r5+0x08]
; gcrRegs +[r0]
- ldr r10, [r0+0x18]
- ;; size=10 bbWeight=0.33 PerfScore 1.33
+ ldr r9, [r0+0x18]
+ ;; size=18 bbWeight=0.33 PerfScore 2.00
G_M44598_IG07: ; bbWeight=0.33, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- cmp r10, 1
+ cmp r9, 1
bne SHORT G_M44598_IG09
- cmp r6, r7
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ cmp r6, r0
bne SHORT G_M44598_IG18
ldr r0, [r5+0x08]
; gcrRegs +[r0]
- ldrb r3, [r0+0x31]
- ;; size=16 bbWeight=0.33 PerfScore 2.00
+ ldrb r10, [r0+0x31]
+ ;; size=24 bbWeight=0.33 PerfScore 2.67
G_M44598_IG08: ; bbWeight=0.33, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- cmp r3, 0
+ cmp r10, 0
bne SHORT G_M44598_IG11
- ;; size=4 bbWeight=0.33 PerfScore 0.67
+ ;; size=6 bbWeight=0.33 PerfScore 0.67
G_M44598_IG09: ; bbWeight=0.67, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
- cmp r6, r7
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ cmp r6, r0
bne SHORT G_M44598_IG13
mov r0, r5
; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
- ;; size=16 bbWeight=0.67 PerfScore 4.00
+ ;; size=24 bbWeight=0.67 PerfScore 5.33
G_M44598_IG10: ; bbWeight=0.67, epilog, nogc, extend
add sp, 4
pop {r4,r5,r6,r7,r8,r9,r10,r11,lr}
@@ -137,7 +144,7 @@ G_M44598_IG15: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0030 {r4 r5},
blx r3 // <unknown method>
; gcrRegs -[r0]
; gcr arg pop 0
- mov r8, r0
+ mov r7, r0
b SHORT G_M44598_IG03
;; size=12 bbWeight=0 PerfScore 0.00
G_M44598_IG16: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
@@ -149,7 +156,7 @@ G_M44598_IG16: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
blx r3 // <unknown method>
; gcrRegs -[r0]
; gcr arg pop 0
- mov r9, r0
+ mov r8, r0
b SHORT G_M44598_IG05
;; size=12 bbWeight=0 PerfScore 0.00
G_M44598_IG17: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
@@ -160,7 +167,7 @@ G_M44598_IG17: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
blx r3 // <unknown method>
; gcrRegs -[r0]
; gcr arg pop 0
- mov r10, r0
+ mov r9, r0
b SHORT G_M44598_IG07
;; size=12 bbWeight=0 PerfScore 0.00
G_M44598_IG18: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
@@ -171,11 +178,11 @@ G_M44598_IG18: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
blx r3 // <unknown method>
; gcrRegs -[r0]
; gcr arg pop 0
- mov r3, r0
+ mov r10, r0
b SHORT G_M44598_IG08
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 180, prolog size 10, PerfScore 30.67, instruction count 75, allocated bytes for code 180 (MethodHash=e96851c9) for method System.Runtime.Serialization.XmlSerializableReader:Read():ubyte:this (Tier1)
+; Total bytes of code 212, prolog size 10, PerfScore 34.67, instruction count 83, allocated bytes for code 212 (MethodHash=e96851c9) for method System.Runtime.Serialization.XmlSerializableReader:Read():ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -187,7 +194,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 90 (0x0005a) Actual length = 180 (0x0000b4)
+ Function Length : 106 (0x0006a) Actual length = 212 (0x0000d4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+40 (+22.73%) : 34898.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
@@ -9,17 +9,15 @@
; Final local variable assignments
;
; V00 arg0 [V00,T02] ( 4, 7 ) ref -> r4 class-hnd single-def <System.Type>
-; V01 loc0 [V01,T07] ( 4, 2.05) ref -> r6 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter>
-; V02 loc1 [V02,T09] ( 3, 1.25) ref -> r0 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]>
-; V03 loc2 [V03,T00] ( 5, 16.50) int -> r5
+; V01 loc0 [V01,T06] ( 4, 2.05) ref -> r5 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter>
+; V02 loc1 [V02,T04] ( 3, 5 ) ref -> r6 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]>
+; V03 loc2 [V03,T00] ( 5, 16.50) int -> r7
; V04 loc3 [V04,T01] ( 4, 12.50) ref -> r9 class-hnd <System.Text.Json.Serialization.JsonConverterFactory>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1 [V06,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V06 tmp1 [V06,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V07 tmp2 [V07,T03] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V08 tmp3 [V08,T08] ( 3, 2.05) byref -> r0 single-def "Inline stloc first use temp"
-; V09 cse0 [V09,T06] ( 2, 4.25) byref -> r8 hoist "CSE - aggressive"
-; V10 cse1 [V10,T05] ( 3, 5 ) int -> r7 "CSE - aggressive"
-; V11 cse2 [V11,T04] ( 7, 5.50) int -> r5 "CSE - aggressive"
+; V08 tmp3 [V08,T07] ( 3, 2.05) byref -> r0 single-def "Inline stloc first use temp"
+; V09 cse0 [V09,T05] ( 3, 5 ) int -> r8 "CSE - unknown"
; TEMP_01 ref -> [r11-0x1C]
;
; Lcl frame size = 8
@@ -33,9 +31,9 @@ G_M54919_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[r4]
;; size=14 bbWeight=1 PerfScore 5.00
G_M54919_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff
- movt r5, 0xd1ff
- ldr r3, [r5]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
; gcrRegs +[r3]
cmp r3, 0
bne SHORT G_M54919_IG04
@@ -48,21 +46,24 @@ G_M54919_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
blx r3 // <unknown method>
; gcrRegs +[r0]
str r0, [sp+0x04]
+ movw r0, 0xd1ff
+ ; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04]
; gcrRegs +[r1]
- mov r0, r5
- ; gcrRegs -[r0]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r5+0x04]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
; gcrRegs +[r3]
cmp r3, 0
bne SHORT G_M54919_IG06
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
; gcrRegs -[r3]
movw r3, 0xd1ff
@@ -71,17 +72,20 @@ G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
blx r3 // System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetDefaultFactoryConverters():System.Text.Json.Serialization.JsonConverterFactory[]
; gcrRegs +[r0]
str r0, [sp+0x04]
- adds r0, r5, 4
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04]
; gcrRegs +[r1]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r5]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
ldrsb r1, [r0]
mov r1, r4
@@ -94,46 +98,46 @@ G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
; byrRegs +[r0]
cmp r0, 0
bne SHORT G_M54919_IG08
- ;; size=24 bbWeight=1 PerfScore 9.00
+ ;; size=32 bbWeight=1 PerfScore 11.00
G_M54919_IG07: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
; byrRegs -[r0]
- movs r6, 0
+ movs r5, 0
b SHORT G_M54919_IG11
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M54919_IG08: ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
; gcrRegs -[r4]
; byrRegs +[r0]
- ldr r6, [r0]
- ; gcrRegs +[r6]
+ ldr r5, [r0]
+ ; gcrRegs +[r5]
;; size=2 bbWeight=0.05 PerfScore 0.05
-G_M54919_IG09: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref
+G_M54919_IG09: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
; byrRegs -[r0]
- mov r0, r6
+ mov r0, r5
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
G_M54919_IG10: ; bbWeight=1, epilog, nogc, extend
pop {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M54919_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M54919_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r0] +[r4]
- ldr r0, [r5+0x04]
- ; gcrRegs +[r0]
- movs r5, 0
- ldr r7, [r0+0x04]
- cmp r7, 0
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r6, [r0]
+ ; gcrRegs +[r6]
+ movs r7, 0
+ ldr r8, [r6+0x04]
+ cmp r8, 0
ble SHORT G_M54919_IG09
- ;; size=10 bbWeight=0.50 PerfScore 2.50
-G_M54919_IG12: ; bbWeight=0.25, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0000 {}, byref
- add r8, r0, 8
- ; byrRegs +[r8]
- ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54919_IG13: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8}, byref, isz
- ; gcrRegs -[r0]
- lsls r0, r5, 2
- ldr r9, [r8+r0]
+ ;; size=22 bbWeight=0.50 PerfScore 3.50
+G_M54919_IG12: ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+ add r0, r6, 8
+ ; byrRegs +[r0]
+ lsls r1, r7, 2
+ ldr r9, [r0+r1]
; gcrRegs +[r9]
mov r0, r9
; gcrRegs +[r0]
+ ; byrRegs -[r0]
mov r1, r4
; gcrRegs +[r1]
ldr r3, [r9]
@@ -142,24 +146,23 @@ G_M54919_IG13: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8},
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
cmp r0, 0
- bne SHORT G_M54919_IG15
- adds r5, r5, 1
- cmp r7, r5
- bgt SHORT G_M54919_IG13
- ;; size=30 bbWeight=4 PerfScore 52.00
-G_M54919_IG14: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r4 r9]
- ; byrRegs -[r8]
+ bne SHORT G_M54919_IG14
+ adds r7, r7, 1
+ cmp r8, r7
+ bgt SHORT G_M54919_IG12
+ ;; size=34 bbWeight=4 PerfScore 56.00
+G_M54919_IG13: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r4 r6 r9]
b SHORT G_M54919_IG09
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M54919_IG15: ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r6] +[r9]
- mov r6, r9
- ; gcrRegs +[r6]
+G_M54919_IG14: ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r5] +[r9]
+ mov r5, r9
+ ; gcrRegs +[r5]
b SHORT G_M54919_IG09
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 176, prolog size 12, PerfScore 91.30, instruction count 69, allocated bytes for code 176 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
+; Total bytes of code 216, prolog size 12, PerfScore 101.05, instruction count 77, allocated bytes for code 216 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -171,7 +174,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 88 (0x00058) Actual length = 176 (0x0000b0)
+ Function Length : 108 (0x0006c) Actual length = 216 (0x0000d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_tiered.linux.arm.checked.mch
-42 (-19.09%) : 32371.dasm - System.MathF:ILogB(float):int (Tier1)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 13 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 7, 5 ) float -> f16 ld-addr-op single-def
+; V00 arg0 [V00,T00] ( 4, 3.50) float -> f0 ld-addr-op single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) float -> zero-ref "Inlining Arg"
;* V03 tmp2 [V03 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
@@ -20,7 +20,7 @@
;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V11 tmp10 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V12 tmp11 [V12,T03] ( 3, 1.50) int -> r3 "Inline return value spill temp"
+; V12 tmp11 [V12,T05] ( 3, 1.50) int -> r3 "Inline return value spill temp"
; V13 tmp12 [V13,T01] ( 4, 4 ) int -> r0 "Inlining Arg"
;* V14 tmp13 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V15 tmp14 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -28,77 +28,74 @@
;* V17 tmp16 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V18 tmp17 [V18 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp18 [V19 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x4)" P-INDEP
-; V20 tmp19 [V20,T04] ( 2, 1 ) byref -> r3 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+; V20 tmp19 [V20,T06] ( 2, 1 ) byref -> r3 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x4)" P-INDEP
;* V22 tmp21 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x4)" P-INDEP
-; V24 cse0 [V24,T02] ( 3, 2.50) int -> r1 "CSE - aggressive"
+; V24 cse0 [V24,T04] ( 3, 1.50) ref -> r1 "CSE - unknown"
+; V25 cse1 [V25,T03] ( 3, 2.50) int -> r1 "CSE - unknown"
+; V26 cse2 [V26,T02] ( 5, 3.50) int -> r4 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M35754_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr}
- vpush {d8-d8}
+ push {r3,r4,r11,lr}
add r11, sp, 8
- vmov s16, s0
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M35754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmov.f2i r0, s16
- mvn r1, 0x80000000
- ands r1, r0
+ vmov.f2i r4, s0
+ mvn r0, 0x80000000
+ and r1, r4, r0
sub r0, r1, 0x800000
cmp r0, 0x7f000000
blo SHORT G_M35754_IG12
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=22 bbWeight=1 PerfScore 6.00
G_M35754_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movs r0, 0
vmov.i2f s8, r0
- vcmp s16, s8
+ vcmp s0, s8
vmrs APSR, FPSCR
bne SHORT G_M35754_IG05
mov r0, 0x80000000
;; size=20 bbWeight=0.50 PerfScore 3.00
G_M35754_IG04: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8}
- pop {r11,pc}
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- vmov.f2i r0, s16
- mov r3, 0x7f800000
- bics r0, r3, r0
+ mov r0, 0x7f800000
+ bics r0, r4
cmp r0, 0
bne SHORT G_M35754_IG07
mvn r0, 0x80000000
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=14 bbWeight=0.50 PerfScore 2.50
G_M35754_IG06: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8}
- pop {r11,pc}
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
subs r0, r1, 1
movw r1, 0xd1ff
movt r1, 0xd1ff
cmp r0, r1
blo SHORT G_M35754_IG08
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ;; size=42 bbWeight=0.50 PerfScore 6.50
+ ; gcrRegs -[r0]
+ ;; size=36 bbWeight=0.50 PerfScore 6.00
G_M35754_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmov.f2i r0, s16
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ands r0, r3
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ands r0, r4
cmp r0, 0
bne SHORT G_M35754_IG09
movs r3, 32
b SHORT G_M35754_IG10
- ;; size=22 bbWeight=0.50 PerfScore 4.00
+ ;; size=18 bbWeight=0.50 PerfScore 3.50
G_M35754_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -116,22 +113,19 @@ G_M35754_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
subs r0, 126
;; size=8 bbWeight=0.50 PerfScore 1.50
G_M35754_IG11: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8}
- pop {r11,pc}
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- vmov.f2i r0, s16
- lsrs r0, r0, 23
+ lsrs r0, r4, 23
uxtb r0, r0
subs r0, 127
sxtb r0, r0
- ;; size=12 bbWeight=0.50 PerfScore 2.50
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
G_M35754_IG13: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8}
- pop {r11,pc}
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 220, prolog size 12, PerfScore 39.00, instruction count 68, allocated bytes for code 220 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (Tier1)
+; Total bytes of code 178, prolog size 8, PerfScore 33.00, instruction count 58, allocated bytes for code 178 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (Tier1)
; ============================================================
Unwind Info:
@@ -143,7 +137,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 110 (0x0006e) Actual length = 220 (0x0000dc)
+ Function Length : 89 (0x00059) Actual length = 178 (0x0000b2)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -163,7 +157,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- E0 vpop {d8} ; opsize 32
- A8 00 pop {r11,lr} ; opsize 32
+ A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ FF end
FF end
-8 (-19.05%) : 36229.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
@@ -11,6 +11,7 @@
; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 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) int -> r0 "CSE - unknown"
;
; Lcl frame size = 0
@@ -29,14 +30,12 @@ G_M25960_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M25960_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M25960_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldrb r0, [r4+0x14]
;; size=2 bbWeight=1 PerfScore 1.00
@@ -44,7 +43,7 @@ G_M25960_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +55,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-19.05%) : 38266.dasm - System.Runtime.CompilerServices.Unsafe:UnboxMicroBenchmarks.Serializers.SimpleStructWithProperties:byref (Tier1)
@@ -9,6 +9,7 @@
;
; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
;
; Lcl frame size = 0
@@ -27,14 +28,12 @@ G_M55140_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M55140_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M55140_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
adds r0, r4, 4
; byrRegs +[r0]
@@ -43,7 +42,7 @@ G_M55140_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=4ae6289b) for method System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.SimpleStructWithProperties](System.Object):byref (Tier1)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=4ae6289b) for method System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.SimpleStructWithProperties](System.Object):byref (Tier1)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+44 (+14.29%) : 15024.dasm - System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (Tier1)
@@ -8,39 +8,38 @@
; 0 inlinees with PGO data; 6 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T03] ( 4, 3 ) ref -> [sp+0x08] class-hnd exact EH-live spill-single-def <System.Object>
+; V00 loc0 [V00,T02] ( 4, 3 ) ref -> [sp+0x08] class-hnd exact EH-live spill-single-def <System.Object>
; V01 loc1 [V01 ] ( 6, 6 ) ubyte -> [sp+0x0C] do-not-enreg[X] addr-exposed ld-addr-op
;* V02 loc2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Reflection.Emit.RuntimeAssemblyBuilder>
-; V04 loc4 [V04,T05] ( 2, 1 ) ref -> [sp+0x04] must-init class-hnd EH-live single-def <System.Reflection.Module>
+; V04 loc4 [V04,T04] ( 2, 1 ) ref -> [sp+0x04] must-init class-hnd EH-live single-def <System.Reflection.Module>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T01] ( 3, 6 ) ref -> r5 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V06 tmp1 [V06,T00] ( 3, 6 ) ref -> r4 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Module>
;* V08 tmp3 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T02] ( 2, 4 ) ubyte -> r0 "Inlining Arg"
+; V09 tmp4 [V09,T01] ( 2, 4 ) ubyte -> r0 "Inlining Arg"
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Module>
;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Emit.RuntimeModuleBuilder>
-; V13 PSPSym [V13,T06] ( 1, 1 ) int -> [sp+0x14] do-not-enreg[V] "PSPSym"
-; V14 cse0 [V14,T00] ( 8, 8 ) int -> r4 "CSE - aggressive"
-; V15 cse1 [V15,T04] ( 3, 3 ) ref -> r1 "CSE - aggressive"
+; V13 PSPSym [V13,T05] ( 1, 1 ) int -> [sp+0x10] do-not-enreg[V] "PSPSym"
+; V14 cse0 [V14,T03] ( 3, 3 ) ref -> r1 "CSE - unknown"
;
-; Lcl frame size = 24
+; Lcl frame size = 20
G_M41701_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r11,lr}
- sub sp, 24
- add r11, sp, 32
+ push {r4,r11,lr}
+ sub sp, 20
+ add r11, sp, 24
movs r0, 0
str r0, [sp+0x04] // [V04 loc4]
- add r0, sp, 40
- str r0, [sp+0x14] // [V13 PSPSym]
+ add r0, sp, 32
+ str r0, [sp+0x10] // [V13 PSPSym]
;; size=18 bbWeight=1 PerfScore 7.00
-G_M41701_IG02: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M41701_IG02: ; bbWeight=1, gcVars=00000010 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V04}
- movw r4, 0xd1ff
- movt r4, 0xd1ff
- ldr r0, [r4]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
dmb 15
cmp r0, 0
@@ -49,15 +48,17 @@ G_M41701_IG02: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, by
G_M41701_IG03: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
; GC ptr vars -{V04}
- ldr r0, [r4]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
dmb 15
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=14 bbWeight=1 PerfScore 4.00
G_M41701_IG04: ; bbWeight=1, epilog, nogc, extend
- add sp, 24
- pop {r4,r5,r11,pc}
+ add sp, 20
+ pop {r4,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
-G_M41701_IG05: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M41701_IG05: ; bbWeight=1, gcVars=00000010 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
; GC ptr vars +{V04}
movw r3, 0xd1ff
@@ -65,14 +66,16 @@ G_M41701_IG05: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, by
ldr r3, [r3]
blx r3 // System.Reflection.Emit.AssemblyBuilder:EnsureDynamicCodeSupported()
; gcr arg pop 0
- ldr r1, [r4+0x04]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r1, [r1]
; gcrRegs +[r1]
str r1, [sp+0x08] // [V00 loc0]
; GC ptr vars +{V00}
movs r0, 0
str r0, [sp+0x0C] // [V01 loc1]
- ;; size=20 bbWeight=1 PerfScore 8.00
-G_M41701_IG06: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=28 bbWeight=1 PerfScore 10.00
+G_M41701_IG06: ; bbWeight=1, gcVars=00000014 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r1]
ldrb r0, [sp+0x0C] // [V01 loc1]
cmp r0, 0
@@ -100,19 +103,24 @@ G_M41701_IG06: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {}
; gcr arg pop 0
;; size=52 bbWeight=1 PerfScore 18.00
G_M41701_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r4]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
dmb 15
cmp r0, 0
beq SHORT G_M41701_IG09
- ldr r2, [r4]
+ movw r0, 0xd1ff
+ ; gcrRegs -[r0]
+ movt r0, 0xd1ff
+ ldr r2, [r0]
; gcrRegs +[r2]
dmb 15
str r2, [sp+0x04] // [V04 loc4]
b SHORT G_M41701_IG11
- ;; size=20 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 12.00
G_M41701_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r0 r2]
+ ; gcrRegs -[r2]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -128,9 +136,9 @@ G_M41701_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blx r3 // CORINFO_HELP_NEWSFAST
; gcrRegs +[r0]
; gcr arg pop 0
- mov r5, r0
- ; gcrRegs +[r5]
- mov r0, r5
+ mov r4, r0
+ ; gcrRegs +[r4]
+ mov r0, r4
movw r1, 0xd1ff
movt r1, 0xd1ff
movw r3, 0xd1ff
@@ -139,9 +147,11 @@ G_M41701_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blx r3 // <unknown method>
; gcrRegs -[r0]
; gcr arg pop 0
- ldr r2, [r4-0xF0]
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ ldr r2, [r2]
; gcrRegs +[r2]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0]
movs r1, 1
movs r3, 0
@@ -149,19 +159,20 @@ G_M41701_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movt lr, 0xd1ff
ldr lr, [lr]
blx lr // <unknown method>
- ; gcrRegs -[r2 r5]
+ ; gcrRegs -[r2 r4]
; gcr arg pop 0
ldr r1, [r0+0x08]
; gcrRegs +[r1]
ldr r1, [r1+0x0C]
- mov r0, r4
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=82 bbWeight=1 PerfScore 27.00
-G_M41701_IG10: ; bbWeight=1, gcVars=00000008 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=94 bbWeight=1 PerfScore 30.00
+G_M41701_IG10: ; bbWeight=1, gcVars=00000004 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V04}
ldrb r0, [sp+0x0C] // [V01 loc1]
cmp r0, 0
@@ -176,34 +187,34 @@ G_M41701_IG10: ; bbWeight=1, gcVars=00000008 {V00}, gcrefRegs=0000 {}, by
; gcr arg pop 0
b SHORT G_M41701_IG03
;; size=22 bbWeight=1 PerfScore 8.00
-G_M41701_IG11: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M41701_IG11: ; bbWeight=1, gcVars=00000014 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars +{V00 V04}
bl G_M41701_IG15
;; size=4 bbWeight=1 PerfScore 1.00
G_M41701_IG12: ; bbWeight=1, nogc, extend
nop
;; size=2 bbWeight=1 PerfScore 1.00
-G_M41701_IG13: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M41701_IG13: ; bbWeight=1, gcVars=00000010 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V00}
ldr r0, [sp+0x04] // [V04 loc4]
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
G_M41701_IG14: ; bbWeight=1, epilog, nogc, extend
- add sp, 24
- pop {r4,r5,r11,pc}
+ add sp, 20
+ pop {r4,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
G_M41701_IG15: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs -[r0]
- push {r2,r3,r4,r5,r11,lr}
+ push {r3,r4,r11,lr}
add r3, r11, 8
- str r3, [sp+0x04]
+ str r3, [sp]
;; size=10 bbWeight=1 PerfScore 3.00
-G_M41701_IG16: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M41701_IG16: ; bbWeight=1, gcVars=00000014 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V00}
- ldrb r0, [r11-0x14] // [V01 loc1]
+ ldrb r0, [r11-0x0C] // [V01 loc1]
cmp r0, 0
beq SHORT G_M41701_IG17
- ldr r0, [r11-0x18] // [V00 loc0]
+ ldr r0, [r11-0x10] // [V00 loc0]
; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -213,10 +224,10 @@ G_M41701_IG16: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {}
; gcr arg pop 0
;; size=22 bbWeight=1 PerfScore 7.00
G_M41701_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
- pop {r2,r3,r4,r5,r11,pc}
+ pop {r3,r4,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 308, prolog size 18, PerfScore 102.00, instruction count 107, allocated bytes for code 308 (MethodHash=d1a05d1a) for method System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (Tier1)
+; Total bytes of code 352, prolog size 18, PerfScore 113.00, instruction count 118, allocated bytes for code 352 (MethodHash=d1a05d1a) for method System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (Tier1)
; ============================================================
Unwind Info:
@@ -228,7 +239,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 136 (0x00088) Actual length = 272 (0x000110)
+ Function Length : 158 (0x0009e) Actual length = 316 (0x00013c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -240,8 +251,8 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
...
+26 (+14.77%) : 17961.dasm - System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (Tier1)
@@ -9,20 +9,20 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 3, 3 ) ref -> r0 class-hnd single-def <System.String>
-; V01 loc0 [V01,T03] ( 2, 2 ) ref -> r4 class-hnd exact single-def <System.String>
+; V01 loc0 [V01,T02] ( 2, 2 ) ref -> r4 class-hnd exact single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 3 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.String>
-; V04 cse0 [V04,T01] ( 6, 4.50) int -> r5 "CSE - aggressive"
+; V03 tmp1 [V03,T01] ( 3, 3 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.String>
; TEMP_01 ref -> [r11-0x0C]
;
-; Lcl frame size = 8
+; Lcl frame size = 12
G_M21158_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r4,r5,r11,lr}
+ push {r4,r11,lr}
+ sub sp, 12
add r11, sp, 16
movs r1, 0
str r1, [sp+0x04]
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M21158_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
movw r3, 0xd1ff
@@ -31,16 +31,18 @@ G_M21158_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
blx r3 // <unknown method>
mov r4, r0
; gcrRegs +[r4]
- movw r5, 0xd1ff
- movt r5, 0xd1ff
- ldr r3, [r5+0x308]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
; gcrRegs +[r3]
cmp r3, 0
bne SHORT G_M21158_IG05
- ;; size=30 bbWeight=1 PerfScore 10.00
+ ;; size=28 bbWeight=1 PerfScore 10.00
G_M21158_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0 r3]
- ldr r3, [r5]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
; gcrRegs +[r3]
cmp r3, 0
bne SHORT G_M21158_IG04
@@ -49,9 +51,11 @@ G_M21158_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // System.IO.PersistedFiles:EnsureUserDirectories()
- ;; size=18 bbWeight=0.50 PerfScore 3.50
+ ;; size=26 bbWeight=0.50 PerfScore 4.50
G_M21158_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r5]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
cmp r0, 0
beq SHORT G_M21158_IG07
@@ -64,27 +68,30 @@ G_M21158_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
ldr r3, [r3]
blx r3 // System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String
str r0, [sp+0x04]
- add r0, r5, 776
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04]
; gcrRegs +[r1]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=52 bbWeight=0.50 PerfScore 8.50
+ ;; size=64 bbWeight=0.50 PerfScore 10.00
G_M21158_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
- ldr r0, [r5+0x308]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
mov r1, r4
; gcrRegs +[r1]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=22 bbWeight=1 PerfScore 7.00
G_M21158_IG06: ; bbWeight=1, epilog, nogc, extend
- add sp, 8
- pop {r4,r5,r11,lr}
+ add sp, 12
+ pop {r4,r11,lr}
bx r3 // System.IO.Path:Combine(System.String,System.String):System.String
;; size=8 bbWeight=1 PerfScore 3.00
G_M21158_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
@@ -105,30 +112,27 @@ G_M21158_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
bkpt
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 176, prolog size 12, PerfScore 34.00, instruction count 58, allocated bytes for code 176 (MethodHash=54c6ad59) for method System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (Tier1)
+; Total bytes of code 202, prolog size 14, PerfScore 39.50, instruction count 66, allocated bytes for code 202 (MethodHash=54c6ad59) for method System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (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 : 1
F bit : 0
E bit : 0
X bit : 0
Vers : 0
- Function Length : 88 (0x00058) Actual length = 176 (0x0000b0)
+ Function Length : 101 (0x00065) Actual length = 202 (0x0000ca)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Condition : 14 (0xe) (always)
- Epilog Start Index : 3 (0x03)
+ Epilog Start Index : 0 (0x00)
---- Unwind codes ----
- A8 3C pop {r2,r3,r4,r5,r11,lr} ; opsize 32
- FF end
- ---- Epilog start at index 3 ----
- 02 add sp, sp, #8 ; opsize 16
- A8 30 pop {r4,r5,r11,lr} ; opsize 32
- FF end
+ ---- Epilog start at index 0 ----
+ 03 add sp, sp, #12 ; opsize 16
+ A8 10 pop {r4,r11,lr} ; opsize 32
FF end
+40 (+22.99%) : 25331.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
@@ -9,17 +9,15 @@
; Final local variable assignments
;
; V00 arg0 [V00,T02] ( 4, 7 ) ref -> r4 class-hnd single-def <System.Type>
-; V01 loc0 [V01,T07] ( 4, 2.50) ref -> r6 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter>
-; V02 loc1 [V02,T09] ( 3, 1.25) ref -> r0 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]>
-; V03 loc2 [V03,T00] ( 5, 16.50) int -> r5
+; V01 loc0 [V01,T06] ( 4, 2.50) ref -> r5 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter>
+; V02 loc1 [V02,T04] ( 3, 5 ) ref -> r6 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]>
+; V03 loc2 [V03,T00] ( 5, 16.50) int -> r7
; V04 loc3 [V04,T01] ( 4, 12.50) ref -> r9 class-hnd <System.Text.Json.Serialization.JsonConverterFactory>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1 [V06,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V06 tmp1 [V06,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V07 tmp2 [V07,T03] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V08 tmp3 [V08,T08] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp"
-; V09 cse0 [V09,T06] ( 2, 4.25) byref -> r8 hoist "CSE - aggressive"
-; V10 cse1 [V10,T05] ( 3, 5 ) int -> r7 "CSE - aggressive"
-; V11 cse2 [V11,T04] ( 7, 5.50) int -> r5 "CSE - aggressive"
+; V08 tmp3 [V08,T07] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp"
+; V09 cse0 [V09,T05] ( 3, 5 ) int -> r8 "CSE - unknown"
; TEMP_01 ref -> [r11-0x1C]
;
; Lcl frame size = 8
@@ -33,9 +31,9 @@ G_M54919_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[r4]
;; size=14 bbWeight=1 PerfScore 5.00
G_M54919_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff
- movt r5, 0xd1ff
- ldr r3, [r5]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
; gcrRegs +[r3]
cmp r3, 0
bne SHORT G_M54919_IG04
@@ -48,21 +46,24 @@ G_M54919_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
blx r3 // <unknown method>
; gcrRegs +[r0]
str r0, [sp+0x04]
+ movw r0, 0xd1ff
+ ; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04]
; gcrRegs +[r1]
- mov r0, r5
- ; gcrRegs -[r0]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r5+0x04]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
; gcrRegs +[r3]
cmp r3, 0
bne SHORT G_M54919_IG06
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
; gcrRegs -[r3]
movw r3, 0xd1ff
@@ -71,17 +72,20 @@ G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
blx r3 // System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetDefaultFactoryConverters():System.Text.Json.Serialization.JsonConverterFactory[]
; gcrRegs +[r0]
str r0, [sp+0x04]
- adds r0, r5, 4
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04]
; gcrRegs +[r1]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r5]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
ldrsb r1, [r0]
mov r1, r4
@@ -94,36 +98,36 @@ G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
; byrRegs +[r0]
cmp r0, 0
beq SHORT G_M54919_IG08
- ;; size=24 bbWeight=1 PerfScore 9.00
+ ;; size=32 bbWeight=1 PerfScore 11.00
G_M54919_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
; gcrRegs -[r4]
- ldr r6, [r0]
- ; gcrRegs +[r6]
- b SHORT G_M54919_IG11
+ ldr r5, [r0]
+ ; gcrRegs +[r5]
+ b SHORT G_M54919_IG10
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M54919_IG08: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r6] +[r4]
+ ; gcrRegs -[r5] +[r4]
; byrRegs -[r0]
- movs r6, 0
- ldr r0, [r5+0x04]
- ; gcrRegs +[r0]
movs r5, 0
- ldr r7, [r0+0x04]
- cmp r7, 0
- ble SHORT G_M54919_IG11
- ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M54919_IG09: ; bbWeight=0.25, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0000 {}, byref
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r6, [r0]
; gcrRegs +[r6]
- add r8, r0, 8
- ; byrRegs +[r8]
- ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54919_IG10: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8}, byref, isz
- ; gcrRegs -[r0]
- lsls r0, r5, 2
- ldr r9, [r8+r0]
+ movs r7, 0
+ ldr r8, [r6+0x04]
+ cmp r8, 0
+ ble SHORT G_M54919_IG10
+ ;; size=24 bbWeight=0.50 PerfScore 4.00
+G_M54919_IG09: ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r5]
+ add r0, r6, 8
+ ; byrRegs +[r0]
+ lsls r1, r7, 2
+ ldr r9, [r0+r1]
; gcrRegs +[r9]
mov r0, r9
; gcrRegs +[r0]
+ ; byrRegs -[r0]
mov r1, r4
; gcrRegs +[r1]
ldr r3, [r9]
@@ -132,28 +136,27 @@ G_M54919_IG10: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8},
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
cmp r0, 0
- bne SHORT G_M54919_IG13
- adds r5, r5, 1
- cmp r7, r5
- bgt SHORT G_M54919_IG10
- ;; size=30 bbWeight=4 PerfScore 52.00
-G_M54919_IG11: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r4 r9]
- ; byrRegs -[r8]
- mov r0, r6
+ bne SHORT G_M54919_IG12
+ adds r7, r7, 1
+ cmp r8, r7
+ bgt SHORT G_M54919_IG09
+ ;; size=34 bbWeight=4 PerfScore 56.00
+G_M54919_IG10: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r4 r6 r9]
+ mov r0, r5
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
-G_M54919_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M54919_IG11: ; bbWeight=1, epilog, nogc, extend
pop {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M54919_IG13: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[r0 r6] +[r9]
- mov r6, r9
- ; gcrRegs +[r6]
- b SHORT G_M54919_IG11
+G_M54919_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[r0 r5] +[r9]
+ mov r5, r9
+ ; gcrRegs +[r5]
+ b SHORT G_M54919_IG10
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 174, prolog size 12, PerfScore 91.25, instruction count 68, allocated bytes for code 174 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
+; Total bytes of code 214, prolog size 12, PerfScore 101.00, instruction count 76, allocated bytes for code 214 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -165,7 +168,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 87 (0x00057) Actual length = 174 (0x0000ae)
+ Function Length : 107 (0x0006b) Actual length = 214 (0x0000d6)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.linux.arm.checked.mch
-8 (-16.00%) : 156317.dasm - Program:CastToGenericStructint:GenericStruct`1int
@@ -9,6 +9,7 @@
;
; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
;
; Lcl frame size = 4
@@ -28,13 +29,11 @@ G_M58398_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M58398_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M58398_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldrb r0, [r4+0x04]
;; size=2 bbWeight=1 PerfScore 1.00
@@ -42,7 +41,7 @@ G_M58398_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r3,r4,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 50, prolog size 8, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=a0951be1) for method Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
+; Total bytes of code 42, prolog size 8, PerfScore 11.00, instruction count 14, allocated bytes for code 42 (MethodHash=a0951be1) for method Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
; ============================================================
Unwind Info:
@@ -54,7 +53,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 50 (0x000032)
+ Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-16.00%) : 369961.dasm - BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
@@ -9,6 +9,7 @@
;
; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
;
; Lcl frame size = 4
@@ -28,13 +29,11 @@ G_M41610_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M41610_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M41610_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldr r0, [r4+0x04]
;; size=2 bbWeight=1 PerfScore 1.00
@@ -42,7 +41,7 @@ G_M41610_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r3,r4,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 50, prolog size 8, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=985a5d75) for method BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
+; Total bytes of code 42, prolog size 8, PerfScore 11.00, instruction count 14, allocated bytes for code 42 (MethodHash=985a5d75) for method BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
; ============================================================
Unwind Info:
@@ -54,7 +53,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 50 (0x000032)
+ Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-16.00%) : 378630.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
@@ -10,9 +10,10 @@
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
-;* V02 tmp2 [V02,T01] ( 0, 0 ) ubyte -> zero-ref "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V03 tmp3 [V03,T02] ( 0, 0 ) ubyte -> zero-ref "field V01.value (fldOffset=0x1)" P-INDEP
-; V04 cse0 [V04,T00] ( 2, 2 ) byref -> r0 "CSE - aggressive"
+;* V02 tmp2 [V02,T02] ( 0, 0 ) ubyte -> zero-ref "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V03 tmp3 [V03,T03] ( 0, 0 ) ubyte -> zero-ref "field V01.value (fldOffset=0x1)" P-INDEP
+; V04 cse0 [V04,T01] ( 3, 1.50) int -> r0 "CSE - unknown"
+; V05 cse1 [V05,T00] ( 2, 2 ) byref -> r0 "CSE - unknown"
;
; Lcl frame size = 4
@@ -27,14 +28,12 @@ G_M5950_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
bne SHORT G_M5950_IG04
;; size=14 bbWeight=1 PerfScore 5.00
G_M5950_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r0, 1
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- strb r0, [r3]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- strb r0, [r3]
- ;; size=22 bbWeight=0.50 PerfScore 3.50
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movs r3, 1
+ strb r3, [r0]
+ strb r3, [r0+0x01]
+ ;; size=14 bbWeight=0.50 PerfScore 2.50
G_M5950_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -44,7 +43,7 @@ G_M5950_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 50, prolog size 2, PerfScore 13.50, instruction count 17, allocated bytes for code 50 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
+; Total bytes of code 42, prolog size 2, PerfScore 12.50, instruction count 15, allocated bytes for code 42 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +55,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 50 (0x000032)
+ Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+24 (+60.00%) : 416276.dasm - Application:Display(int,System.String,int) (FullOpts)
@@ -7,25 +7,26 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T02] ( 3, 3 ) int -> r0 single-def
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r1 class-hnd single-def <System.String>
-; V02 arg2 [V02,T03] ( 3, 3 ) int -> r4 single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> r0 single-def
+; V01 arg1 [V01,T00] ( 3, 3 ) ref -> r1 class-hnd single-def <System.String>
+; V02 arg2 [V02,T02] ( 3, 3 ) int -> r4 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T00] ( 5, 5 ) int -> r5 "CSE - aggressive"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M61215_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,lr}
+ push {r4,lr}
mov r4, r2
;; size=4 bbWeight=1 PerfScore 2.00
G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
; gcrRegs +[r1]
- movw r5, 0xd1ff
- movt r5, 0xd1ff
- ldr r3, [r5]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
adds r0, r3, r0
- str r0, [r5]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ str r0, [r3]
mov r0, r1
; gcrRegs +[r0]
movw r3, 0xd1ff
@@ -34,15 +35,19 @@ G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byre
blx r3 // Application:Display(System.String)
; gcrRegs -[r0-r1]
; gcr arg pop 0
- ldr r3, [r5]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
adds r3, r3, r4
- str r3, [r5]
- ;; size=34 bbWeight=1 PerfScore 13.00
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ str r3, [r2]
+ ;; size=58 bbWeight=1 PerfScore 19.00
G_M61215_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r3,r4,r5,pc}
+ pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 40, prolog size 2, PerfScore 16.00, instruction count 16, allocated bytes for code 40 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
+; Total bytes of code 64, prolog size 2, PerfScore 22.00, instruction count 22, allocated bytes for code 64 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
; ============================================================
Unwind Info:
@@ -54,11 +59,12 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 40 (0x000028)
+ Function Length : 32 (0x00020) Actual length = 64 (0x000040)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 38 pop {r3,r4,r5,lr} ; opsize 16
+ D4 pop {r4,lr} ; opsize 16
+ FF end
FF end
FF end
+24 (+63.16%) : 424110.dasm - otherClass+C:.cctor() (FullOpts)
@@ -9,34 +9,39 @@
; 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 ) int -> r4 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M61252_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,lr}
+ push {r3,lr}
;; size=2 bbWeight=1 PerfScore 1.00
G_M61252_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r4, 0xd1ff
- movt r4, 0xd1ff
movs r0, 2
- str r0, [r4]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ str r0, [r3]
movs r0, 3
- str r0, [r4+0x04]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ str r0, [r3]
movs r0, 4
- str r0, [r4+0x08]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ str r0, [r3]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // otherClass:foo(int):int
; gcr arg pop 0
- str r0, [r4+0x0C]
- ;; size=34 bbWeight=1 PerfScore 13.00
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ str r0, [r3]
+ ;; size=58 bbWeight=1 PerfScore 19.00
G_M61252_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,pc}
+ pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 38, prolog size 2, PerfScore 15.00, instruction count 15, allocated bytes for code 38 (MethodHash=069510bb) for method otherClass+C:.cctor() (FullOpts)
+; Total bytes of code 62, prolog size 2, PerfScore 21.00, instruction count 21, allocated bytes for code 62 (MethodHash=069510bb) for method otherClass+C:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -48,12 +53,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 38 (0x000026)
+ Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- D4 pop {r4,lr} ; opsize 16
- FF end
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
+24 (+63.16%) : 424200.dasm - foo:TestEntryPoint() (FullOpts)
@@ -10,33 +10,38 @@
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V01 tmp1 [V01 ] ( 0, 0 ) byte -> zero-ref "Inline stloc first use temp"
-; V02 cse0 [V02,T00] ( 5, 5 ) int -> r4 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M48041_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,lr}
+ push {r3,lr}
;; size=2 bbWeight=1 PerfScore 1.00
G_M48041_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r4, 0xd1ff
- movt r4, 0xd1ff
movs r0, 19
- strb r0, [r4]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ strb r0, [r1]
movs r0, 3
- strb r0, [r4+0x01]
- ldrsb r0, [r4]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ strb r0, [r1]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldrsb r0, [r0]
movs r1, 3
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_DIV
; gcr arg pop 0
- strb r0, [r4+0x02]
- ;; size=34 bbWeight=1 PerfScore 12.00
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ strb r0, [r3]
+ ;; size=58 bbWeight=1 PerfScore 18.00
G_M48041_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,pc}
+ pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 38, prolog size 2, PerfScore 14.00, instruction count 14, allocated bytes for code 38 (MethodHash=5a9d4456) for method foo:TestEntryPoint() (FullOpts)
+; Total bytes of code 62, prolog size 2, PerfScore 20.00, instruction count 20, allocated bytes for code 62 (MethodHash=5a9d4456) for method foo:TestEntryPoint() (FullOpts)
; ============================================================
Unwind Info:
@@ -48,12 +53,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 38 (0x000026)
+ Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- D4 pop {r4,lr} ; opsize 16
- FF end
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
libraries.crossgen2.linux.arm.checked.mch
-20 (-20.41%) : 191537.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:SortSystem.__Canon (FullOpts)
@@ -10,73 +10,63 @@
; Final local variable assignments
;
; V00 TypeCtx [V00,T00] ( 4, 3.50) int -> r0 single-def
-; V01 arg0 [V01,T01] ( 4, 3.50) struct ( 8) [sp+0x30] do-not-enreg[SF] ld-addr-op single-def <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
+; V01 arg0 [V01,T01] ( 4, 3.50) struct ( 8) [sp+0x28] do-not-enreg[SF] ld-addr-op single-def <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
; V02 OutArgs [V02 ] ( 1, 1 ) struct ( 8) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
-; V04 tmp2 [V04,T02] ( 5, 5 ) struct (16) [sp+0x0C] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Collections.Internal.SegmentedArraySegment`1[System.__Canon]>
+;* V04 tmp2 [V04,T02] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SFA] multireg-arg ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Collections.Internal.SegmentedArraySegment`1[System.__Canon]>
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V06 tmp4 [V06,T06] ( 2, 1 ) ref -> r2 single-def "field V03._items (fldOffset=0x0)" P-INDEP
-;* V07 tmp5 [V07,T07] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP
-; V08 tmp6 [V08,T03] ( 4, 3 ) int -> r3 "V01.[004..008)"
+;* V06 tmp4 [V06,T07] ( 0, 0 ) ref -> zero-ref single-def "field V03._items (fldOffset=0x0)" P-INDEP
+;* V07 tmp5 [V07,T08] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP
+; V08 tmp6 [V08,T03] ( 2, 2 ) int -> r3 "V01.[004..008)"
; V09 tmp7 [V09,T05] ( 2, 2 ) int -> r0 "argument with side effect"
-; V10 cse0 [V10,T04] ( 4, 3 ) int -> r5 "CSE - aggressive"
+; V10 cse0 [V10,T04] ( 4, 3 ) int -> r5 "CSE - unknown"
+; V11 cse1 [V11,T06] ( 2, 1 ) ref -> r6 "CSE - unknown"
;
-; Lcl frame size = 32
+; Lcl frame size = 20
G_M14314_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push {r1,r2}
- push {r4,r5,r11,lr}
- sub sp, 32
- add r11, sp, 40
- movs r1, 0
- str r1, [sp+0x14]
- str r0, [r11-0x0C]
- ;; size=20 bbWeight=1 PerfScore 7.00
+ push {r4,r5,r6,r11,lr}
+ sub sp, 20
+ add r11, sp, 32
+ str r0, [r11-0x14]
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M14314_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r5, [sp+0x34]
+ ldr r5, [sp+0x2C]
mov r3, r5
cmp r3, 1
ble SHORT G_M14314_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M14314_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr r2, [sp+0x30]
- ; gcrRegs +[r2]
- movs r1, 0
- str r1, [sp+0x0C]
- str r1, [sp+0x10]
- str r1, [sp+0x14]
- str r1, [sp+0x18]
- str r2, [sp+0x14]
- str r3, [sp+0x18]
- str r3, [sp+0x10]
+ ldr r6, [sp+0x28]
+ ; gcrRegs +[r6]
movw r4, LOW RELOC 0xD1FFAB1E
movt r4, HIGH RELOC 0xD1FFAB1E
add r4, pc
ldr r3, [r4]
blx r3 // CORINFO_HELP_READYTORUN_GENERIC_HANDLE
- ; gcrRegs -[r2]
movs r3, 0
; gcrRegs +[r3]
str r3, [sp+0x04]
movs r1, 0
- ldr r3, [sp+0x14]
mov r2, r5
+ mov r3, r6
str r5, [sp]
movw r4, LOW RELOC 0xD1FFAB1E
movt r4, HIGH RELOC 0xD1FFAB1E
add r4, pc
ldr lr, [r4]
blx lr // <unknown method>
- ; gcrRegs -[r3]
- ;; size=60 bbWeight=0.50 PerfScore 12.50
+ ; gcrRegs -[r3 r6]
+ ;; size=44 bbWeight=0.50 PerfScore 8.50
G_M14314_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- add sp, 32
- pop {r4,r5,r11,lr}
+ add sp, 20
+ pop {r4,r5,r6,r11,lr}
add sp, 8
bx lr
;; size=10 bbWeight=1 PerfScore 4.00
-; Total bytes of code 98, prolog size 20, PerfScore 27.50, instruction count 40, allocated bytes for code 98 (MethodHash=d48bc815) for method Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
+; Total bytes of code 78, prolog size 16, PerfScore 21.50, instruction count 30, allocated bytes for code 78 (MethodHash=d48bc815) for method Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
; ============================================================
Unwind Info:
@@ -88,20 +78,20 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 49 (0x00031) Actual length = 98 (0x000062)
+ Function Length : 39 (0x00027) Actual length = 78 (0x00004e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Condition : 14 (0xe) (always)
Epilog Start Index : 6 (0x06)
---- Unwind codes ----
- 08 add sp, sp, #32 ; opsize 16
- A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ 05 add sp, sp, #20 ; opsize 16
+ A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
EC 06 pop {r1,r2} ; opsize 16
FF end
---- Epilog start at index 6 ----
- 08 add sp, sp, #32 ; opsize 16
- A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ 05 add sp, sp, #20 ; opsize 16
+ A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
02 add sp, sp, #8 ; opsize 16
FD end + nop ; opsize 16
FF end
-20 (-20.41%) : 169822.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:SortSystem.__Canon (FullOpts)
@@ -10,73 +10,63 @@
; Final local variable assignments
;
; V00 TypeCtx [V00,T00] ( 4, 3.50) int -> r0 single-def
-; V01 arg0 [V01,T01] ( 4, 3.50) struct ( 8) [sp+0x30] do-not-enreg[SF] ld-addr-op single-def <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
+; V01 arg0 [V01,T01] ( 4, 3.50) struct ( 8) [sp+0x28] do-not-enreg[SF] ld-addr-op single-def <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
; V02 OutArgs [V02 ] ( 1, 1 ) struct ( 8) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
-; V04 tmp2 [V04,T02] ( 5, 5 ) struct (16) [sp+0x0C] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Collections.Internal.SegmentedArraySegment`1[System.__Canon]>
+;* V04 tmp2 [V04,T02] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SFA] multireg-arg ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Collections.Internal.SegmentedArraySegment`1[System.__Canon]>
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V06 tmp4 [V06,T06] ( 2, 1 ) ref -> r2 single-def "field V03._items (fldOffset=0x0)" P-INDEP
-;* V07 tmp5 [V07,T07] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP
-; V08 tmp6 [V08,T03] ( 4, 3 ) int -> r3 "V01.[004..008)"
+;* V06 tmp4 [V06,T07] ( 0, 0 ) ref -> zero-ref single-def "field V03._items (fldOffset=0x0)" P-INDEP
+;* V07 tmp5 [V07,T08] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP
+; V08 tmp6 [V08,T03] ( 2, 2 ) int -> r3 "V01.[004..008)"
; V09 tmp7 [V09,T05] ( 2, 2 ) int -> r0 "argument with side effect"
-; V10 cse0 [V10,T04] ( 4, 3 ) int -> r5 "CSE - aggressive"
+; V10 cse0 [V10,T04] ( 4, 3 ) int -> r5 "CSE - unknown"
+; V11 cse1 [V11,T06] ( 2, 1 ) ref -> r6 "CSE - unknown"
;
-; Lcl frame size = 32
+; Lcl frame size = 20
G_M14314_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push {r1,r2}
- push {r4,r5,r11,lr}
- sub sp, 32
- add r11, sp, 40
- movs r1, 0
- str r1, [sp+0x14]
- str r0, [r11-0x0C]
- ;; size=20 bbWeight=1 PerfScore 7.00
+ push {r4,r5,r6,r11,lr}
+ sub sp, 20
+ add r11, sp, 32
+ str r0, [r11-0x14]
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M14314_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r5, [sp+0x34]
+ ldr r5, [sp+0x2C]
mov r3, r5
cmp r3, 1
ble SHORT G_M14314_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M14314_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr r2, [sp+0x30]
- ; gcrRegs +[r2]
- movs r1, 0
- str r1, [sp+0x0C]
- str r1, [sp+0x10]
- str r1, [sp+0x14]
- str r1, [sp+0x18]
- str r2, [sp+0x14]
- str r3, [sp+0x18]
- str r3, [sp+0x10]
+ ldr r6, [sp+0x28]
+ ; gcrRegs +[r6]
movw r4, LOW RELOC 0xD1FFAB1E
movt r4, HIGH RELOC 0xD1FFAB1E
add r4, pc
ldr r3, [r4]
blx r3 // CORINFO_HELP_READYTORUN_GENERIC_HANDLE
- ; gcrRegs -[r2]
movs r3, 0
; gcrRegs +[r3]
str r3, [sp+0x04]
movs r1, 0
- ldr r3, [sp+0x14]
mov r2, r5
+ mov r3, r6
str r5, [sp]
movw r4, LOW RELOC 0xD1FFAB1E
movt r4, HIGH RELOC 0xD1FFAB1E
add r4, pc
ldr lr, [r4]
blx lr // <unknown method>
- ; gcrRegs -[r3]
- ;; size=60 bbWeight=0.50 PerfScore 12.50
+ ; gcrRegs -[r3 r6]
+ ;; size=44 bbWeight=0.50 PerfScore 8.50
G_M14314_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- add sp, 32
- pop {r4,r5,r11,lr}
+ add sp, 20
+ pop {r4,r5,r6,r11,lr}
add sp, 8
bx lr
;; size=10 bbWeight=1 PerfScore 4.00
-; Total bytes of code 98, prolog size 20, PerfScore 27.50, instruction count 40, allocated bytes for code 98 (MethodHash=d48bc815) for method Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
+; Total bytes of code 78, prolog size 16, PerfScore 21.50, instruction count 30, allocated bytes for code 78 (MethodHash=d48bc815) for method Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
; ============================================================
Unwind Info:
@@ -88,20 +78,20 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 49 (0x00031) Actual length = 98 (0x000062)
+ Function Length : 39 (0x00027) Actual length = 78 (0x00004e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Condition : 14 (0xe) (always)
Epilog Start Index : 6 (0x06)
---- Unwind codes ----
- 08 add sp, sp, #32 ; opsize 16
- A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ 05 add sp, sp, #20 ; opsize 16
+ A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
EC 06 pop {r1,r2} ; opsize 16
FF end
---- Epilog start at index 6 ----
- 08 add sp, sp, #32 ; opsize 16
- A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ 05 add sp, sp, #20 ; opsize 16
+ A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
02 add sp, sp, #8 ; opsize 16
FD end + nop ; opsize 16
FF end
-36 (-18.37%) : 79201.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
@@ -9,38 +9,41 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.Xml.XmlSubtreeReader>
-; V01 arg1 [V01,T04] ( 3, 6 ) ref -> r1 class-hnd single-def <System.String>
-; V02 arg2 [V02,T07] ( 3, 4 ) ref -> r2 class-hnd single-def <System.String>
-; V03 loc0 [V03,T01] ( 9, 22.50) int -> r0
-; V04 loc1 [V04,T17] ( 2, 1 ) ref -> [sp+0x04] class-hnd exact spill-single-def <<unknown class>>
+; V00 this [V00,T10] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.Xml.XmlSubtreeReader>
+; V01 arg1 [V01,T07] ( 3, 6 ) ref -> r1 class-hnd single-def <System.String>
+; V02 arg2 [V02,T11] ( 3, 4 ) ref -> r2 class-hnd single-def <System.String>
+; V03 loc0 [V03,T01] ( 7, 21.50) int -> r0
+; V04 loc1 [V04,T18] ( 2, 1 ) ref -> r7 class-hnd exact <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T09] ( 3, 3 ) ref -> r3 class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
-; V07 tmp2 [V07,T14] ( 2, 2 ) ref -> lr class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
+;* V06 tmp1 [V06,T19] ( 0, 0 ) ref -> zero-ref class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
+; V07 tmp2 [V07,T15] ( 2, 2 ) ref -> r1 class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.String>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.String>
-; V10 tmp5 [V10,T00] ( 3, 24 ) ref -> lr "arr expr"
-;* V11 tmp6 [V11,T08] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V12 tmp7 [V12,T18] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V13 tmp8 [V13,T10] ( 3, 3 ) ref -> lr "arr expr"
-; V14 tmp9 [V14,T12] ( 3, 3 ) int -> r12 "index expr"
-; V15 tmp10 [V15,T11] ( 3, 3 ) ref -> r5 "arr expr"
-; V16 tmp11 [V16,T15] ( 2, 2 ) int -> r1 "index expr"
-; V17 cse0 [V17,T02] ( 4, 10.50) ref -> lr "CSE - aggressive"
-; V18 cse1 [V18,T13] ( 5, 2.50) int -> r2 "CSE - moderate"
-; V19 cse2 [V19,T03] ( 5, 6 ) ref -> r5 hoist "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 4, 6.50) int -> r3 "CSE - aggressive"
-; V21 cse4 [V21,T16] ( 3, 1.50) int -> r6 "CSE - moderate"
+; V10 tmp5 [V10,T00] ( 3, 24 ) ref -> r12 "arr expr"
+;* V11 tmp6 [V11,T12] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V12 tmp7 [V12,T20] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V13 tmp8 [V13,T21] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V14 tmp9 [V14,T13] ( 3, 3 ) int -> r1 "index expr"
+;* V15 tmp10 [V15,T22] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V16 tmp11 [V16,T16] ( 2, 2 ) int -> r1 "index expr"
+; V17 cse0 [V17,T05] ( 2, 4.50) ref -> lr hoist "CSE - unknown"
+; V18 cse1 [V18,T09] ( 4, 6.50) int -> r3 "CSE - unknown"
+; V19 cse2 [V19,T04] ( 4, 9 ) int -> r5 "CSE - unknown"
+; V20 cse3 [V20,T08] ( 2, 8 ) ref -> r7 "CSE - unknown"
+; V21 cse4 [V21,T02] ( 4, 10.50) ref -> r7 "CSE - unknown"
+; V22 cse5 [V22,T14] ( 5, 2.50) int -> r2 "CSE - unknown"
+; V23 cse6 [V23,T03] ( 5, 9.50) byref -> r6 "CSE - unknown"
+; V24 cse7 [V24,T17] ( 3, 1.50) int -> r8 "CSE - unknown"
+; V25 cse8 [V25,T06] ( 3, 8.50) int -> r12 "CSE - unknown"
;
-; Lcl frame size = 12
+; Lcl frame size = 4
G_M23254_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r11,lr}
- sub sp, 12
+ push {r3,r4,r5,r6,r7,r8,r11,lr}
add r11, sp, 24
mov r4, r0
; gcrRegs +[r4]
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M23254_IG02: ; bbWeight=1, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r1-r2]
movs r0, 0
@@ -49,111 +52,86 @@ G_M23254_IG02: ; bbWeight=1, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}
ble SHORT G_M23254_IG07
;; size=8 bbWeight=1 PerfScore 4.00
G_M23254_IG03: ; bbWeight=0.50, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}, byref
- ldr r5, [r4+0x10]
- ; gcrRegs +[r5]
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M23254_IG04: ; bbWeight=4, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
- mov lr, r5
+ ldr lr, [r4+0x10]
; gcrRegs +[lr]
- ldr r12, [lr+0x04]
- cmp r0, r12
- bhs SHORT G_M23254_IG11
- add lr, lr, 8
- ; gcrRegs -[lr]
- ; byrRegs +[lr]
- lsl r12, r0, 2
- ldr lr, [lr+r12]
- ; gcrRegs +[lr]
- ; byrRegs -[lr]
- ldr r12, [lr+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M23254_IG04: ; bbWeight=4, gcrefRegs=4016 {r1 r2 r4 lr}, byrefRegs=0000 {}, byref, isz
+ mov r12, lr
; gcrRegs +[r12]
- cmp r12, r1
+ ldr r5, [r12+0x04]
+ cmp r0, r5
+ bhs SHORT G_M23254_IG11
+ add r6, r12, 8
+ ; byrRegs +[r6]
+ lsl r12, r0, 2
+ ; gcrRegs -[r12]
+ ldr r7, [r6+r12]
+ ; gcrRegs +[r7]
+ ldr r8, [r7+0x08]
+ ; gcrRegs +[r8]
+ cmp r8, r1
bne SHORT G_M23254_IG06
;; size=30 bbWeight=4 PerfScore 40.00
-G_M23254_IG05: ; bbWeight=2, gcrefRegs=4036 {r1 r2 r4 r5 lr}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r12]
- ldr r12, [lr+0x04]
- ; gcrRegs +[r12]
- cmp r12, r2
+G_M23254_IG05: ; bbWeight=2, gcrefRegs=4096 {r1 r2 r4 r7 lr}, byrefRegs=0040 {r6}, byref, isz
+ ; gcrRegs -[r8]
+ ldr r8, [r7+0x04]
+ ; gcrRegs +[r8]
+ cmp r8, r2
beq SHORT G_M23254_IG08
;; size=8 bbWeight=2 PerfScore 6.00
-G_M23254_IG06: ; bbWeight=4, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r12 lr]
+G_M23254_IG06: ; bbWeight=4, gcrefRegs=4016 {r1 r2 r4 lr}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r7-r8]
+ ; byrRegs -[r6]
adds r0, r0, 1
cmp r0, r3
blt SHORT G_M23254_IG04
;; size=6 bbWeight=4 PerfScore 12.00
G_M23254_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[r1-r2 r4-r5]
- add sp, 12
- pop {r4,r5,r6,r11,pc}
- ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M23254_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=4030 {r4 r5 lr}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r4-r5 lr]
+ ; gcrRegs -[r1-r2 r4 lr]
+ pop {r3,r4,r5,r6,r7,r8,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M23254_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0090 {r4 r7}, byrefRegs=0040 {r6}, gcvars, byref, isz
+ ; gcrRegs +[r4 r7]
+ ; byrRegs +[r6]
subs r2, r3, 1
cmp r0, r2
bge SHORT G_M23254_IG09
- str lr, [sp+0x04] // [V04 loc1]
- ; GC ptr vars +{V04}
- mov r3, r5
- ; gcrRegs +[r3]
- mov lr, r5
- mov r12, r2
- ldr r6, [lr+0x04]
- cmp r12, r6
- bhs SHORT G_M23254_IG11
- add lr, lr, 8
- ; gcrRegs -[lr]
- ; byrRegs +[lr]
- lsl r6, r12, 2
- ldr lr, [lr+r6]
- ; gcrRegs +[lr]
- ; byrRegs -[lr]
- ldr r12, [r3+0x04]
- cmp r0, r12
- bhs SHORT G_M23254_IG11
- adds r3, 8
- ; gcrRegs -[r3]
- ; byrRegs +[r3]
- lsls r0, r0, 2
- adds r0, r3, r0
- ; byrRegs +[r0]
- mov r1, lr
- ; gcrRegs +[r1]
- movw r12, LOW RELOC 0xD1FFAB1E
- movt r12, HIGH RELOC 0xD1FFAB1E
- add r12, pc
- ldr r12, [r12]
- blx r12 // CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[r1 lr]
- ; byrRegs -[r0 r3]
mov r1, r2
- ldr r0, [r5+0x04]
- cmp r1, r0
+ cmp r1, r5
bhs SHORT G_M23254_IG11
- add r1, r5, 8
- ; byrRegs +[r1]
- adds r0, r1, r6
- ; byrRegs +[r0]
- ldr r1, [sp+0x04] // [V04 loc1]
+ lsl r8, r1, 2
+ ldr r1, [r6+r8]
; gcrRegs +[r1]
- ; byrRegs -[r1]
+ add r0, r6, r12
+ ; byrRegs +[r0]
movw r12, LOW RELOC 0xD1FFAB1E
movt r12, HIGH RELOC 0xD1FFAB1E
add r12, pc
ldr r12, [r12]
- ; GC ptr vars -{V04}
blx r12 // CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[r1 r5]
+ ; gcrRegs -[r1]
; byrRegs -[r0]
- ;; size=100 bbWeight=0.50 PerfScore 18.50
+ mov r1, r2
+ cmp r1, r5
+ bhs SHORT G_M23254_IG11
+ add r0, r6, r8
+ ; byrRegs +[r0]
+ mov r1, r7
+ ; gcrRegs +[r1]
+ movw r12, LOW RELOC 0xD1FFAB1E
+ movt r12, HIGH RELOC 0xD1FFAB1E
+ add r12, pc
+ ldr r12, [r12]
+ blx r12 // CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[r1 r7]
+ ; byrRegs -[r0 r6]
+ ;; size=68 bbWeight=0.50 PerfScore 12.00
G_M23254_IG09: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
str r2, [r4+0x30]
;; size=2 bbWeight=0.50 PerfScore 0.50
G_M23254_IG10: ; bbWeight=0.50, epilog, nogc, extend
- add sp, 12
- pop {r4,r5,r6,r11,pc}
- ;; size=6 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r5,r6,r7,r8,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M23254_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r4]
movw r3, LOW RELOC 0xD1FFAB1E
@@ -165,7 +143,7 @@ G_M23254_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
bkpt
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 12, PerfScore 87.50, instruction count 73, allocated bytes for code 196 (MethodHash=dfe8a529) for method System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
+; Total bytes of code 160, prolog size 10, PerfScore 79.00, instruction count 57, allocated bytes for code 160 (MethodHash=dfe8a529) for method System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
; ============================================================
Unwind Info:
@@ -177,7 +155,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 98 (0x00062) Actual length = 196 (0x0000c4)
+ Function Length : 80 (0x00050) Actual length = 160 (0x0000a0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -189,7 +167,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
...
+12 (+28.57%) : 114390.dasm - System.Diagnostics.Activity:get_TraceId():System.Diagnostics.ActivityTraceId:this (FullOpts)
@@ -13,13 +13,12 @@
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Diagnostics.ActivityTraceId>
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.String>
-; V04 tmp3 [V04,T02] ( 2, 2 ) ref -> r0 single-def "field V02._hexString (fldOffset=0x0)" P-INDEP
-; V05 cse0 [V05,T01] ( 3, 3 ) int -> r6 "CSE - aggressive"
+; V04 tmp3 [V04,T01] ( 2, 2 ) ref -> r0 single-def "field V02._hexString (fldOffset=0x0)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M14062_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,lr}
+ push {r3,r4,r5,lr}
mov r5, r0
; gcrRegs +[r5]
;; size=4 bbWeight=1 PerfScore 2.00
@@ -27,8 +26,8 @@ G_M14062_IG02: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
movw r0, LOW RELOC 0xD1FFAB1E
movt r0, HIGH RELOC 0xD1FFAB1E
add r0, pc
- ldr r6, [r0]
- ldr r0, [r5+r6]
+ ldr r0, [r0]
+ ldr r0, [r5+r0]
; gcrRegs +[r0]
cmp r0, 0
bne SHORT G_M14062_IG04
@@ -46,14 +45,18 @@ G_M14062_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 3.00
G_M14062_IG04: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
- ldr r0, [r5+r6]
+ movw r0, LOW RELOC 0xD1FFAB1E
+ movt r0, HIGH RELOC 0xD1FFAB1E
+ add r0, pc
+ ldr r0, [r0]
+ ldr r0, [r5+r0]
; gcrRegs +[r0]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M14062_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,pc}
+ pop {r3,r4,r5,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 14.00, instruction count 17, allocated bytes for code 42 (MethodHash=8296c911) for method System.Diagnostics.Activity:get_TraceId():System.Diagnostics.ActivityTraceId:this (FullOpts)
+; Total bytes of code 54, prolog size 2, PerfScore 18.00, instruction count 21, allocated bytes for code 54 (MethodHash=8296c911) for method System.Diagnostics.Activity:get_TraceId():System.Diagnostics.ActivityTraceId:this (FullOpts)
; ============================================================
Unwind Info:
@@ -65,12 +68,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- D6 pop {r4,r5,r6,lr} ; opsize 16
- FF end
+ ED 38 pop {r3,r4,r5,lr} ; opsize 16
FF end
FF end
+12 (+28.57%) : 87448.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeClass():Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
@@ -10,12 +10,11 @@
;
; V00 this [V00,T00] ( 5, 4.50) ref -> r5 this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) int -> r6 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M38112_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,lr}
+ push {r3,r4,r5,lr}
mov r5, r0
; gcrRegs +[r5]
;; size=4 bbWeight=1 PerfScore 2.00
@@ -23,8 +22,8 @@ G_M38112_IG02: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
movw r0, LOW RELOC 0xD1FFAB1E
movt r0, HIGH RELOC 0xD1FFAB1E
add r0, pc
- ldr r6, [r0]
- ldr r0, [r5+r6]
+ ldr r0, [r0]
+ ldr r0, [r5+r0]
; gcrRegs +[r0]
cmp r0, 0
bne SHORT G_M38112_IG04
@@ -42,14 +41,18 @@ G_M38112_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 3.00
G_M38112_IG04: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
- ldr r0, [r5+r6]
+ movw r0, LOW RELOC 0xD1FFAB1E
+ movt r0, HIGH RELOC 0xD1FFAB1E
+ add r0, pc
+ ldr r0, [r0]
+ ldr r0, [r5+r0]
; gcrRegs +[r0]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M38112_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,pc}
+ pop {r3,r4,r5,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 14.00, instruction count 17, allocated bytes for code 42 (MethodHash=9bd26b1f) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeClass():Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
+; Total bytes of code 54, prolog size 2, PerfScore 18.00, instruction count 21, allocated bytes for code 54 (MethodHash=9bd26b1f) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeClass():Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
; ============================================================
Unwind Info:
@@ -61,12 +64,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- D6 pop {r4,r5,r6,lr} ; opsize 16
- FF end
+ ED 38 pop {r3,r4,r5,lr} ; opsize 16
FF end
FF end
+12 (+28.57%) : 115944.dasm - Internal.TypeSystem.Ecma.EcmaMethod:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
@@ -13,13 +13,12 @@
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <Internal.TypeSystem.Instantiation>
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc[]>
-; V04 tmp3 [V04,T02] ( 2, 2 ) ref -> r0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP
-; V05 cse0 [V05,T01] ( 3, 3 ) int -> r6 "CSE - aggressive"
+; V04 tmp3 [V04,T01] ( 2, 2 ) ref -> r0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M42175_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,lr}
+ push {r3,r4,r5,lr}
mov r5, r0
; gcrRegs +[r5]
;; size=4 bbWeight=1 PerfScore 2.00
@@ -27,8 +26,8 @@ G_M42175_IG02: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
movw r0, LOW RELOC 0xD1FFAB1E
movt r0, HIGH RELOC 0xD1FFAB1E
add r0, pc
- ldr r6, [r0]
- ldr r0, [r5+r6]
+ ldr r0, [r0]
+ ldr r0, [r5+r0]
; gcrRegs +[r0]
cmp r0, 0
bne SHORT G_M42175_IG04
@@ -46,14 +45,18 @@ G_M42175_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 3.00
G_M42175_IG04: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
- ldr r0, [r5+r6]
+ movw r0, LOW RELOC 0xD1FFAB1E
+ movt r0, HIGH RELOC 0xD1FFAB1E
+ add r0, pc
+ ldr r0, [r0]
+ ldr r0, [r5+r0]
; gcrRegs +[r0]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M42175_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,pc}
+ pop {r3,r4,r5,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 14.00, instruction count 17, allocated bytes for code 42 (MethodHash=b5cd5b40) for method Internal.TypeSystem.Ecma.EcmaMethod:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 54, prolog size 2, PerfScore 18.00, instruction count 21, allocated bytes for code 54 (MethodHash=b5cd5b40) for method Internal.TypeSystem.Ecma.EcmaMethod:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================
Unwind Info:
@@ -65,12 +68,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- D6 pop {r4,r5,r6,lr} ; opsize 16
- FF end
+ ED 38 pop {r3,r4,r5,lr} ; opsize 16
FF end
FF end
libraries.pmi.linux.arm.checked.mch
-36 (-20.00%) : 128225.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
@@ -8,38 +8,41 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.Xml.XmlSubtreeReader>
-; V01 arg1 [V01,T04] ( 3, 6 ) ref -> r1 class-hnd single-def <System.String>
-; V02 arg2 [V02,T07] ( 3, 4 ) ref -> r2 class-hnd single-def <System.String>
-; V03 loc0 [V03,T01] ( 9, 22.50) int -> r0
-; V04 loc1 [V04,T17] ( 2, 1 ) ref -> [sp+0x04] class-hnd exact spill-single-def <<unknown class>>
+; V00 this [V00,T10] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.Xml.XmlSubtreeReader>
+; V01 arg1 [V01,T07] ( 3, 6 ) ref -> r1 class-hnd single-def <System.String>
+; V02 arg2 [V02,T11] ( 3, 4 ) ref -> r2 class-hnd single-def <System.String>
+; V03 loc0 [V03,T01] ( 7, 21.50) int -> r0
+; V04 loc1 [V04,T18] ( 2, 1 ) ref -> r7 class-hnd exact <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T09] ( 3, 3 ) ref -> r3 class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
-; V07 tmp2 [V07,T14] ( 2, 2 ) ref -> lr class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
+;* V06 tmp1 [V06,T19] ( 0, 0 ) ref -> zero-ref class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
+; V07 tmp2 [V07,T15] ( 2, 2 ) ref -> r1 class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V10 tmp5 [V10,T00] ( 3, 24 ) ref -> lr "arr expr"
-;* V11 tmp6 [V11,T08] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V12 tmp7 [V12,T18] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V13 tmp8 [V13,T10] ( 3, 3 ) ref -> lr "arr expr"
-; V14 tmp9 [V14,T12] ( 3, 3 ) int -> r12 "index expr"
-; V15 tmp10 [V15,T11] ( 3, 3 ) ref -> r5 "arr expr"
-; V16 tmp11 [V16,T15] ( 2, 2 ) int -> r1 "index expr"
-; V17 cse0 [V17,T02] ( 4, 10.50) ref -> lr "CSE - aggressive"
-; V18 cse1 [V18,T13] ( 5, 2.50) int -> r2 "CSE - moderate"
-; V19 cse2 [V19,T03] ( 5, 6 ) ref -> r5 hoist "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 4, 6.50) int -> r3 "CSE - aggressive"
-; V21 cse4 [V21,T16] ( 3, 1.50) int -> r6 "CSE - moderate"
+; V10 tmp5 [V10,T00] ( 3, 24 ) ref -> r12 "arr expr"
+;* V11 tmp6 [V11,T12] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V12 tmp7 [V12,T20] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V13 tmp8 [V13,T21] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V14 tmp9 [V14,T13] ( 3, 3 ) int -> r1 "index expr"
+;* V15 tmp10 [V15,T22] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V16 tmp11 [V16,T16] ( 2, 2 ) int -> r1 "index expr"
+; V17 cse0 [V17,T05] ( 2, 4.50) ref -> lr hoist "CSE - unknown"
+; V18 cse1 [V18,T09] ( 4, 6.50) int -> r3 "CSE - unknown"
+; V19 cse2 [V19,T04] ( 4, 9 ) int -> r5 "CSE - unknown"
+; V20 cse3 [V20,T08] ( 2, 8 ) ref -> r7 "CSE - unknown"
+; V21 cse4 [V21,T02] ( 4, 10.50) ref -> r7 "CSE - unknown"
+; V22 cse5 [V22,T14] ( 5, 2.50) int -> r2 "CSE - unknown"
+; V23 cse6 [V23,T03] ( 5, 9.50) byref -> r6 "CSE - unknown"
+; V24 cse7 [V24,T17] ( 3, 1.50) int -> r8 "CSE - unknown"
+; V25 cse8 [V25,T06] ( 3, 8.50) int -> r12 "CSE - unknown"
;
-; Lcl frame size = 12
+; Lcl frame size = 4
G_M23254_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r11,lr}
- sub sp, 12
+ push {r3,r4,r5,r6,r7,r8,r11,lr}
add r11, sp, 24
mov r4, r0
; gcrRegs +[r4]
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M23254_IG02: ; bbWeight=1, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r1-r2]
movs r0, 0
@@ -48,107 +51,82 @@ G_M23254_IG02: ; bbWeight=1, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}
ble SHORT G_M23254_IG07
;; size=8 bbWeight=1 PerfScore 4.00
G_M23254_IG03: ; bbWeight=0.50, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}, byref
- ldr r5, [r4+0x10]
- ; gcrRegs +[r5]
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M23254_IG04: ; bbWeight=4, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
- mov lr, r5
+ ldr lr, [r4+0x10]
; gcrRegs +[lr]
- ldr r12, [lr+0x04]
- cmp r0, r12
- bhs SHORT G_M23254_IG11
- add lr, lr, 8
- ; gcrRegs -[lr]
- ; byrRegs +[lr]
- lsl r12, r0, 2
- ldr lr, [lr+r12]
- ; gcrRegs +[lr]
- ; byrRegs -[lr]
- ldr r12, [lr+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M23254_IG04: ; bbWeight=4, gcrefRegs=4016 {r1 r2 r4 lr}, byrefRegs=0000 {}, byref, isz
+ mov r12, lr
; gcrRegs +[r12]
- cmp r12, r1
+ ldr r5, [r12+0x04]
+ cmp r0, r5
+ bhs SHORT G_M23254_IG11
+ add r6, r12, 8
+ ; byrRegs +[r6]
+ lsl r12, r0, 2
+ ; gcrRegs -[r12]
+ ldr r7, [r6+r12]
+ ; gcrRegs +[r7]
+ ldr r8, [r7+0x08]
+ ; gcrRegs +[r8]
+ cmp r8, r1
bne SHORT G_M23254_IG06
;; size=30 bbWeight=4 PerfScore 40.00
-G_M23254_IG05: ; bbWeight=2, gcrefRegs=4036 {r1 r2 r4 r5 lr}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r12]
- ldr r12, [lr+0x04]
- ; gcrRegs +[r12]
- cmp r12, r2
+G_M23254_IG05: ; bbWeight=2, gcrefRegs=4096 {r1 r2 r4 r7 lr}, byrefRegs=0040 {r6}, byref, isz
+ ; gcrRegs -[r8]
+ ldr r8, [r7+0x04]
+ ; gcrRegs +[r8]
+ cmp r8, r2
beq SHORT G_M23254_IG08
;; size=8 bbWeight=2 PerfScore 6.00
-G_M23254_IG06: ; bbWeight=4, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r12 lr]
+G_M23254_IG06: ; bbWeight=4, gcrefRegs=4016 {r1 r2 r4 lr}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r7-r8]
+ ; byrRegs -[r6]
adds r0, r0, 1
cmp r0, r3
blt SHORT G_M23254_IG04
;; size=6 bbWeight=4 PerfScore 12.00
G_M23254_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[r1-r2 r4-r5]
- add sp, 12
- pop {r4,r5,r6,r11,pc}
- ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M23254_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=4030 {r4 r5 lr}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r4-r5 lr]
+ ; gcrRegs -[r1-r2 r4 lr]
+ pop {r3,r4,r5,r6,r7,r8,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M23254_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0090 {r4 r7}, byrefRegs=0040 {r6}, gcvars, byref, isz
+ ; gcrRegs +[r4 r7]
+ ; byrRegs +[r6]
subs r2, r3, 1
cmp r0, r2
bge SHORT G_M23254_IG09
- str lr, [sp+0x04] // [V04 loc1]
- ; GC ptr vars +{V04}
- mov r3, r5
- ; gcrRegs +[r3]
- mov lr, r5
- mov r12, r2
- ldr r6, [lr+0x04]
- cmp r12, r6
- bhs SHORT G_M23254_IG11
- add lr, lr, 8
- ; gcrRegs -[lr]
- ; byrRegs +[lr]
- lsl r6, r12, 2
- ldr lr, [lr+r6]
- ; gcrRegs +[lr]
- ; byrRegs -[lr]
- ldr r12, [r3+0x04]
- cmp r0, r12
- bhs SHORT G_M23254_IG11
- adds r3, 8
- ; gcrRegs -[r3]
- ; byrRegs +[r3]
- lsls r0, r0, 2
- adds r0, r3, r0
- ; byrRegs +[r0]
- mov r1, lr
- ; gcrRegs +[r1]
- movw r12, 0xd1ff
- movt r12, 0xd1ff
- blx r12 // CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[r1 lr]
- ; byrRegs -[r0 r3]
mov r1, r2
- ldr r0, [r5+0x04]
- cmp r1, r0
+ cmp r1, r5
bhs SHORT G_M23254_IG11
- add r1, r5, 8
- ; byrRegs +[r1]
- adds r0, r1, r6
- ; byrRegs +[r0]
- ldr r1, [sp+0x04] // [V04 loc1]
+ lsl r8, r1, 2
+ ldr r1, [r6+r8]
; gcrRegs +[r1]
- ; byrRegs -[r1]
+ add r0, r6, r12
+ ; byrRegs +[r0]
movw r12, 0xd1ff
movt r12, 0xd1ff
- ; GC ptr vars -{V04}
blx r12 // CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[r1 r5]
+ ; gcrRegs -[r1]
; byrRegs -[r0]
- ;; size=88 bbWeight=0.50 PerfScore 16.50
+ mov r1, r2
+ cmp r1, r5
+ bhs SHORT G_M23254_IG11
+ add r0, r6, r8
+ ; byrRegs +[r0]
+ mov r1, r7
+ ; gcrRegs +[r1]
+ movw r12, 0xd1ff
+ movt r12, 0xd1ff
+ blx r12 // CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[r1 r7]
+ ; byrRegs -[r0 r6]
+ ;; size=56 bbWeight=0.50 PerfScore 10.00
G_M23254_IG09: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
str r2, [r4+0x30]
;; size=2 bbWeight=0.50 PerfScore 0.50
G_M23254_IG10: ; bbWeight=0.50, epilog, nogc, extend
- add sp, 12
- pop {r4,r5,r6,r11,pc}
- ;; size=6 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r5,r6,r7,r8,r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M23254_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r4]
movw r3, 0xd1ff
@@ -158,7 +136,7 @@ G_M23254_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 180, prolog size 12, PerfScore 85.50, instruction count 67, allocated bytes for code 180 (MethodHash=dfe8a529) for method System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
+; Total bytes of code 144, prolog size 10, PerfScore 77.00, instruction count 51, allocated bytes for code 144 (MethodHash=dfe8a529) for method System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
; ============================================================
Unwind Info:
@@ -170,7 +148,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 90 (0x0005a) Actual length = 180 (0x0000b4)
+ Function Length : 72 (0x00048) Actual length = 144 (0x000090)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -182,7 +160,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- 03 add sp, sp, #12 ; opsize 16
- A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
+ A9 F8 pop {r3,r4,r5,r6,r7,r8,r11,lr} ; opsize 32
+ FF end
...
-8 (-19.05%) : 8515.dasm - System.Runtime.CompilerServices.Unsafe:Unboxubyte:byref (FullOpts)
@@ -9,6 +9,7 @@
;
; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
;
; Lcl frame size = 0
@@ -27,14 +28,12 @@ G_M34600_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M34600_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M34600_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
adds r0, r4, 4
; byrRegs +[r0]
@@ -43,7 +42,7 @@ G_M34600_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=929678d7) for method System.Runtime.CompilerServices.Unsafe:Unbox[ubyte](System.Object):byref (FullOpts)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=929678d7) for method System.Runtime.CompilerServices.Unsafe:Unbox[ubyte](System.Object):byref (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-18.18%) : 29646.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unboxint:int (FullOpts)
@@ -9,6 +9,7 @@
;
; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
;
; Lcl frame size = 0
@@ -27,15 +28,13 @@ G_M26934_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
G_M26934_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r4
; gcrRegs +[r1]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // CORINFO_HELP_UNBOX
; gcrRegs -[r1]
; gcr arg pop 0
- ;; size=22 bbWeight=0.25 PerfScore 1.75
+ ;; size=14 bbWeight=0.25 PerfScore 1.25
G_M26934_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldr r0, [r4+0x04]
;; size=2 bbWeight=1 PerfScore 1.00
@@ -43,7 +42,7 @@ G_M26934_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 44, prolog size 2, PerfScore 10.75, instruction count 16, allocated bytes for code 44 (MethodHash=04ec96c9) for method Microsoft.FSharp.Core.Operators+Unchecked:Unbox[int](System.Object):int (FullOpts)
+; Total bytes of code 36, prolog size 2, PerfScore 10.25, instruction count 14, allocated bytes for code 36 (MethodHash=04ec96c9) for method Microsoft.FSharp.Core.Operators+Unchecked:Unbox[int](System.Object):int (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+40 (+22.99%) : 33446.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
@@ -9,17 +9,15 @@
; Final local variable assignments
;
; V00 arg0 [V00,T02] ( 4, 7 ) ref -> r4 class-hnd single-def <System.Type>
-; V01 loc0 [V01,T07] ( 4, 2.43) ref -> r6 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter>
-; V02 loc1 [V02,T09] ( 3, 1.25) ref -> r0 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]>
-; V03 loc2 [V03,T00] ( 5, 16.50) int -> r5
+; V01 loc0 [V01,T06] ( 4, 2.43) ref -> r5 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter>
+; V02 loc1 [V02,T04] ( 3, 5 ) ref -> r6 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]>
+; V03 loc2 [V03,T00] ( 5, 16.50) int -> r7
; V04 loc3 [V04,T01] ( 4, 12.50) ref -> r9 class-hnd <System.Text.Json.Serialization.JsonConverterFactory>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1 [V06,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V06 tmp1 [V06,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V07 tmp2 [V07,T03] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V08 tmp3 [V08,T08] ( 3, 2.43) byref -> r0 single-def "Inline stloc first use temp"
-; V09 cse0 [V09,T06] ( 2, 4.25) byref -> r8 hoist "CSE - aggressive"
-; V10 cse1 [V10,T05] ( 3, 5 ) int -> r7 "CSE - aggressive"
-; V11 cse2 [V11,T04] ( 7, 5.50) int -> r5 "CSE - aggressive"
+; V08 tmp3 [V08,T07] ( 3, 2.43) byref -> r0 single-def "Inline stloc first use temp"
+; V09 cse0 [V09,T05] ( 3, 5 ) int -> r8 "CSE - unknown"
; TEMP_01 ref -> [r11-0x1C]
;
; Lcl frame size = 8
@@ -33,9 +31,9 @@ G_M54919_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[r4]
;; size=14 bbWeight=1 PerfScore 5.00
G_M54919_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff
- movt r5, 0xd1ff
- ldr r3, [r5]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
; gcrRegs +[r3]
cmp r3, 0
bne SHORT G_M54919_IG04
@@ -48,21 +46,24 @@ G_M54919_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
blx r3 // <unknown method>
; gcrRegs +[r0]
str r0, [sp+0x04]
+ movw r0, 0xd1ff
+ ; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04]
; gcrRegs +[r1]
- mov r0, r5
- ; gcrRegs -[r0]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r5+0x04]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
; gcrRegs +[r3]
cmp r3, 0
bne SHORT G_M54919_IG06
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
; gcrRegs -[r3]
movw r3, 0xd1ff
@@ -71,17 +72,20 @@ G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
blx r3 // System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetDefaultFactoryConverters():System.Text.Json.Serialization.JsonConverterFactory[]
; gcrRegs +[r0]
str r0, [sp+0x04]
- adds r0, r5, 4
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04]
; gcrRegs +[r1]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r5]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
ldrsb r1, [r0]
mov r1, r4
@@ -94,36 +98,36 @@ G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
; byrRegs +[r0]
cmp r0, 0
beq SHORT G_M54919_IG08
- ;; size=24 bbWeight=1 PerfScore 9.00
+ ;; size=32 bbWeight=1 PerfScore 11.00
G_M54919_IG07: ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
; gcrRegs -[r4]
- ldr r6, [r0]
- ; gcrRegs +[r6]
- b SHORT G_M54919_IG11
+ ldr r5, [r0]
+ ; gcrRegs +[r5]
+ b SHORT G_M54919_IG10
;; size=4 bbWeight=0.43 PerfScore 0.86
G_M54919_IG08: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r6] +[r4]
+ ; gcrRegs -[r5] +[r4]
; byrRegs -[r0]
- movs r6, 0
- ldr r0, [r5+0x04]
- ; gcrRegs +[r0]
movs r5, 0
- ldr r7, [r0+0x04]
- cmp r7, 0
- ble SHORT G_M54919_IG11
- ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M54919_IG09: ; bbWeight=0.25, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0000 {}, byref
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r6, [r0]
; gcrRegs +[r6]
- add r8, r0, 8
- ; byrRegs +[r8]
- ;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M54919_IG10: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8}, byref, isz
- ; gcrRegs -[r0]
- lsls r0, r5, 2
- ldr r9, [r8+r0]
+ movs r7, 0
+ ldr r8, [r6+0x04]
+ cmp r8, 0
+ ble SHORT G_M54919_IG10
+ ;; size=24 bbWeight=0.50 PerfScore 4.00
+G_M54919_IG09: ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r5]
+ add r0, r6, 8
+ ; byrRegs +[r0]
+ lsls r1, r7, 2
+ ldr r9, [r0+r1]
; gcrRegs +[r9]
mov r0, r9
; gcrRegs +[r0]
+ ; byrRegs -[r0]
mov r1, r4
; gcrRegs +[r1]
ldr r3, [r9]
@@ -132,28 +136,27 @@ G_M54919_IG10: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8},
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
cmp r0, 0
- bne SHORT G_M54919_IG13
- adds r5, r5, 1
- cmp r7, r5
- bgt SHORT G_M54919_IG10
- ;; size=30 bbWeight=4 PerfScore 52.00
-G_M54919_IG11: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r4 r9]
- ; byrRegs -[r8]
- mov r0, r6
+ bne SHORT G_M54919_IG12
+ adds r7, r7, 1
+ cmp r8, r7
+ bgt SHORT G_M54919_IG09
+ ;; size=34 bbWeight=4 PerfScore 56.00
+G_M54919_IG10: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r4 r6 r9]
+ mov r0, r5
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
-G_M54919_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M54919_IG11: ; bbWeight=1, epilog, nogc, extend
pop {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M54919_IG13: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[r0 r6] +[r9]
- mov r6, r9
- ; gcrRegs +[r6]
- b SHORT G_M54919_IG11
+G_M54919_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[r0 r5] +[r9]
+ mov r5, r9
+ ; gcrRegs +[r5]
+ b SHORT G_M54919_IG10
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 174, prolog size 12, PerfScore 91.11, instruction count 68, allocated bytes for code 174 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
+; Total bytes of code 214, prolog size 12, PerfScore 100.86, instruction count 76, allocated bytes for code 214 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
; ============================================================
Unwind Info:
@@ -165,7 +168,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 87 (0x00057) Actual length = 174 (0x0000ae)
+ Function Length : 107 (0x0006b) Actual length = 214 (0x0000d6)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+32 (+25.40%) : 220625.dasm - System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
@@ -11,22 +11,21 @@
; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.Diagnostics.SwitchElement>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
-; V03 tmp2 [V03,T01] ( 4, 4 ) ref -> r5 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
-; V04 tmp3 [V04,T04] ( 3, 3 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty>
-; V05 tmp4 [V05,T02] ( 4, 4 ) ref -> r5 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
-; V06 tmp5 [V06,T05] ( 3, 3 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty>
-; V07 tmp6 [V07,T06] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
-; V08 tmp7 [V08,T07] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
-; V09 tmp8 [V09,T08] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
-; V10 tmp9 [V10,T09] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
-; V11 cse0 [V11,T10] ( 3, 2.50) ref -> r0 "CSE - aggressive"
-; V12 cse1 [V12,T03] ( 6, 3 ) int -> r4 "CSE - aggressive"
+; V03 tmp2 [V03,T01] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
+; V04 tmp3 [V04,T03] ( 3, 3 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty>
+; V05 tmp4 [V05,T02] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
+; V06 tmp5 [V06,T04] ( 3, 3 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty>
+; V07 tmp6 [V07,T05] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
+; V08 tmp7 [V08,T06] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
+; V09 tmp8 [V09,T07] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
+; V10 tmp9 [V10,T08] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
+; V11 cse0 [V11,T09] ( 3, 2.50) ref -> r0 "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M58644_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,r6,r11,lr}
- add r11, sp, 16
+ push {r4,r5,r11,lr}
+ add r11, sp, 8
;; size=8 bbWeight=1 PerfScore 2.00
G_M58644_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
@@ -40,9 +39,9 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
ldr r3, [r3+0x10]
blx r3 // <unknown method>
; gcrRegs -[r0]
- movw r4, 0xd1ff
- movt r4, 0xd1ff
- ldr r0, [r4]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
ldr r0, [r0+0x04]
ldr r3, [r0]
@@ -50,14 +49,18 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
ldr r3, [r3+0x08]
blx r3 // <unknown method>
; gcrRegs -[r0]
- ldr r5, [r4]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r4, [r1]
+ ; gcrRegs +[r4]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r5, [r1]
; gcrRegs +[r5]
- ldr r6, [r4+0x04]
- ; gcrRegs +[r6]
- ldrsb r1, [r5]
- ldr r1, [r6+0x08]
+ ldrsb r1, [r4]
+ ldr r1, [r5+0x08]
; gcrRegs +[r1]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -66,25 +69,29 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
; gcrRegs -[r0-r1]
cmp r0, 0
bne SHORT G_M58644_IG04
- ldr r0, [r5+0x04]
+ ldr r0, [r4+0x04]
; gcrRegs +[r0]
- mov r1, r6
+ mov r1, r5
; gcrRegs +[r1]
ldr r3, [r0]
ldr r3, [r3+0x30]
ldr r3, [r3+0x14]
blx r3 // <unknown method>
- ; gcrRegs -[r0-r1 r5-r6]
- ;; size=68 bbWeight=0.50 PerfScore 14.50
+ ; gcrRegs -[r0-r1 r4-r5]
+ ;; size=84 bbWeight=0.50 PerfScore 16.50
G_M58644_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r5, [r4]
- ; gcrRegs +[r5]
- ldr r4, [r4+0x08]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r4, [r1]
; gcrRegs +[r4]
- ldrsb r1, [r5]
- ldr r1, [r4+0x08]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r5, [r1]
+ ; gcrRegs +[r5]
+ ldrsb r1, [r4]
+ ldr r1, [r5+0x08]
; gcrRegs +[r1]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -93,21 +100,21 @@ G_M58644_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs -[r0-r1]
cmp r0, 0
bne SHORT G_M58644_IG05
- ldr r0, [r5+0x04]
+ ldr r0, [r4+0x04]
; gcrRegs +[r0]
- mov r1, r4
+ mov r1, r5
; gcrRegs +[r1]
ldr r3, [r0]
ldr r3, [r3+0x30]
ldr r3, [r3+0x14]
blx r3 // <unknown method>
; gcrRegs -[r0-r1 r4-r5]
- ;; size=40 bbWeight=0.50 PerfScore 8.50
+ ;; size=56 bbWeight=0.50 PerfScore 10.50
G_M58644_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop {r3,r4,r5,r6,r11,pc}
+ pop {r4,r5,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 126, prolog size 8, PerfScore 29.00, instruction count 52, allocated bytes for code 126 (MethodHash=acec1aeb) for method System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
+; Total bytes of code 158, prolog size 8, PerfScore 33.00, instruction count 60, allocated bytes for code 158 (MethodHash=acec1aeb) for method System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
; ============================================================
Unwind Info:
@@ -119,11 +126,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 126 (0x00007e)
+ Function Length : 79 (0x0004f) Actual length = 158 (0x00009e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
+ A8 30 pop {r4,r5,r11,lr} ; opsize 32
FF end
FF end
+32 (+25.40%) : 148658.dasm - System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
@@ -11,22 +11,21 @@
; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.Diagnostics.SwitchElement>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
-; V03 tmp2 [V03,T01] ( 4, 4 ) ref -> r5 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
-; V04 tmp3 [V04,T04] ( 3, 3 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty>
-; V05 tmp4 [V05,T02] ( 4, 4 ) ref -> r5 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
-; V06 tmp5 [V06,T05] ( 3, 3 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty>
-; V07 tmp6 [V07,T06] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
-; V08 tmp7 [V08,T07] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
-; V09 tmp8 [V09,T08] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
-; V10 tmp9 [V10,T09] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
-; V11 cse0 [V11,T10] ( 3, 2.50) ref -> r0 "CSE - aggressive"
-; V12 cse1 [V12,T03] ( 6, 3 ) int -> r4 "CSE - aggressive"
+; V03 tmp2 [V03,T01] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
+; V04 tmp3 [V04,T03] ( 3, 3 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty>
+; V05 tmp4 [V05,T02] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
+; V06 tmp5 [V06,T04] ( 3, 3 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty>
+; V07 tmp6 [V07,T05] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
+; V08 tmp7 [V08,T06] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
+; V09 tmp8 [V09,T07] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
+; V10 tmp9 [V10,T08] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
+; V11 cse0 [V11,T09] ( 3, 2.50) ref -> r0 "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M58644_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,r6,r11,lr}
- add r11, sp, 16
+ push {r4,r5,r11,lr}
+ add r11, sp, 8
;; size=8 bbWeight=1 PerfScore 2.00
G_M58644_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
@@ -40,9 +39,9 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
ldr r3, [r3+0x10]
blx r3 // <unknown method>
; gcrRegs -[r0]
- movw r4, 0xd1ff
- movt r4, 0xd1ff
- ldr r0, [r4]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
ldr r0, [r0+0x04]
ldr r3, [r0]
@@ -50,14 +49,18 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
ldr r3, [r3+0x08]
blx r3 // <unknown method>
; gcrRegs -[r0]
- ldr r5, [r4]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r4, [r1]
+ ; gcrRegs +[r4]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r5, [r1]
; gcrRegs +[r5]
- ldr r6, [r4+0x04]
- ; gcrRegs +[r6]
- ldrsb r1, [r5]
- ldr r1, [r6+0x08]
+ ldrsb r1, [r4]
+ ldr r1, [r5+0x08]
; gcrRegs +[r1]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -66,25 +69,29 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
; gcrRegs -[r0-r1]
cmp r0, 0
bne SHORT G_M58644_IG04
- ldr r0, [r5+0x04]
+ ldr r0, [r4+0x04]
; gcrRegs +[r0]
- mov r1, r6
+ mov r1, r5
; gcrRegs +[r1]
ldr r3, [r0]
ldr r3, [r3+0x30]
ldr r3, [r3+0x14]
blx r3 // <unknown method>
- ; gcrRegs -[r0-r1 r5-r6]
- ;; size=68 bbWeight=0.50 PerfScore 14.50
+ ; gcrRegs -[r0-r1 r4-r5]
+ ;; size=84 bbWeight=0.50 PerfScore 16.50
G_M58644_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r5, [r4]
- ; gcrRegs +[r5]
- ldr r4, [r4+0x08]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r4, [r1]
; gcrRegs +[r4]
- ldrsb r1, [r5]
- ldr r1, [r4+0x08]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ ldr r5, [r1]
+ ; gcrRegs +[r5]
+ ldrsb r1, [r4]
+ ldr r1, [r5+0x08]
; gcrRegs +[r1]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -93,21 +100,21 @@ G_M58644_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs -[r0-r1]
cmp r0, 0
bne SHORT G_M58644_IG05
- ldr r0, [r5+0x04]
+ ldr r0, [r4+0x04]
; gcrRegs +[r0]
- mov r1, r4
+ mov r1, r5
; gcrRegs +[r1]
ldr r3, [r0]
ldr r3, [r3+0x30]
ldr r3, [r3+0x14]
blx r3 // <unknown method>
; gcrRegs -[r0-r1 r4-r5]
- ;; size=40 bbWeight=0.50 PerfScore 8.50
+ ;; size=56 bbWeight=0.50 PerfScore 10.50
G_M58644_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop {r3,r4,r5,r6,r11,pc}
+ pop {r4,r5,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 126, prolog size 8, PerfScore 29.00, instruction count 52, allocated bytes for code 126 (MethodHash=acec1aeb) for method System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
+; Total bytes of code 158, prolog size 8, PerfScore 33.00, instruction count 60, allocated bytes for code 158 (MethodHash=acec1aeb) for method System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
; ============================================================
Unwind Info:
@@ -119,11 +126,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 126 (0x00007e)
+ Function Length : 79 (0x0004f) Actual length = 158 (0x00009e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
+ A8 30 pop {r4,r5,r11,lr} ; opsize 32
FF end
FF end
libraries_tests.run.linux.arm.Release.mch
-14 (-30.43%) : 41939.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
@@ -9,10 +9,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.17) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>
-; V01 arg1 [V01,T01] ( 4, 3.17) int -> r1 single-def
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>
+; V01 arg1 [V01,T00] ( 4, 3.17) int -> r1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+; V04 cse0 [V04,T02] ( 3, 2.17) ref -> r0 "CSE - unknown"
;
; Lcl frame size = 4
@@ -21,26 +22,24 @@ G_M55991_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
;; size=2 bbWeight=1 PerfScore 1.00
G_M55991_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
- ldr lr, [r0+0x04]
- ; gcrRegs +[lr]
- ldr lr, [lr+0x04]
- ldr lr, [lr+0x04]
- ; gcrRegs -[lr]
- cmp lr, r1
+ ldr r0, [r0+0x04]
+ ldr r3, [r0+0x04]
+ ; gcrRegs +[r3]
+ ldr r3, [r3+0x04]
+ ; gcrRegs -[r3]
+ cmp r3, r1
blt SHORT G_M55991_IG04
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 5.00
G_M55991_IG03: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[r0]
pop {r3,pc}
;; size=2 bbWeight=0.83 PerfScore 0.83
G_M55991_IG04: ; bbWeight=0.17, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0]
- ldr r0, [r0+0x04]
- movw lr, 0xd1ff
- movt lr, 0xd1ff
- ldr r3, [lr]
- ldr lr, [r0]
- ;; size=18 bbWeight=0.17 PerfScore 0.86
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ ;; size=10 bbWeight=0.17 PerfScore 0.51
G_M55991_IG05: ; bbWeight=0.17, epilog, nogc, extend
add sp, 4
pop lr
@@ -48,7 +47,7 @@ G_M55991_IG05: ; bbWeight=0.17, epilog, nogc, extend
; gcr arg pop 0
;; size=8 bbWeight=0.17 PerfScore 0.51
-; Total bytes of code 46, prolog size 2, PerfScore 8.20, instruction count 15, allocated bytes for code 46 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
+; Total bytes of code 32, prolog size 2, PerfScore 7.86, instruction count 13, allocated bytes for code 32 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
; ============================================================
Unwind Info:
@@ -60,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 46 (0x00002e)
+ Function Length : 16 (0x00010) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-14 (-30.43%) : 80295.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
@@ -9,10 +9,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.31) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>
-; V01 arg1 [V01,T01] ( 4, 3.31) int -> r1 single-def
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>
+; V01 arg1 [V01,T00] ( 4, 3.31) int -> r1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+; V04 cse0 [V04,T02] ( 3, 2.31) ref -> r0 "CSE - unknown"
;
; Lcl frame size = 4
@@ -21,26 +22,24 @@ G_M55991_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
;; size=2 bbWeight=1 PerfScore 1.00
G_M55991_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
- ldr lr, [r0+0x04]
- ; gcrRegs +[lr]
- ldr lr, [lr+0x04]
- ldr lr, [lr+0x04]
- ; gcrRegs -[lr]
- cmp lr, r1
+ ldr r0, [r0+0x04]
+ ldr r3, [r0+0x04]
+ ; gcrRegs +[r3]
+ ldr r3, [r3+0x04]
+ ; gcrRegs -[r3]
+ cmp r3, r1
blt SHORT G_M55991_IG04
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 5.00
G_M55991_IG03: ; bbWeight=0.69, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[r0]
pop {r3,pc}
;; size=2 bbWeight=0.69 PerfScore 0.69
G_M55991_IG04: ; bbWeight=0.31, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0]
- ldr r0, [r0+0x04]
- movw lr, 0xd1ff
- movt lr, 0xd1ff
- ldr r3, [lr]
- ldr lr, [r0]
- ;; size=18 bbWeight=0.31 PerfScore 1.56
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ ;; size=10 bbWeight=0.31 PerfScore 0.93
G_M55991_IG05: ; bbWeight=0.31, epilog, nogc, extend
add sp, 4
pop lr
@@ -48,7 +47,7 @@ G_M55991_IG05: ; bbWeight=0.31, epilog, nogc, extend
; gcr arg pop 0
;; size=8 bbWeight=0.31 PerfScore 0.93
-; Total bytes of code 46, prolog size 2, PerfScore 9.18, instruction count 15, allocated bytes for code 46 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
+; Total bytes of code 32, prolog size 2, PerfScore 8.56, instruction count 13, allocated bytes for code 32 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
; ============================================================
Unwind Info:
@@ -60,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 46 (0x00002e)
+ Function Length : 16 (0x00010) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-14 (-30.43%) : 176335.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
@@ -9,10 +9,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.05) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>
-; V01 arg1 [V01,T01] ( 4, 3.05) int -> r1 single-def
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>
+; V01 arg1 [V01,T00] ( 4, 3.05) int -> r1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+; V04 cse0 [V04,T02] ( 3, 2.05) ref -> r0 "CSE - unknown"
;
; Lcl frame size = 4
@@ -21,26 +22,24 @@ G_M55991_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
;; size=2 bbWeight=1 PerfScore 1.00
G_M55991_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
- ldr lr, [r0+0x04]
- ; gcrRegs +[lr]
- ldr lr, [lr+0x04]
- ldr lr, [lr+0x04]
- ; gcrRegs -[lr]
- cmp lr, r1
+ ldr r0, [r0+0x04]
+ ldr r3, [r0+0x04]
+ ; gcrRegs +[r3]
+ ldr r3, [r3+0x04]
+ ; gcrRegs -[r3]
+ cmp r3, r1
blt SHORT G_M55991_IG04
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 5.00
G_M55991_IG03: ; bbWeight=0.95, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[r0]
pop {r3,pc}
;; size=2 bbWeight=0.95 PerfScore 0.95
G_M55991_IG04: ; bbWeight=0.05, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0]
- ldr r0, [r0+0x04]
- movw lr, 0xd1ff
- movt lr, 0xd1ff
- ldr r3, [lr]
- ldr lr, [r0]
- ;; size=18 bbWeight=0.05 PerfScore 0.25
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ ;; size=10 bbWeight=0.05 PerfScore 0.15
G_M55991_IG05: ; bbWeight=0.05, epilog, nogc, extend
add sp, 4
pop lr
@@ -48,7 +47,7 @@ G_M55991_IG05: ; bbWeight=0.05, epilog, nogc, extend
; gcr arg pop 0
;; size=8 bbWeight=0.05 PerfScore 0.15
-; Total bytes of code 46, prolog size 2, PerfScore 7.35, instruction count 15, allocated bytes for code 46 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
+; Total bytes of code 32, prolog size 2, PerfScore 7.25, instruction count 13, allocated bytes for code 32 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
; ============================================================
Unwind Info:
@@ -60,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 46 (0x00002e)
+ Function Length : 16 (0x00010) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+28 (+24.56%) : 308861.dasm - System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double (Instrumented Tier1)
@@ -11,26 +11,29 @@
; V00 arg0 [V00,T00] ( 9, 8 ) double -> f16:f17
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) double -> zero-ref "Inline stloc first use temp"
-; V03 cse0 [V03,T01] ( 4, 3.50) double -> f18:f19 "CSE - aggressive"
;
; Lcl frame size = 0
G_M55413_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push {r4,lr}
- vpush {d8-d9}
+ vpush {d8-d8}
vmov d8, d0
;; size=10 bbWeight=1 PerfScore 3.00
G_M55413_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movs r2, 0
movw r3, 0xd1ff
movt r3, 0xd1ff
- vmov.i2d d9, r2, r3
- vdiv d0, d8, d9
+ vmov.i2d d0, r2, r3
+ vdiv d0, d8, d0
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // <unknown method>
; gcr arg pop 0
- vmul d4, d0, d9
+ movs r0, 0
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ vmov.i2d d4, r0, r3
+ vmul d4, d0, d4
vsub d8, d8, d4
movs r0, 0
movs r3, 0
@@ -38,7 +41,7 @@ G_M55413_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
vcmp d8, d4
vmrs APSR, FPSCR
bhs SHORT G_M55413_IG04
- ;; size=54 bbWeight=1 PerfScore 16.00
+ ;; size=68 bbWeight=1 PerfScore 20.00
G_M55413_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -46,8 +49,12 @@ G_M55413_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_COUNTPROFILE32
; gcr arg pop 0
- vadd d8, d8, d9
- ;; size=22 bbWeight=0.50 PerfScore 3.00
+ movs r0, 0
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ vmov.i2d d4, r0, r3
+ vadd d8, d8, d4
+ ;; size=36 bbWeight=0.50 PerfScore 5.00
G_M55413_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -58,11 +65,11 @@ G_M55413_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
vmov d0, d8
;; size=22 bbWeight=1 PerfScore 6.00
G_M55413_IG05: ; bbWeight=1, epilog, nogc, extend
- vpop {d8-d9}
+ vpop {d8-d8}
pop {r4,pc}
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 114, prolog size 6, PerfScore 30.00, instruction count 33, allocated bytes for code 114 (MethodHash=c67d278a) for method System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double (Instrumented Tier1)
+; Total bytes of code 142, prolog size 6, PerfScore 36.00, instruction count 41, allocated bytes for code 142 (MethodHash=c67d278a) for method System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double (Instrumented Tier1)
; ============================================================
Unwind Info:
@@ -74,11 +81,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 57 (0x00039) Actual length = 114 (0x000072)
+ Function Length : 71 (0x00047) Actual length = 142 (0x00008e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- E1 vpop {d8,d9} ; opsize 32
+ E0 vpop {d8} ; opsize 32
D4 pop {r4,lr} ; opsize 16
FF end
FF end
+32 (+25.40%) : 457993.dasm - System.Xml.Tests.TCXMLIntegrityBase:CloseTest():int:this (Tier1)
@@ -15,12 +15,11 @@
;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.Tests.CDataReader>
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.Tests.CDataReader>
;* V07 tmp6 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.Tests.CDataReader>
-; V08 cse0 [V08,T04] ( 6, 4 ) int -> r5 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M37247_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r11,lr}
+ push {r3,r4,r11,lr}
add r11, sp, 8
mov r4, r0
; gcrRegs +[r4]
@@ -29,9 +28,9 @@ G_M37247_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
ldr r0, [r4+0x18]
; gcrRegs +[r0]
ldr r3, [r0]
- movw r5, 0xd1ff
- movt r5, 0xd1ff
- cmp r3, r5
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ cmp r3, r2
bne SHORT G_M37247_IG07
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -41,9 +40,11 @@ G_M37247_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
ldr r0, [r4+0x18]
; gcrRegs +[r0]
ldr r3, [r0]
- cmp r3, r5
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ cmp r3, r2
bne SHORT G_M37247_IG08
- ;; size=36 bbWeight=1 PerfScore 14.00
+ ;; size=44 bbWeight=1 PerfScore 16.00
G_M37247_IG03: ; bbWeight=1, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -53,9 +54,11 @@ G_M37247_IG03: ; bbWeight=1, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, b
ldr r0, [r4+0x18]
; gcrRegs +[r0]
ldr r3, [r0]
- cmp r3, r5
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ cmp r3, r2
bne SHORT G_M37247_IG09
- ;; size=20 bbWeight=1 PerfScore 8.00
+ ;; size=28 bbWeight=1 PerfScore 10.00
G_M37247_IG04: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
; gcrRegs -[r4]
movw r3, 0xd1ff
@@ -68,7 +71,7 @@ G_M37247_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r0, 1
;; size=2 bbWeight=1 PerfScore 1.00
G_M37247_IG06: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r11,pc}
+ pop {r3,r4,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
G_M37247_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r0 r4]
@@ -80,9 +83,11 @@ G_M37247_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0011 {r0 r4},
ldr r0, [r4+0x18]
; gcrRegs +[r0]
ldr r3, [r0]
- cmp r3, r5
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ cmp r3, r2
beq SHORT G_M37247_IG03
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M37247_IG08: ; bbWeight=0, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
ldr r3, [r0]
ldr r3, [r3+0x38]
@@ -92,9 +97,11 @@ G_M37247_IG08: ; bbWeight=0, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, b
ldr r0, [r4+0x18]
; gcrRegs +[r0]
ldr r3, [r0]
- cmp r3, r5
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ cmp r3, r2
beq SHORT G_M37247_IG04
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M37247_IG09: ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r4]
ldr r3, [r0]
@@ -105,7 +112,7 @@ G_M37247_IG09: ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
b SHORT G_M37247_IG05
;; size=10 bbWeight=0 PerfScore 0.00
-; Total bytes of code 126, prolog size 8, PerfScore 29.00, instruction count 52, allocated bytes for code 126 (MethodHash=025a6e80) for method System.Xml.Tests.TCXMLIntegrityBase:CloseTest():int:this (Tier1)
+; Total bytes of code 158, prolog size 8, PerfScore 33.00, instruction count 60, allocated bytes for code 158 (MethodHash=025a6e80) for method System.Xml.Tests.TCXMLIntegrityBase:CloseTest():int:this (Tier1)
; ============================================================
Unwind Info:
@@ -117,7 +124,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 126 (0x00007e)
+ Function Length : 79 (0x0004f) Actual length = 158 (0x00009e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -125,7 +132,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ A8 18 pop {r3,r4,r11,lr} ; opsize 32
FF end
FF end
+34 (+25.76%) : 290087.dasm - System.Linq.Expressions.ExpressionVisitor:VisitLoop(System.Linq.Expressions.LoopExpression):System.Linq.Expressions.Expression:this (Tier1)
@@ -10,22 +10,21 @@
; V00 this [V00,T01] ( 7, 3.50) ref -> r5 this class-hnd single-def <System.Linq.Expressions.ExpressionVisitor>
; V01 arg1 [V01,T00] ( 8, 6 ) ref -> r4 class-hnd single-def <System.Linq.Expressions.LoopExpression>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T05] ( 3, 4 ) ref -> r6 class-hnd exact single-def "spilling ret_expr" <System.Linq.Expressions.LabelTarget>
-; V04 tmp2 [V04,T06] ( 3, 4 ) ref -> r6 class-hnd exact "impAppendStmt" <System.Linq.Expressions.LabelTarget>
-; V05 tmp3 [V05,T04] ( 4, 4 ) ref -> r9 class-hnd exact single-def "spilling ret_expr" <System.Linq.Expressions.LabelTarget>
-; V06 tmp4 [V06,T07] ( 3, 4 ) ref -> r9 class-hnd exact "impAppendStmt" <System.Linq.Expressions.LabelTarget>
-; V07 tmp5 [V07,T08] ( 4, 3 ) ref -> r1 class-hnd single-def "spilling ret_expr" <System.Linq.Expressions.Expression>
+; V03 tmp1 [V03,T04] ( 3, 4 ) ref -> r6 class-hnd exact single-def "spilling ret_expr" <System.Linq.Expressions.LabelTarget>
+; V04 tmp2 [V04,T05] ( 3, 4 ) ref -> r6 class-hnd exact "impAppendStmt" <System.Linq.Expressions.LabelTarget>
+; V05 tmp3 [V05,T03] ( 4, 4 ) ref -> r8 class-hnd exact single-def "spilling ret_expr" <System.Linq.Expressions.LabelTarget>
+; V06 tmp4 [V06,T06] ( 3, 4 ) ref -> r8 class-hnd exact "impAppendStmt" <System.Linq.Expressions.LabelTarget>
+; V07 tmp5 [V07,T07] ( 4, 3 ) ref -> r1 class-hnd single-def "spilling ret_expr" <System.Linq.Expressions.Expression>
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Expressions.Compiler.VariableBinder>
;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Expressions.Compiler.VariableBinder>
-; V10 tmp8 [V10,T09] ( 3, 1.50) ref -> r3 "guarded devirt return temp"
+; V10 tmp8 [V10,T08] ( 3, 1.50) ref -> r3 "guarded devirt return temp"
;* V11 tmp9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Expressions.Compiler.VariableBinder>
-; V12 cse0 [V12,T02] ( 9, 4 ) int -> r7 "CSE - aggressive"
-; V13 cse1 [V13,T03] ( 6, 4 ) int -> r8 "CSE - aggressive"
+; V12 cse0 [V12,T02] ( 9, 4 ) int -> r7 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M30520_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r7,r8,r9,r11,lr}
+ push {r3,r4,r5,r6,r7,r8,r11,lr}
add r11, sp, 24
mov r5, r0
; gcrRegs +[r5]
@@ -36,22 +35,26 @@ G_M30520_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
ldr r6, [r4+0x08]
; gcrRegs +[r6]
ldr r7, [r5]
- movw r8, 0xd1ff
- movt r8, 0xd1ff
- cmp r7, r8
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ cmp r7, r0
bne SHORT G_M30520_IG07
- ldr r9, [r4+0x0C]
- ; gcrRegs +[r9]
- cmp r7, r8
+ ldr r8, [r4+0x0C]
+ ; gcrRegs +[r8]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ cmp r7, r0
bne SHORT G_M30520_IG08
- ;; size=24 bbWeight=1 PerfScore 9.00
-G_M30520_IG03: ; bbWeight=1, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=1 PerfScore 11.00
+G_M30520_IG03: ; bbWeight=1, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, byref, isz
ldr r1, [r4+0x04]
; gcrRegs +[r1]
- cmp r7, r8
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ cmp r7, r0
bne SHORT G_M30520_IG09
- ;; size=6 bbWeight=1 PerfScore 3.00
-G_M30520_IG04: ; bbWeight=0.50, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefRegs=0000 {}, byref
+ ;; size=14 bbWeight=1 PerfScore 5.00
+G_M30520_IG04: ; bbWeight=0.50, gcrefRegs=0172 {r1 r4 r5 r6 r8}, byrefRegs=0000 {}, byref
mov r0, r5
; gcrRegs +[r0]
movw r3, 0xd1ff
@@ -62,24 +65,25 @@ G_M30520_IG04: ; bbWeight=0.50, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefReg
mov r3, r0
; gcrRegs +[r3]
;; size=16 bbWeight=0.50 PerfScore 3.00
-G_M30520_IG05: ; bbWeight=1, gcrefRegs=0258 {r3 r4 r6 r9}, byrefRegs=0000 {}, byref
+G_M30520_IG05: ; bbWeight=1, gcrefRegs=0158 {r3 r4 r6 r8}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
mov r0, r4
; gcrRegs +[r0]
mov r1, r6
; gcrRegs +[r1]
- mov r2, r9
+ mov r2, r8
; gcrRegs +[r2]
movw lr, 0xd1ff
movt lr, 0xd1ff
ldr r12, [lr]
;; size=18 bbWeight=1 PerfScore 6.00
G_M30520_IG06: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,r7,r8,r9,r11,lr}
+ add sp, 4
+ pop {r4,r5,r6,r7,r8,r11,lr}
bx r12 // System.Linq.Expressions.LoopExpression:Update(System.Linq.Expressions.LabelTarget,System.Linq.Expressions.LabelTarget,System.Linq.Expressions.Expression):System.Linq.Expressions.LoopExpression:this
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=8 bbWeight=1 PerfScore 3.00
G_M30520_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[r0-r3 r9] +[r5]
+ ; gcrRegs -[r0-r3 r8] +[r5]
mov r0, r5
; gcrRegs +[r0]
mov r1, r6
@@ -90,30 +94,34 @@ G_M30520_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0070 {r4 r5 r6
; gcrRegs -[r1 r6]
mov r6, r0
; gcrRegs +[r6]
- ldr r9, [r4+0x0C]
- ; gcrRegs +[r9]
- cmp r7, r8
- beq SHORT G_M30520_IG03
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M30520_IG08: ; bbWeight=0, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+ ldr r8, [r4+0x0C]
+ ; gcrRegs +[r8]
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
+ cmp r7, r0
+ beq SHORT G_M30520_IG03
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M30520_IG08: ; bbWeight=0, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, byref, isz
mov r0, r5
; gcrRegs +[r0]
- mov r1, r9
+ mov r1, r8
; gcrRegs +[r1]
ldr r3, [r7+0x30]
ldr r3, [r3+0x18]
blx r3 // System.Linq.Expressions.ExpressionVisitor:VisitLabelTarget(System.Linq.Expressions.LabelTarget):System.Linq.Expressions.LabelTarget:this
- ; gcrRegs -[r1 r9]
- mov r9, r0
- ; gcrRegs +[r9]
+ ; gcrRegs -[r1 r8]
+ mov r8, r0
+ ; gcrRegs +[r8]
ldr r1, [r4+0x04]
; gcrRegs +[r1]
- cmp r7, r8
- beq SHORT G_M30520_IG04
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M30520_IG09: ; bbWeight=0, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
+ cmp r7, r0
+ beq SHORT G_M30520_IG04
+ ;; size=26 bbWeight=0 PerfScore 0.00
+G_M30520_IG09: ; bbWeight=0, gcrefRegs=0172 {r1 r4 r5 r6 r8}, byrefRegs=0000 {}, byref, isz
mov r0, r5
; gcrRegs +[r0]
ldr r3, [r7+0x2C]
@@ -125,27 +133,30 @@ G_M30520_IG09: ; bbWeight=0, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefRegs=0
b SHORT G_M30520_IG05
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 132, prolog size 8, PerfScore 27.00, instruction count 54, allocated bytes for code 132 (MethodHash=a38d88c7) for method System.Linq.Expressions.ExpressionVisitor:VisitLoop(System.Linq.Expressions.LoopExpression):System.Linq.Expressions.Expression:this (Tier1)
+; Total bytes of code 166, prolog size 8, PerfScore 32.00, instruction count 63, allocated bytes for code 166 (MethodHash=a38d88c7) for method System.Linq.Expressions.ExpressionVisitor:VisitLoop(System.Linq.Expressions.LoopExpression):System.Linq.Expressions.Expression:this (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 1
F bit : 0
E bit : 0
X bit : 0
Vers : 0
- Function Length : 66 (0x00042) Actual length = 132 (0x000084)
+ Function Length : 83 (0x00053) Actual length = 166 (0x0000a6)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Condition : 14 (0xe) (always)
- Epilog Start Index : 0 (0x00)
+ Epilog Start Index : 3 (0x03)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- AB F0 pop {r4,r5,r6,r7,r8,r9,r11,lr} ; opsize 32
+ A9 F8 pop {r3,r4,r5,r6,r7,r8,r11,lr} ; opsize 32
+ FF end
+ ---- Epilog start at index 3 ----
+ 01 add sp, sp, #4 ; opsize 16
+ A9 F0 pop {r4,r5,r6,r7,r8,r11,lr} ; opsize 32
FF end
FF end
librariestestsnotieredcompilation.run.linux.arm.Release.mch
-8 (-26.67%) : 36266.dasm - DryIoc.Container:SetInitialFactoryID():this (FullOpts)
@@ -11,6 +11,7 @@
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <DryIoc.Container>
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V03 cse0 [V03,T00] ( 3, 2.50) int -> r3 "CSE - unknown"
;
; Lcl frame size = 4
@@ -20,21 +21,19 @@ G_M44763_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M44763_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
movt r3, 0xd1ff
- ldr r3, [r3]
- cmp r3, 142
+ ldr r2, [r3]
+ cmp r2, 142
bge SHORT G_M44763_IG04
;; size=14 bbWeight=1 PerfScore 5.00
G_M44763_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r3, 143
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- str r3, [r2]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ movs r2, 143
+ str r2, [r3]
+ ;; size=4 bbWeight=0.50 PerfScore 1.00
G_M44763_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 30, prolog size 2, PerfScore 9.00, instruction count 11, allocated bytes for code 30 (MethodHash=1f755124) for method DryIoc.Container:SetInitialFactoryID():this (FullOpts)
+; Total bytes of code 22, prolog size 2, PerfScore 8.00, instruction count 9, allocated bytes for code 22 (MethodHash=1f755124) for method DryIoc.Container:SetInitialFactoryID():this (FullOpts)
; ============================================================
Unwind Info:
@@ -46,7 +45,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
+ Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-26.67%) : 103086.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass:Dispose():this (FullOpts)
@@ -9,6 +9,7 @@
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T00] ( 3, 2.50) int -> r3 "CSE - unknown"
;
; Lcl frame size = 4
@@ -18,21 +19,19 @@ G_M42863_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M42863_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
movt r3, 0xd1ff
- ldr r3, [r3]
- cmp r3, 2
+ ldr r2, [r3]
+ cmp r2, 2
bne SHORT G_M42863_IG04
;; size=14 bbWeight=1 PerfScore 5.00
G_M42863_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r3, 1
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- str r3, [r2]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ movs r2, 1
+ str r2, [r3]
+ ;; size=4 bbWeight=0.50 PerfScore 1.00
G_M42863_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 30, prolog size 2, PerfScore 9.00, instruction count 11, allocated bytes for code 30 (MethodHash=856f5890) for method ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass:Dispose():this (FullOpts)
+; Total bytes of code 22, prolog size 2, PerfScore 8.00, instruction count 9, allocated bytes for code 22 (MethodHash=856f5890) for method ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass:Dispose():this (FullOpts)
; ============================================================
Unwind Info:
@@ -44,7 +43,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
+ Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-26.67%) : 112244.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass:Dispose():this (FullOpts)
@@ -9,6 +9,7 @@
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T00] ( 3, 2.50) int -> r3 "CSE - unknown"
;
; Lcl frame size = 4
@@ -18,21 +19,19 @@ G_M29935_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M29935_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
movt r3, 0xd1ff
- ldr r3, [r3]
- cmp r3, 2
+ ldr r2, [r3]
+ cmp r2, 2
bne SHORT G_M29935_IG04
;; size=14 bbWeight=1 PerfScore 5.00
G_M29935_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r3, 1
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- str r3, [r2]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ movs r2, 1
+ str r2, [r3]
+ ;; size=4 bbWeight=0.50 PerfScore 1.00
G_M29935_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 30, prolog size 2, PerfScore 9.00, instruction count 11, allocated bytes for code 30 (MethodHash=50c18b10) for method ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass:Dispose():this (FullOpts)
+; Total bytes of code 22, prolog size 2, PerfScore 8.00, instruction count 9, allocated bytes for code 22 (MethodHash=50c18b10) for method ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass:Dispose():this (FullOpts)
; ============================================================
Unwind Info:
@@ -44,7 +43,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
+ Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+16 (+30.77%) : 163781.dasm - System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b_170():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
@@ -12,25 +12,24 @@
; V01 RetBuf [V01,T00] ( 4, 4 ) byref -> r4 single-def
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[int,System.String]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 2, 4 ) int -> r6 "impAppendStmt"
-; V05 tmp2 [V05,T02] ( 2, 4 ) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
-; V06 tmp3 [V06,T05] ( 2, 2 ) ref -> r1 single-def "field V02.value (fldOffset=0x0)" P-INDEP
-; V07 tmp4 [V07,T06] ( 2, 2 ) int -> r6 single-def "field V02.key (fldOffset=0x4)" P-INDEP
-; V08 cse0 [V08,T04] ( 3, 3 ) int -> r0 "CSE - aggressive"
-; V09 cse1 [V09,T01] ( 4, 4 ) int -> r5 "CSE - aggressive"
+; V04 tmp1 [V04,T02] ( 2, 4 ) int -> r5 "impAppendStmt"
+; V05 tmp2 [V05,T01] ( 2, 4 ) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
+; V06 tmp3 [V06,T04] ( 2, 2 ) ref -> r1 single-def "field V02.value (fldOffset=0x0)" P-INDEP
+; V07 tmp4 [V07,T05] ( 2, 2 ) int -> r5 single-def "field V02.key (fldOffset=0x4)" P-INDEP
+; V08 cse0 [V08,T03] ( 3, 3 ) int -> r0 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M30779_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,lr}
+ push {r3,r4,r5,lr}
mov r4, r1
; byrRegs +[r4]
;; size=4 bbWeight=1 PerfScore 2.00
G_M30779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
- movw r5, 0xd1ff
- movt r5, 0xd1ff
- ldr r0, [r5]
- mov r6, r0
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
+ mov r5, r0
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -39,10 +38,14 @@ G_M30779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
; gcr arg pop 0
mov r1, r0
; gcrRegs +[r1]
- ldr r0, [r5]
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
+ ldr r0, [r0]
subs r0, r0, 1
- str r0, [r5]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ str r0, [r3]
mov r0, r4
; byrRegs +[r0]
movw r12, 0xd1ff
@@ -50,13 +53,13 @@ G_M30779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
blx r12 // CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[r1]
; byrRegs -[r0]
- str r6, [r4+0x04]
- ;; size=46 bbWeight=1 PerfScore 17.00
+ str r5, [r4+0x04]
+ ;; size=62 bbWeight=1 PerfScore 21.00
G_M30779_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,pc}
+ pop {r3,r4,r5,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 52, prolog size 2, PerfScore 20.00, instruction count 20, allocated bytes for code 52 (MethodHash=0b4787c4) for method System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b__17_0():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
+; Total bytes of code 68, prolog size 2, PerfScore 24.00, instruction count 24, allocated bytes for code 68 (MethodHash=0b4787c4) for method System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b__17_0():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -68,12 +71,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
+ Function Length : 34 (0x00022) Actual length = 68 (0x000044)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- D6 pop {r4,r5,r6,lr} ; opsize 16
- FF end
+ ED 38 pop {r3,r4,r5,lr} ; opsize 16
FF end
FF end
+24 (+33.33%) : 113366.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
@@ -10,31 +10,35 @@
;
;# 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 ) int -> r4 "CSE - aggressive"
; TEMP_01 ref -> [sp+0x04]
;
-; Lcl frame size = 8
+; Lcl frame size = 12
G_M9155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r4,lr}
+ push {lr}
+ sub sp, 12
movs r0, 0
str r0, [sp+0x04]
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
G_M9155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r0, 91
movw r3, 0xd1ff
movt r3, 0xd1ff
str r0, [r3]
- movw r4, 0xd1ff
- movt r4, 0xd1ff
movs r0, 0
- str r0, [r4]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ str r0, [r3]
;; size=24 bbWeight=1 PerfScore 8.00
G_M9155_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str r0, [r4+0x04]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ str r0, [r3]
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M9155_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str r0, [r4+0x08]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ str r0, [r3]
movw r0, 0xd1ff
movt r0, 0xd1ff
movw r3, 0xd1ff
@@ -43,20 +47,22 @@ G_M9155_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[r0]
; gcr arg pop 0
str r0, [sp+0x04]
- add r0, r4, 12
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04]
; gcrRegs +[r1]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=38 bbWeight=1 PerfScore 12.00
+ ;; size=50 bbWeight=1 PerfScore 15.00
G_M9155_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r2,r3,r4,pc}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ add sp, 12
+ pop {pc}
+ ;; size=4 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 6, PerfScore 25.00, instruction count 25, allocated bytes for code 72 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 32.00, instruction count 32, allocated bytes for code 96 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -68,11 +74,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 72 (0x000048)
+ Function Length : 48 (0x00030) Actual length = 96 (0x000060)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 1C pop {r2,r3,r4,lr} ; opsize 16
- FF end
+ 03 add sp, sp, #12 ; opsize 16
+ ED 00 pop {lr} ; opsize 16
FF end
+28 (+46.67%) : 155966.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FlushStores() (FullOpts)
@@ -10,22 +10,22 @@
;
; V00 OutArgs [V00 ] ( 1, 1 ) struct ( 4) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslX509ChainEventSource>
-; V02 tmp2 [V02,T02] ( 2, 2 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslX509ChainEventSource>
+; V02 tmp2 [V02,T01] ( 2, 2 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslX509ChainEventSource>
;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslCachedDirectoryStoreProvider>
;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslCachedDirectoryStoreProvider>
;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslCachedDirectoryStoreProvider>
-; V06 cse0 [V06,T01] ( 3, 2.50) ref -> r0 "CSE - aggressive"
-; V07 cse1 [V07,T00] ( 5, 5 ) int -> r4 "CSE - aggressive"
+; V06 cse0 [V06,T00] ( 3, 2.50) ref -> r0 "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 12
G_M49161_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r4,lr}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ push {lr}
+ sub sp, 12
+ ;; size=4 bbWeight=1 PerfScore 2.00
G_M49161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movw r4, 0xd1ff
- movt r4, 0xd1ff
- ldr r0, [r4]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldr r0, [r0]
; gcrRegs +[r0]
ldrb r1, [r0+0x5D]
cmp r1, 0
@@ -45,20 +45,31 @@ G_M49161_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
; gcr arg pop 0
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M49161_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr r3, [r4+0x04]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
; gcrRegs +[r3]
movs r2, 1
strb r2, [r3+0x10]
- ldr r3, [r4+0x0C]
+ movw r3, 0xd1ff
+ ; gcrRegs -[r3]
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ ; gcrRegs +[r3]
strb r2, [r3+0x10]
- ldr r3, [r4+0x08]
+ movw r3, 0xd1ff
+ ; gcrRegs -[r3]
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ ; gcrRegs +[r3]
strb r2, [r3+0x10]
- ;; size=14 bbWeight=1 PerfScore 7.00
+ ;; size=38 bbWeight=1 PerfScore 13.00
G_M49161_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r2,r3,r4,pc}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ add sp, 12
+ pop {pc}
+ ;; size=4 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 2, PerfScore 19.50, instruction count 24, allocated bytes for code 60 (MethodHash=f60a3ff6) for method System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FlushStores() (FullOpts)
+; Total bytes of code 88, prolog size 4, PerfScore 27.50, instruction count 32, allocated bytes for code 88 (MethodHash=f60a3ff6) for method System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FlushStores() (FullOpts)
; ============================================================
Unwind Info:
@@ -70,11 +81,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 60 (0x00003c)
+ Function Length : 44 (0x0002c) Actual length = 88 (0x000058)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 1C pop {r2,r3,r4,lr} ; opsize 16
- FF end
+ 03 add sp, sp, #12 ; opsize 16
+ ED 00 pop {lr} ; opsize 16
FF end
realworld.run.linux.arm.checked.mch
-48 (-13.71%) : 33716.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)
@@ -7,22 +7,21 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 9, 7.50) ref -> r5 this class-hnd single-def <Microsoft.Cci.ReferenceIndexerBase>
+; V00 this [V00,T00] ( 11, 9 ) ref -> r5 this class-hnd single-def <Microsoft.Cci.ReferenceIndexerBase>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> r6 class-hnd single-def <Microsoft.Cci.IGenericTypeInstanceReference>
-; V02 loc0 [V02,T05] ( 4, 3 ) ref -> r7 class-hnd single-def <<unknown class>>
-; V03 loc1 [V03,T07] ( 3, 1.50) ref -> r9 class-hnd single-def <Microsoft.Cci.ITypeReference>
+; V02 loc0 [V02,T04] ( 4, 3 ) ref -> r7 class-hnd single-def <<unknown class>>
+; V03 loc1 [V03,T06] ( 3, 1.50) ref -> r8 class-hnd single-def <Microsoft.Cci.ITypeReference>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (12) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T02] ( 3, 6 ) ref -> r7 class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ITypeReference]>
-; V06 tmp2 [V06,T06] ( 2, 2 ) ref -> r1 single-def "argument with side effect"
-; V07 tmp3 [V07,T04] ( 2, 4 ) ref -> r1 single-def "argument with side effect"
-; V08 cse0 [V08,T03] ( 6, 4.50) byref -> r8 multi-def "CSE - aggressive"
+; V06 tmp2 [V06,T05] ( 2, 2 ) ref -> r1 single-def "argument with side effect"
+; V07 tmp3 [V07,T03] ( 2, 4 ) ref -> r1 single-def "argument with side effect"
; TEMP_01 ref -> [r11-0x1C]
;
-; Lcl frame size = 24
+; Lcl frame size = 28
G_M42137_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r7,r8,r9,r11,lr}
- sub sp, 24
+ push {r4,r5,r6,r7,r8,r11,lr}
+ sub sp, 28
add r11, sp, 48
movs r2, 0
str r2, [sp+0x14]
@@ -45,22 +44,23 @@ G_M42137_IG02: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
;; size=20 bbWeight=1 PerfScore 8.00
G_M42137_IG03: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- add r8, r5, 4
- ; byrRegs +[r8]
- ldr r1, [r8+0x0C]
+ adds r3, r5, 4
+ ; byrRegs +[r3]
+ ldr r1, [r3+0x0C]
; gcrRegs +[r1]
str r1, [sp]
- ldr r1, [r8+0x10]
+ ldr r1, [r3+0x10]
str r1, [sp+0x04]
- ldr r1, [r8+0x14]
+ ldr r1, [r3+0x14]
; gcrRegs -[r1]
str r1, [sp+0x08]
- ldr r1, [r8]
+ ldr r1, [r3]
; gcrRegs +[r1]
- ldr r2, [r8+0x04]
+ ldr r2, [r3+0x04]
; gcrRegs +[r2]
- ldr r3, [r8+0x08]
+ ldr r3, [r3+0x08]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
mov r0, r7
; gcrRegs +[r0]
movw r4, 0xd1ff
@@ -68,40 +68,43 @@ G_M42137_IG03: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000
ldr lr, [r4]
blx lr // <unknown method>
; gcrRegs -[r1-r3]
- mov r9, r0
- ; gcrRegs +[r9]
- mov r0, r9
+ mov r8, r0
+ ; gcrRegs +[r8]
+ mov r0, r8
movw r4, 0xd1ff
movt r4, 0xd1ff
ldr r3, [r4]
blx r3 // <unknown method>
cmp r0, 0
bne SHORT G_M42137_IG04
- mov r0, r9
+ mov r0, r8
movw r4, 0xd1ff
movt r4, 0xd1ff
ldr r3, [r4]
blx r3 // <unknown method>
- ; gcrRegs -[r9]
+ ; gcrRegs -[r8]
cmp r0, 0
beq SHORT G_M42137_IG05
- ;; size=88 bbWeight=0.50 PerfScore 15.00
-G_M42137_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0100 {r8}, byref
+ ;; size=74 bbWeight=0.50 PerfScore 15.00
+G_M42137_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
- ldr r1, [r8+0x0C]
+ adds r3, r5, 4
+ ; byrRegs +[r3]
+ ldr r1, [r3+0x0C]
; gcrRegs +[r1]
str r1, [sp]
- ldr r1, [r8+0x10]
+ ldr r1, [r3+0x10]
str r1, [sp+0x04]
- ldr r1, [r8+0x14]
+ ldr r1, [r3+0x14]
; gcrRegs -[r1]
str r1, [sp+0x08]
- ldr r1, [r8]
+ ldr r1, [r3]
; gcrRegs +[r1]
- ldr r2, [r8+0x04]
+ ldr r2, [r3+0x04]
; gcrRegs +[r2]
- ldr r3, [r8+0x08]
+ ldr r3, [r3+0x08]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
mov r0, r7
; gcrRegs +[r0]
movw r4, 0xd1ff
@@ -109,7 +112,6 @@ G_M42137_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0100
ldr lr, [r4]
blx lr // <unknown method>
; gcrRegs -[r1-r3 r7]
- ; byrRegs -[r8]
mov r1, r0
; gcrRegs +[r1]
mov r0, r5
@@ -118,24 +120,25 @@ G_M42137_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0100
ldr r3, [r3+0x0C]
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
- ;; size=58 bbWeight=0.50 PerfScore 10.00
+ ;; size=48 bbWeight=0.50 PerfScore 10.50
G_M42137_IG05: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
- add r8, r5, 4
- ; byrRegs +[r8]
- ldr r1, [r8+0x0C]
+ adds r3, r5, 4
+ ; byrRegs +[r3]
+ ldr r1, [r3+0x0C]
; gcrRegs +[r1]
str r1, [sp]
- ldr r1, [r8+0x10]
+ ldr r1, [r3+0x10]
str r1, [sp+0x04]
- ldr r1, [r8+0x14]
+ ldr r1, [r3+0x14]
; gcrRegs -[r1]
str r1, [sp+0x08]
- ldr r1, [r8]
+ ldr r1, [r3]
; gcrRegs +[r1]
- ldr r2, [r8+0x04]
+ ldr r2, [r3+0x04]
; gcrRegs +[r2]
- ldr r3, [r8+0x08]
+ ldr r3, [r3+0x08]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
mov r0, r6
; gcrRegs +[r0]
movw r4, 0xd1ff
@@ -159,27 +162,29 @@ G_M42137_IG05: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
; gcrRegs +[r0]
mov r7, r0
; gcrRegs +[r7]
- ldr r1, [r8+0x0C]
+ adds r3, r5, 4
+ ; byrRegs +[r3]
+ ldr r1, [r3+0x0C]
; gcrRegs +[r1]
str r1, [sp]
- ldr r1, [r8+0x10]
+ ldr r1, [r3+0x10]
str r1, [sp+0x04]
- ldr r1, [r8+0x14]
+ ldr r1, [r3+0x14]
; gcrRegs -[r1]
str r1, [sp+0x08]
- ldr r1, [r8]
+ ldr r1, [r3]
; gcrRegs +[r1]
- ldr r2, [r8+0x04]
+ ldr r2, [r3+0x04]
; gcrRegs +[r2]
- ldr r3, [r8+0x08]
+ ldr r3, [r3+0x08]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
mov r0, r6
movw r4, 0xd1ff
movt r4, 0xd1ff
ldr lr, [r4]
blx lr // <unknown method>
; gcrRegs -[r1-r3 r6]
- ; byrRegs -[r8]
str r0, [sp+0x14]
adds r0, r7, 4
; gcrRegs -[r0]
@@ -198,14 +203,14 @@ G_M42137_IG05: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
- ;; size=158 bbWeight=1 PerfScore 52.00
+ ;; size=134 bbWeight=1 PerfScore 53.00
G_M42137_IG06: ; bbWeight=1, epilog, nogc, extend
- add sp, 24
- pop {r4,r5,r6,r7,r8,r9,r11,lr}
+ add sp, 28
+ pop {r4,r5,r6,r7,r8,r11,lr}
bx r3 // <unknown method>
;; size=8 bbWeight=1 PerfScore 3.00
-; Total bytes of code 350, prolog size 14, PerfScore 95.00, instruction count 120, allocated bytes for code 350 (MethodHash=a7c55b66) for method Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)
+; Total bytes of code 302, prolog size 14, PerfScore 96.50, instruction count 122, allocated bytes for code 302 (MethodHash=a7c55b66) for method Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)
; ============================================================
Unwind Info:
@@ -217,11 +222,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 175 (0x000af) Actual length = 350 (0x00015e)
+ Function Length : 151 (0x00097) Actual length = 302 (0x00012e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- 06 add sp, sp, #24 ; opsize 16
- AB F0 pop {r4,r5,r6,r7,r8,r9,r11,lr} ; opsize 32
+ 07 add sp, sp, #28 ; opsize 16
+ A9 F0 pop {r4,r5,r6,r7,r8,r11,lr} ; opsize 32
FF end
-6 (-13.64%) : 57.dasm - System.Diagnostics.Debug:Assert(ubyte) (FullOpts)
@@ -10,6 +10,7 @@
;
; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> r0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 1.50) ref -> r1 "CSE - unknown"
;
; Lcl frame size = 4
@@ -22,14 +23,14 @@ G_M56764_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
bne SHORT G_M56764_IG05
;; size=6 bbWeight=1 PerfScore 3.00
G_M56764_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
- ;; size=26 bbWeight=0.50 PerfScore 3.50
+ ;; size=20 bbWeight=0.50 PerfScore 3.00
G_M56764_IG04: ; bbWeight=0.50, epilog, nogc, extend
add sp, 4
pop lr
@@ -37,10 +38,11 @@ G_M56764_IG04: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=8 bbWeight=0.50 PerfScore 1.50
G_M56764_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; gcrRegs -[r0]
pop {r3,pc}
;; size=2 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 44, prolog size 2, PerfScore 9.50, instruction count 15, allocated bytes for code 44 (MethodHash=d7082243) for method System.Diagnostics.Debug:Assert(ubyte) (FullOpts)
+; Total bytes of code 38, prolog size 2, PerfScore 9.00, instruction count 14, allocated bytes for code 38 (MethodHash=d7082243) for method System.Diagnostics.Debug:Assert(ubyte) (FullOpts)
; ============================================================
Unwind Info:
@@ -52,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 19 (0x00013) Actual length = 38 (0x000026)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-46 (-13.37%) : 26887.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitNameOfOperator(Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
@@ -8,25 +8,22 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 10, 10 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]>
+; V00 this [V00,T00] ( 14, 14 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]>
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r5 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator>
-; V02 loc0 [V02,T07] ( 2, 2 ) struct (24) [sp+0x18] do-not-enreg[S] double-align <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
+; V02 loc0 [V02,T04] ( 2, 2 ) struct (24) [sp+0x18] do-not-enreg[S] double-align <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 2, 4 ) struct (24) [sp+0x00] do-not-enreg[HS] must-init hidden-struct-arg double-align "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
+; V04 tmp1 [V04,T02] ( 2, 4 ) struct (24) [sp+0x00] do-not-enreg[HS] must-init hidden-struct-arg double-align "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
;* V05 tmp2 [V05 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op double-align "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op double-align "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
-; V07 cse0 [V07,T02] ( 4, 4 ) byref -> r6 "CSE - aggressive"
-; V08 cse1 [V08,T06] ( 3, 3 ) int -> r7 "CSE - aggressive"
-; V09 cse2 [V09,T04] ( 3, 3 ) byref -> r8 "CSE - aggressive"
-; V10 cse3 [V10,T05] ( 3, 3 ) byref -> r9 "CSE - aggressive"
+; V07 cse0 [V07,T03] ( 3, 3 ) int -> r6 "CSE - unknown"
;
-; Lcl frame size = 48
+; Lcl frame size = 52
G_M8493_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r7,r8,r9,r11,lr}
- sub sp, 48
- add r11, sp, 72
- sub r4, r11, 72
+ push {r4,r5,r6,r11,lr}
+ sub sp, 52
+ add r11, sp, 64
+ sub r4, r11, 64
movs r2, 0
movs r3, 0
stm r4!, {r2,r3}
@@ -38,12 +35,10 @@ G_M8493_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[r5]
;; size=28 bbWeight=1 PerfScore 11.00
G_M8493_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
- add r6, r4, 64
- ; byrRegs +[r6]
+ add r1, r4, 64
+ ; byrRegs +[r1]
add r0, sp, 24
; byrRegs +[r0]
- mov r1, r6
- ; byrRegs +[r1]
ldr r2, [r1!+0x04]
; gcrRegs +[r2]
str r2, [r0!+0x04]
@@ -65,34 +60,30 @@ G_M8493_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, by
mov r0, r4
; gcrRegs +[r0]
; byrRegs -[r0]
- ldr r7, [r4]
- ldr r3, [r7+0xB8]
+ ldr r6, [r4]
+ ldr r3, [r6+0xB8]
ldr r3, [r3+0x04]
blx r3 // <unknown method>
; gcrRegs -[r0]
- add r8, r4, 112
- ; byrRegs +[r8]
movs r0, 0
- str r0, [r8]
- str r0, [r8+0x04]
- str r0, [r8+0x08]
- str r0, [r8+0x0C]
- str r0, [r8+0x10]
- str r0, [r8+0x14]
- add r9, r4, 88
- ; byrRegs +[r9]
- ;; size=104 bbWeight=1 PerfScore 30.00
-G_M8493_IG03: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0340 {r6 r8 r9}, byref
- str r0, [r9]
- str r0, [r9+0x04]
- str r0, [r9+0x08]
- str r0, [r9+0x0C]
- str r0, [r9+0x10]
- str r0, [r9+0x14]
- ;; size=24 bbWeight=1 PerfScore 6.00
-G_M8493_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0340 {r6 r8 r9}, byref
+ str r0, [r4+0x70]
+ str r0, [r4+0x74]
+ str r0, [r4+0x78]
+ str r0, [r4+0x7C]
+ str r0, [r4+0x80]
+ str r0, [r4+0x84]
+ ;; size=86 bbWeight=1 PerfScore 27.00
+G_M8493_IG03: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+ str r0, [r4+0x58]
+ str r0, [r4+0x5C]
+ str r0, [r4+0x60]
+ str r0, [r4+0x64]
+ str r0, [r4+0x68]
+ str r0, [r4+0x6C]
+ ;; size=12 bbWeight=1 PerfScore 6.00
+G_M8493_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
strb r0, [r4+0x3D]
- mov r0, r6
+ add r0, r4, 64
; byrRegs +[r0]
add r1, sp, 0
; byrRegs +[r1]
@@ -116,32 +107,30 @@ G_M8493_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0340 {r6 r8
mov r0, r4
; gcrRegs +[r0]
; byrRegs -[r0]
- ldr r3, [r7+0x2C]
+ ldr r3, [r6+0x2C]
ldr r3, [r3+0x10]
blx r3 // <unknown method>
; gcrRegs -[r1 r5]
movs r0, 0
; gcrRegs -[r0]
- str r0, [r8]
- str r0, [r8+0x04]
- str r0, [r8+0x08]
- str r0, [r8+0x0C]
- str r0, [r8+0x10]
- str r0, [r8+0x14]
- ;; size=96 bbWeight=1 PerfScore 29.00
-G_M8493_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0240 {r6 r9}, byref
- ; byrRegs -[r8]
- str r0, [r9]
- str r0, [r9+0x04]
- str r0, [r9+0x08]
- str r0, [r9+0x0C]
- str r0, [r9+0x10]
- str r0, [r9+0x14]
- ;; size=24 bbWeight=1 PerfScore 6.00
-G_M8493_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref
- ; byrRegs -[r9]
+ str r0, [r4+0x70]
+ str r0, [r4+0x74]
+ str r0, [r4+0x78]
+ str r0, [r4+0x7C]
+ str r0, [r4+0x80]
+ str r0, [r4+0x84]
+ ;; size=90 bbWeight=1 PerfScore 29.00
+G_M8493_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ str r0, [r4+0x58]
+ str r0, [r4+0x5C]
+ str r0, [r4+0x60]
+ str r0, [r4+0x64]
+ str r0, [r4+0x68]
+ str r0, [r4+0x6C]
+ ;; size=12 bbWeight=1 PerfScore 6.00
+G_M8493_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
strb r0, [r4+0x3D]
- mov r0, r6
+ add r0, r4, 64
; byrRegs +[r0]
add r1, sp, 24
; byrRegs +[r1]
@@ -149,7 +138,6 @@ G_M8493_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byr
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_BYREF
; gcrRegs -[r4]
- ; byrRegs -[r6]
ldr r2, [r1!+0x04]
str r2, [r0!+0x04]
ldr r2, [r1!+0x04]
@@ -163,13 +151,13 @@ G_M8493_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byr
str r2, [r0!+0x04]
movs r0, 0
; byrRegs -[r0]
- ;; size=62 bbWeight=1 PerfScore 18.00
+ ;; size=64 bbWeight=1 PerfScore 18.00
G_M8493_IG07: ; bbWeight=1, epilog, nogc, extend
- add sp, 48
- pop {r4,r5,r6,r7,r8,r9,r11,pc}
+ add sp, 52
+ pop {r4,r5,r6,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 344, prolog size 24, PerfScore 102.00, instruction count 102, allocated bytes for code 344 (MethodHash=ff58ded2) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitNameOfOperator(Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
+; Total bytes of code 298, prolog size 24, PerfScore 99.00, instruction count 99, allocated bytes for code 298 (MethodHash=ff58ded2) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitNameOfOperator(Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
; ============================================================
Unwind Info:
@@ -181,11 +169,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 172 (0x000ac) Actual length = 344 (0x000158)
+ Function Length : 149 (0x00095) Actual length = 298 (0x00012a)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- 0C add sp, sp, #48 ; opsize 16
- AB F0 pop {r4,r5,r6,r7,r8,r9,r11,lr} ; opsize 32
+ 0D add sp, sp, #52 ; opsize 16
+ A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
FF end
+30 (+27.78%) : 377.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
@@ -9,15 +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 -> r3
-; V02 cse0 [V02,T00] ( 6, 5.50) int -> r4 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 2 ) int -> r3
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M15866_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r11,lr}
- add r11, sp, 8
- ;; size=8 bbWeight=1 PerfScore 2.00
+ push {r11,lr}
+ mov r11, sp
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M15866_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -36,9 +35,9 @@ G_M15866_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r0, 1
;; size=2 bbWeight=1 PerfScore 1.00
G_M15866_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movw r4, 0xd1ff
- movt r4, 0xd1ff
- strb r0, [r4]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ strb r0, [r3]
movw r0, 0xd1ff
movt r0, 0xd1ff
movw r3, 0xd1ff
@@ -56,18 +55,24 @@ G_M15866_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r3, 1
;; size=2 bbWeight=1 PerfScore 1.00
G_M15866_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- strb r3, [r4+0x01]
- ldrb r3, [r4]
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldrb r3, [r3]
cmp r3, 0
beq SHORT G_M15866_IG10
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=24 bbWeight=1 PerfScore 8.00
G_M15866_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldrb r3, [r4+0x01]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldrb r3, [r3]
cmp r3, 0
beq SHORT G_M15866_IG08
movs r3, 0
b SHORT G_M15866_IG09
- ;; size=10 bbWeight=0.50 PerfScore 2.50
+ ;; size=18 bbWeight=0.50 PerfScore 3.50
G_M15866_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r3, 1
;; size=2 bbWeight=0.50 PerfScore 0.50
@@ -78,13 +83,15 @@ G_M15866_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movs r3, 0
;; size=2 bbWeight=0.50 PerfScore 0.50
G_M15866_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- strb r3, [r4+0x02]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M15866_IG12: ; bbWeight=1, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+ pop {r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 108, prolog size 8, PerfScore 37.00, instruction count 41, allocated bytes for code 108 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
+; Total bytes of code 138, prolog size 6, PerfScore 44.00, instruction count 49, allocated bytes for code 138 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -96,11 +103,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 54 (0x00036) Actual length = 108 (0x00006c)
+ Function Length : 69 (0x00045) Actual length = 138 (0x00008a)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ A8 00 pop {r11,lr} ; opsize 32
FF end
FF end
+20 (+28.57%) : 1165.dasm - System.Diagnostics.Stopwatch:.cctor() (FullOpts)
@@ -8,27 +8,28 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T02] ( 5, 5 ) int -> r4 "CSE - aggressive"
-; V02 rat0 [V02,T00] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable"
-; V03 rat1 [V03,T01] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
+; V01 rat0 [V01,T00] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
+; V02 rat1 [V02,T01] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M2214_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,lr}
+ push {r3,lr}
;; size=2 bbWeight=1 PerfScore 1.00
G_M2214_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r4, 0xd1ff
- movt r4, 0xd1ff
- mov r0, r4
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
- str r1, [r0]
- movs r1, 0
- str r1, [r0+0x04]
+ str r0, [r1]
+ movs r0, 0
+ str r0, [r1+0x04]
movs r0, 1
- strb r0, [r4+0x10]
- mov r1, r4
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ strb r0, [r1]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
ldr r0, [r1]
ldr r1, [r1+0x04]
movw r3, 0xd1ff
@@ -40,13 +41,15 @@ G_M2214_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movt r3, 0xd1ff
vmov.i2d d4, r2, r3
vdiv d4, d4, d0
- vstr d4, [r4+0x08]
- ;; size=66 bbWeight=1 PerfScore 22.00
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ vstr d4, [r3]
+ ;; size=86 bbWeight=1 PerfScore 26.00
G_M2214_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,pc}
+ pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 70, prolog size 2, PerfScore 24.00, instruction count 24, allocated bytes for code 70 (MethodHash=b3f5f759) for method System.Diagnostics.Stopwatch:.cctor() (FullOpts)
+; Total bytes of code 90, prolog size 2, PerfScore 28.00, instruction count 28, allocated bytes for code 90 (MethodHash=b3f5f759) for method System.Diagnostics.Stopwatch:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -58,12 +61,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 70 (0x000046)
+ Function Length : 45 (0x0002d) Actual length = 90 (0x00005a)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- D4 pop {r4,lr} ; opsize 16
- FF end
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
+24 (+42.86%) : 37249.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
@@ -9,20 +9,19 @@
;
; V00 arg0 [V00,T00] ( 4, 3 ) ref -> r4 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) int -> r5 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M64219_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r11,lr}
+ push {r3,r4,r11,lr}
add r11, sp, 8
mov r4, r0
; gcrRegs +[r4]
;; size=10 bbWeight=1 PerfScore 3.00
G_M64219_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff
- movt r5, 0xd1ff
- ldrb r3, [r5]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldrb r3, [r3]
cmp r3, 0
bne SHORT G_M64219_IG04
;; size=14 bbWeight=1 PerfScore 5.00
@@ -31,13 +30,17 @@ G_M64219_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- strb r0, [r5+0x01]
- ;; size=14 bbWeight=0.50 PerfScore 2.50
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ strb r0, [r3]
+ ;; size=22 bbWeight=0.50 PerfScore 3.50
G_M64219_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldrb r0, [r5+0x01]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldrb r0, [r0]
cmp r0, 0
beq SHORT G_M64219_IG06
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldr r0, [r4+0x04]
; gcrRegs +[r0]
@@ -46,13 +49,15 @@ G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
; gcrRegs -[r0 r4]
;; size=6 bbWeight=0.50 PerfScore 1.50
G_M64219_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb r0, [r5+0x01]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ ldrb r0, [r0]
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M64219_IG07: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r11,pc}
+ pop {r3,r4,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 56, prolog size 8, PerfScore 17.00, instruction count 21, allocated bytes for code 56 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 22.00, instruction count 27, allocated bytes for code 80 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -64,11 +69,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 28 (0x0001c) Actual length = 56 (0x000038)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ A8 18 pop {r3,r4,r11,lr} ; opsize 32
FF end
FF end
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
PerfScore Overall (FullOpts) |
benchmarks.run.linux.arm.checked.mch |
12,140 |
10,000 |
1,692 |
448 |
-220,864 |
+21,188 |
-0.1776% |
benchmarks.run_pgo.linux.arm.checked.mch |
31,317 |
22,671 |
6,978 |
1,668 |
-339,890 |
+96,034 |
-0.0327% |
benchmarks.run_tiered.linux.arm.checked.mch |
8,425 |
6,715 |
1,309 |
401 |
-155,328 |
+16,936 |
-0.1855% |
coreclr_tests.run.linux.arm.checked.mch |
77,879 |
37,254 |
26,395 |
14,230 |
-2,276,326 |
+301,024 |
+0.0573% |
libraries.crossgen2.linux.arm.checked.mch |
11,296 |
4,487 |
4,803 |
2,006 |
-34,262 |
+38,000 |
+0.0492% |
libraries.pmi.linux.arm.checked.mch |
29,945 |
19,046 |
7,986 |
2,913 |
-184,588 |
+91,178 |
+0.0053% |
libraries_tests.run.linux.arm.Release.mch |
73,607 |
44,180 |
23,206 |
6,221 |
-512,654 |
+270,014 |
+0.0153% |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
59,478 |
40,734 |
15,249 |
3,495 |
-582,672 |
+192,708 |
-0.0188% |
realworld.run.linux.arm.checked.mch |
6,548 |
3,635 |
2,299 |
614 |
-58,148 |
+37,060 |
+0.0378% |
|
310,635 |
188,722 |
89,917 |
31,996 |
-4,364,732 |
+1,064,142 |
|
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.linux.arm.checked.mch |
49,602 |
6,350 |
43,252 |
1,297 (2.54%) |
1,354 (2.66%) |
benchmarks.run_pgo.linux.arm.checked.mch |
166,974 |
59,797 |
107,177 |
3,373 (1.98%) |
3,056 (1.79%) |
benchmarks.run_tiered.linux.arm.checked.mch |
76,186 |
41,011 |
35,175 |
1,057 (1.37%) |
1,104 (1.43%) |
coreclr_tests.run.linux.arm.checked.mch |
472,077 |
259,321 |
212,756 |
7,298 (1.52%) |
7,533 (1.57%) |
libraries.crossgen2.linux.arm.checked.mch |
201,977 |
14 |
201,963 |
0 (0.00%) |
28 (0.01%) |
libraries.pmi.linux.arm.checked.mch |
276,554 |
6 |
276,548 |
8,014 (2.81%) |
8,665 (3.04%) |
libraries_tests.run.linux.arm.Release.mch |
709,830 |
444,574 |
265,256 |
19,140 (2.62%) |
18,761 (2.57%) |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
273,052 |
21,625 |
251,427 |
33,996 (11.03%) |
34,448 (11.17%) |
realworld.run.linux.arm.checked.mch |
36,426 |
165 |
36,261 |
1,425 (3.76%) |
1,441 (3.80%) |
|
2,262,678 |
832,863 |
1,429,815 |
75,600 (3.23%) |
76,390 (3.26%) |
jit-analyze output
benchmarks.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 16543852 (overridden on cmd)
Total bytes of diff: 16344176 (overridden on cmd)
Total bytes of delta: -199676 (-1.21 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1364 : 34055.dasm (4.69 % of base)
1274 : 13739.dasm (4.76 % of base)
378 : 22912.dasm (7.58 % of base)
348 : 39942.dasm (2.10 % of base)
258 : 13636.dasm (2.60 % of base)
208 : 29435.dasm (2.86 % of base)
182 : 49056.dasm (5.40 % of base)
154 : 42798.dasm (0.97 % of base)
136 : 1776.dasm (1.74 % of base)
122 : 894.dasm (9.24 % of base)
120 : 30577.dasm (3.22 % of base)
120 : 41405.dasm (1.16 % of base)
108 : 28793.dasm (1.80 % of base)
102 : 29299.dasm (1.59 % of base)
102 : 34118.dasm (2.93 % of base)
102 : 34311.dasm (4.13 % of base)
100 : 6562.dasm (0.99 % of base)
94 : 14544.dasm (1.38 % of base)
92 : 17250.dasm (10.98 % of base)
86 : 17768.dasm (2.58 % of base)
Top file improvements (bytes):
-330 : 28841.dasm (-2.85 % of base)
-278 : 10427.dasm (-8.96 % of base)
-242 : 1428.dasm (-5.56 % of base)
-206 : 2044.dasm (-5.79 % of base)
-188 : 44473.dasm (-6.90 % of base)
-186 : 2277.dasm (-9.89 % of base)
-136 : 29384.dasm (-9.94 % of base)
-132 : 30045.dasm (-12.24 % of base)
-128 : 12448.dasm (-5.81 % of base)
-122 : 1292.dasm (-14.84 % of base)
-110 : 3578.dasm (-2.60 % of base)
-110 : 10499.dasm (-7.83 % of base)
-108 : 24953.dasm (-3.46 % of base)
-100 : 9000.dasm (-4.42 % of base)
-98 : 5686.dasm (-5.94 % of base)
-96 : 30542.dasm (-5.51 % of base)
-92 : 16026.dasm (-5.09 % of base)
-90 : 31544.dasm (-15.00 % of base)
-90 : 6914.dasm (-3.70 % of base)
-88 : 9954.dasm (-4.07 % of base)
96 total files with Code Size differences (49 improved, 47 regressed), 20 unchanged.
Top method regressions (bytes):
1364 (4.69 % of base) : 34055.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
1274 (4.76 % of base) : 13739.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
378 (7.58 % of base) : 22912.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (FullOpts)
348 (2.10 % of base) : 39942.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
258 (2.60 % of base) : 13636.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
208 (2.86 % of base) : 29435.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
182 (5.40 % of base) : 49056.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (FullOpts)
154 (0.97 % of base) : 42798.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
136 (1.74 % of base) : 1776.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
122 (9.24 % of base) : 894.dasm - System.Guid:TryParseExactD(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts)
120 (1.16 % of base) : 41405.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (FullOpts)
120 (3.22 % of base) : 30577.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (FullOpts)
108 (1.80 % of base) : 28793.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)
102 (1.59 % of base) : 29299.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,byref,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (FullOpts)
102 (4.13 % of base) : 34311.dasm - MS.Internal.Xml.XPath.QueryBuilder:ProcessAxis(MS.Internal.Xml.XPath.Axis,int,byref):MS.Internal.Xml.XPath.Query:this (FullOpts)
102 (2.93 % of base) : 34118.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
100 (0.99 % of base) : 6562.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (FullOpts)
94 (1.38 % of base) : 14544.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
92 (10.98 % of base) : 17250.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (FullOpts)
86 (2.58 % of base) : 17768.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 (FullOpts)
Top method improvements (bytes):
-330 (-2.85 % of base) : 28841.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)
-278 (-8.96 % of base) : 10427.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
-242 (-5.56 % of base) : 1428.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
-206 (-5.79 % of base) : 2044.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)
-188 (-6.90 % of base) : 44473.dasm - BenchmarksGame.RegexRedux_5:RunBench(int):int:this (FullOpts)
-186 (-9.89 % of base) : 2277.dasm - ProtoBuf.Internal.Serializers.DefaultValueDecorator:EmitBranchIfDefaultValue(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.CodeLabel):this (FullOpts)
-136 (-9.94 % of base) : 29384.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
-132 (-12.24 % of base) : 30045.dasm - Microsoft.CodeAnalysis.SymbolDisplayFormat:.cctor() (FullOpts)
-128 (-5.81 % of base) : 12448.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-122 (-14.84 % of base) : 1292.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (FullOpts)
-110 (-2.60 % of base) : 3578.dasm - System.Net.Http.RedirectHandler+<SendAsync>d__4:MoveNext():this (FullOpts)
-110 (-7.83 % of base) : 10499.dasm - System.Text.Json.Tests.Perf_Get:.cctor() (FullOpts)
-108 (-3.46 % of base) : 24953.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
-100 (-4.42 % of base) : 9000.dasm - System.Collections.Perf_SingleCharFrozenDictionary:Setup():this (FullOpts)
-98 (-5.94 % of base) : 5686.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
-96 (-5.51 % of base) : 30542.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (FullOpts)
-92 (-5.09 % of base) : 16026.dasm - System.Xml.Linq.XContainer:GetStringValue(System.Object):System.String (FullOpts)
-90 (-3.70 % of base) : 6914.dasm - System.Collections.Perf_LengthBucketsFrozenDictionary:Setup():this (FullOpts)
-90 (-15.00 % of base) : 31544.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
-88 (-4.07 % of base) : 9954.dasm - System.Collections.Perf_DefaultFrozenDictionary:Setup():this (FullOpts)
Top method regressions (percentages):
20 (28.57 % of base) : 989.dasm - System.Diagnostics.Stopwatch:.cctor() (FullOpts)
30 (27.78 % of base) : 377.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
22 (25.58 % of base) : 39354.dasm - V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
22 (25.58 % of base) : 39321.dasm - V8.Crypto.Support:runEncrypt(ubyte) (FullOpts)
20 (24.39 % of base) : 6391.dasm - Utf8Json.JsonSerializer:get_DefaultResolver():Utf8Json.IJsonFormatterResolver (FullOpts)
20 (23.81 % of base) : 15534.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
40 (22.99 % of base) : 12187.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
12 (22.22 % of base) : 17466.dasm - System.Formats.Tar.Tests.Perf_TarFile:CreateFromDirectory_Path():this (FullOpts)
60 (22.06 % of base) : 33972.dasm - FractalPerf.Launch:Test():double:this (FullOpts)
18 (21.43 % of base) : 14001.dasm - MessagePack.MessagePackSerializer:get_DefaultResolver():MessagePack.IFormatterResolver (FullOpts)
20 (17.54 % of base) : 14918.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
24 (16.22 % of base) : 908.dasm - BenchmarkDotNet.Characteristics.CharacteristicPresenter:.cctor() (FullOpts)
12 (15.38 % of base) : 4358.dasm - System.Console:<get_IsInputRedirected>g__EnsureInitialized|34_0():System.Runtime.CompilerServices.StrongBox`1[ubyte] (FullOpts)
12 (15.38 % of base) : 4355.dasm - System.Console:<get_IsOutputRedirected>g__EnsureInitialized|36_0():System.Runtime.CompilerServices.StrongBox`1[ubyte] (FullOpts)
16 (14.81 % of base) : 20699.dasm - Microsoft.Extensions.Configuration.ConfigurationKeyComparer:.cctor() (FullOpts)
26 (14.77 % of base) : 4865.dasm - System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (FullOpts)
30 (14.71 % of base) : 5203.dasm - System.Random+Net5CompatSeedImpl:NextUInt64():ulong:this (FullOpts)
22 (14.67 % of base) : 897.dasm - BenchmarkDotNet.Characteristics.CharacteristicSetPresenter:.cctor() (FullOpts)
14 (14.29 % of base) : 4669.dasm - System.Net.SocketProtocolSupportPal:.cctor() (FullOpts)
14 (14.29 % of base) : 3285.dasm - System.Net.SocketProtocolSupportPal:.cctor() (FullOpts)
Top method improvements (percentages):
-42 (-19.09 % of base) : 14745.dasm - System.MathF:ILogB(float):int (FullOpts)
-8 (-18.18 % of base) : 12302.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
-8 (-18.18 % of base) : 17735.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
-8 (-18.18 % of base) : 12303.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
-8 (-18.18 % of base) : 19704.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_0(System.Object):System.String:this (FullOpts)
-8 (-18.18 % of base) : 19709.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_10(System.Object):int:this (FullOpts)
-8 (-18.18 % of base) : 19710.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
-8 (-18.18 % of base) : 19711.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_14(System.Object):int:this (FullOpts)
-8 (-18.18 % of base) : 19713.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_18(System.Object):int:this (FullOpts)
-8 (-18.18 % of base) : 19705.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
-8 (-18.18 % of base) : 19706.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_4(System.Object):System.String:this (FullOpts)
-8 (-18.18 % of base) : 19707.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_6(System.Object):System.String:this (FullOpts)
-8 (-18.18 % of base) : 16258.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_0(System.Object):int:this (FullOpts)
-8 (-18.18 % of base) : 16259.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_2(System.Object):System.String:this (FullOpts)
-8 (-18.18 % of base) : 18462.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_0(System.Object):int:this (FullOpts)
-8 (-18.18 % of base) : 18467.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_10(System.Object):System.String:this (FullOpts)
-8 (-18.18 % of base) : 18463.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_2(System.Object):ubyte:this (FullOpts)
-8 (-18.18 % of base) : 18464.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_4(System.Object):System.String:this (FullOpts)
-8 (-18.18 % of base) : 18465.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
-8 (-18.18 % of base) : 18466.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_8(System.Object):ubyte:this (FullOpts)
benchmarks.run_pgo.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 68542524 (overridden on cmd)
Total bytes of diff: 68298668 (overridden on cmd)
Total bytes of delta: -243856 (-0.36 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1364 : 118891.dasm (4.69 % of base)
1274 : 38023.dasm (4.76 % of base)
348 : 134643.dasm (2.10 % of base)
258 : 43342.dasm (2.60 % of base)
212 : 101410.dasm (2.74 % of base)
212 : 106941.dasm (2.74 % of base)
210 : 71805.dasm (3.74 % of base)
182 : 167509.dasm (5.40 % of base)
164 : 93134.dasm (8.30 % of base)
160 : 90847.dasm (5.40 % of base)
154 : 66418.dasm (9.91 % of base)
152 : 79436.dasm (3.85 % of base)
148 : 98066.dasm (4.27 % of base)
136 : 15891.dasm (1.74 % of base)
136 : 139764.dasm (0.85 % of base)
136 : 61410.dasm (14.11 % of base)
134 : 99892.dasm (2.36 % of base)
130 : 85740.dasm (6.44 % of base)
130 : 106448.dasm (6.42 % of base)
130 : 145279.dasm (6.42 % of base)
Top file improvements (bytes):
-278 : 25931.dasm (-8.96 % of base)
-246 : 92624.dasm (-2.16 % of base)
-226 : 4120.dasm (-5.09 % of base)
-216 : 100542.dasm (-3.55 % of base)
-208 : 27326.dasm (-5.80 % of base)
-122 : 3512.dasm (-14.84 % of base)
-116 : 26983.dasm (-3.62 % of base)
-116 : 143124.dasm (-3.62 % of base)
-114 : 47646.dasm (-1.11 % of base)
-108 : 79554.dasm (-3.46 % of base)
-104 : 101413.dasm (-3.69 % of base)
-104 : 106942.dasm (-3.69 % of base)
-104 : 110836.dasm (-2.22 % of base)
-98 : 16462.dasm (-3.71 % of base)
-98 : 90421.dasm (-6.09 % of base)
-98 : 142898.dasm (-3.94 % of base)
-98 : 9155.dasm (-5.93 % of base)
-94 : 24581.dasm (-3.89 % of base)
-92 : 135543.dasm (-4.37 % of base)
-88 : 37390.dasm (-8.13 % of base)
98 total files with Code Size differences (59 improved, 39 regressed), 20 unchanged.
Top method regressions (bytes):
1364 (4.69 % of base) : 118891.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
1274 (4.76 % of base) : 38023.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
348 (2.10 % of base) : 134643.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
258 (2.60 % of base) : 43342.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
212 (2.74 % of base) : 101410.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
212 (2.74 % of base) : 106941.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
210 (3.74 % of base) : 71805.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
182 (5.40 % of base) : 167509.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier0-FullOpts)
164 (8.30 % of base) : 93134.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (Tier0-FullOpts)
160 (5.40 % of base) : 90847.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 (Tier0-FullOpts)
154 (9.91 % of base) : 66418.dasm - System.Number:<TryFormatInt32>g__TryFormatInt32Slow|42_0[ushort](int,int,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ushort],byref):ubyte (Tier1)
152 (3.85 % of base) : 79436.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
148 (4.27 % of base) : 98066.dasm - Microsoft.Cci.MetadataVisitor:Visit(Microsoft.Cci.ICustomAttribute):this (Tier1)
136 (0.85 % of base) : 139764.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
136 (14.11 % of base) : 61410.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0-FullOpts)
136 (1.74 % of base) : 15891.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
134 (2.36 % of base) : 99892.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CompileMethods(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,System.Predicate`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal],System.Threading.CancellationToken):ubyte:this (Tier1)
130 (6.44 % of base) : 85740.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindMatch(int,System.ReadOnlySpan`1[ushort],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicMatch:this (Tier1)
130 (6.42 % of base) : 106448.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindMatch(int,System.ReadOnlySpan`1[ushort],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicMatch:this (Tier1)
130 (6.42 % of base) : 145279.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindMatch(int,System.ReadOnlySpan`1[ushort],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicMatch:this (Tier1)
Top method improvements (bytes):
-278 (-8.96 % of base) : 25931.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (Tier0-FullOpts)
-246 (-2.16 % of base) : 92624.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 (Tier0-FullOpts)
-226 (-5.09 % of base) : 4120.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
-216 (-3.55 % of base) : 100542.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier1)
-208 (-5.80 % of base) : 27326.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 (Tier0-FullOpts)
-122 (-14.84 % of base) : 3512.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (Tier0-FullOpts)
-116 (-3.62 % of base) : 26983.dasm - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
-116 (-3.62 % of base) : 143124.dasm - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
-114 (-1.11 % of base) : 47646.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
-108 (-3.46 % of base) : 79554.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
-104 (-2.22 % of base) : 110836.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseLocalDeclaration(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclaratorSyntax],ubyte,ubyte,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken],byref,byref):this (Tier1)
-104 (-3.69 % of base) : 101413.dasm - System.Reflection.PortableExecutable.PEHeaders:SkipDosHeader(byref,byref) (Tier1)
-104 (-3.69 % of base) : 106942.dasm - System.Reflection.PortableExecutable.PEHeaders:SkipDosHeader(byref,byref) (Tier1)
-98 (-6.09 % of base) : 90421.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (Tier0-FullOpts)
-98 (-5.93 % of base) : 9155.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
-98 (-3.94 % of base) : 142898.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
-98 (-3.71 % of base) : 16462.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (Tier0-FullOpts)
-94 (-3.89 % of base) : 24581.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
-92 (-4.37 % of base) : 135543.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateContract(System.Type):Newtonsoft.Json.Serialization.JsonContract:this (Tier1)
-88 (-8.13 % of base) : 37390.dasm - Sigil.Emit`1[System.__Canon]:UpdateStackAndInstrStream(System.Nullable`1[System.Reflection.Emit.OpCode],Sigil.Impl.TransitionWrapper,ubyte):this (Tier1)
Top method regressions (percentages):
40 (22.73 % of base) : 34898.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
32 (17.78 % of base) : 122386.dasm - System.Runtime.Serialization.XmlSerializableReader:Read():ubyte:this (Tier1)
136 (14.11 % of base) : 61410.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0-FullOpts)
6 (13.64 % of base) : 105541.dasm - System.Collections.IterateFor`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
40 (12.66 % of base) : 100406.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariableType(System.Reflection.Metadata.Ecma335.LocalVariableTypeEncoder,Microsoft.Cci.ILocalDefinition):this (Tier1)
32 (11.85 % of base) : 71953.dasm - System.Collections.Immutable.ImmutableArray`1[int]:IndexOf(int,int,int,System.Collections.Generic.IEqualityComparer`1[int]):int:this (Tier0-FullOpts)
12 (11.54 % of base) : 40460.dasm - System.Text.RegularExpressions.Symbolic.CharSetSolver:<CreateBDDFromChar>g__CreateBdd|6_0(ushort):System.Text.RegularExpressions.Symbolic.BDD:this (Tier0-FullOpts)
6 (11.11 % of base) : 102168.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 119680.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 65176.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 118843.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 81727.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 88064.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 131991.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 37048.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 42912.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 61499.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 104020.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 164835.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
6 (11.11 % of base) : 66588.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
Top method improvements (percentages):
-8 (-19.05 % of base) : 58415.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
-8 (-19.05 % of base) : 35091.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
-8 (-19.05 % of base) : 73845.dasm - System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.StructRecord](System.Object):byref (Tier1)
-8 (-18.18 % of base) : 35084.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
-8 (-18.18 % of base) : 52077.dasm - (dynamicClass):NumSetter(System.Object,int) (FullOpts)
-8 (-18.18 % of base) : 70434.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
-58 (-16.20 % of base) : 129512.dasm - Benchstone.BenchI.XposMatrix:Inner(int[][],int) (Tier0-FullOpts)
-122 (-14.84 % of base) : 3512.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (Tier0-FullOpts)
-8 (-14.29 % of base) : 52078.dasm - (dynamicClass):TextSetter(System.Object,System.String) (FullOpts)
-8 (-11.76 % of base) : 94163.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (Tier0-FullOpts)
-2 (-11.11 % of base) : 115945.dasm - System.Math:Min(short,short):short (Tier1)
-2 (-11.11 % of base) : 84486.dasm - System.Math:Min(short,short):short (Tier1)
-18 (-10.71 % of base) : 87033.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
-8 (-10.00 % of base) : 133338.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
-8 (-10.00 % of base) : 118893.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
-8 (-10.00 % of base) : 134593.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
-8 (-10.00 % of base) : 139730.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
-8 (-10.00 % of base) : 124143.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
-8 (-10.00 % of base) : 153309.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
-8 (-10.00 % of base) : 38094.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
benchmarks.run_tiered.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 19429376 (overridden on cmd)
Total bytes of diff: 19290984 (overridden on cmd)
Total bytes of delta: -138392 (-0.71 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1364 : 61482.dasm (4.69 % of base)
1274 : 27697.dasm (4.76 % of base)
378 : 41142.dasm (7.58 % of base)
340 : 65738.dasm (2.05 % of base)
238 : 32224.dasm (2.40 % of base)
208 : 57707.dasm (2.86 % of base)
182 : 75938.dasm (5.40 % of base)
154 : 66975.dasm (0.97 % of base)
152 : 43381.dasm (3.85 % of base)
136 : 11730.dasm (1.74 % of base)
128 : 42341.dasm (2.11 % of base)
122 : 16086.dasm (9.24 % of base)
120 : 58179.dasm (3.22 % of base)
120 : 66448.dasm (1.16 % of base)
110 : 52927.dasm (1.84 % of base)
102 : 61368.dasm (2.93 % of base)
102 : 53911.dasm (1.59 % of base)
100 : 19405.dasm (0.99 % of base)
96 : 25960.dasm (1.41 % of base)
92 : 36438.dasm (10.98 % of base)
Top file improvements (bytes):
-296 : 53010.dasm (-2.56 % of base)
-278 : 14800.dasm (-8.96 % of base)
-242 : 4603.dasm (-5.56 % of base)
-206 : 24063.dasm (-5.79 % of base)
-186 : 24772.dasm (-9.89 % of base)
-136 : 54229.dasm (-10.19 % of base)
-128 : 25540.dasm (-5.81 % of base)
-122 : 3892.dasm (-14.84 % of base)
-116 : 27325.dasm (-3.50 % of base)
-110 : 7142.dasm (-2.60 % of base)
-108 : 42557.dasm (-3.46 % of base)
-98 : 13167.dasm (-5.94 % of base)
-96 : 56707.dasm (-5.59 % of base)
-92 : 35357.dasm (-5.15 % of base)
-88 : 50967.dasm (-2.68 % of base)
-86 : 40740.dasm (-2.58 % of base)
-86 : 42266.dasm (-8.87 % of base)
-86 : 40271.dasm (-2.62 % of base)
-86 : 65581.dasm (-6.73 % of base)
-78 : 3206.dasm (-14.03 % of base)
92 total files with Code Size differences (48 improved, 44 regressed), 20 unchanged.
Top method regressions (bytes):
1364 (4.69 % of base) : 61482.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
1274 (4.76 % of base) : 27697.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
378 (7.58 % of base) : 41142.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
340 (2.05 % of base) : 65738.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
238 (2.40 % of base) : 32224.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
208 (2.86 % of base) : 57707.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier1)
182 (5.40 % of base) : 75938.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier0-FullOpts)
154 (0.97 % of base) : 66975.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
152 (3.85 % of base) : 43381.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
136 (1.74 % of base) : 11730.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
128 (2.11 % of base) : 42341.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this (Tier0-FullOpts)
122 (9.24 % of base) : 16086.dasm - System.Guid:TryParseExactD(System.ReadOnlySpan`1[ushort],byref):ubyte (Tier1)
120 (1.16 % of base) : 66448.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
120 (3.22 % of base) : 58179.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier1)
110 (1.84 % of base) : 52927.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 (Tier0-FullOpts)
102 (1.59 % of base) : 53911.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,byref,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier0-FullOpts)
102 (2.93 % of base) : 61368.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
100 (0.99 % of base) : 19405.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
96 (1.41 % of base) : 25960.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
92 (10.98 % of base) : 36438.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0-FullOpts)
Top method improvements (bytes):
-296 (-2.56 % of base) : 53010.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 (Tier0-FullOpts)
-278 (-8.96 % of base) : 14800.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (Tier0-FullOpts)
-242 (-5.56 % of base) : 4603.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
-206 (-5.79 % of base) : 24063.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 (Tier0-FullOpts)
-186 (-9.89 % of base) : 24772.dasm - ProtoBuf.Internal.Serializers.DefaultValueDecorator:EmitBranchIfDefaultValue(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.CodeLabel):this (Tier1)
-136 (-10.19 % of base) : 54229.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (Tier1)
-128 (-5.81 % of base) : 25540.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-122 (-14.84 % of base) : 3892.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (Tier0-FullOpts)
-116 (-3.50 % of base) : 27325.dasm - Sigil.Emit`1[System.__Canon]:ValidateTryCatchFinallyBranches():this (Tier0-FullOpts)
-110 (-2.60 % of base) : 7142.dasm - System.Net.Http.RedirectHandler+<SendAsync>d__4:MoveNext():this (Tier0-FullOpts)
-108 (-3.46 % of base) : 42557.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
-98 (-5.94 % of base) : 13167.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
-96 (-5.59 % of base) : 56707.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (Tier1)
-92 (-5.15 % of base) : 35357.dasm - System.Xml.Linq.XContainer:GetStringValue(System.Object):System.String (Tier1)
-88 (-2.68 % of base) : 50967.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (Tier0-FullOpts)
-86 (-6.73 % of base) : 65581.dasm - BenchmarksGame.FannkuchRedux_9:Run(int,int) (Tier0-FullOpts)
-86 (-8.87 % of base) : 42266.dasm - IDEAEncryption:cipher_idea(ubyte[],ubyte[],int,ushort[]) (Tier0-FullOpts)
-86 (-2.58 % of base) : 40740.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-86 (-2.62 % of base) : 40271.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-78 (-14.03 % of base) : 3206.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (Tier1)
Top method regressions (percentages):
40 (22.99 % of base) : 25331.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
26 (14.77 % of base) : 17961.dasm - System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (Tier1)
44 (14.29 % of base) : 15024.dasm - System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (Tier1)
6 (13.64 % of base) : 58834.dasm - System.Collections.IterateFor`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
18 (13.04 % of base) : 53385.dasm - Microsoft.CodeAnalysis.ConcurrentCache`2[Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderCacheKey,System.__Canon]:TryGetValue(Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderCacheKey,byref):ubyte:this (Tier1)
8 (12.90 % of base) : 7138.dasm - System.Diagnostics.Metrics.MeterListener:GetAllListeners():System.Collections.Generic.List`1[System.Diagnostics.Metrics.MeterListener] (Tier1)
18 (12.50 % of base) : 15083.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:get_AttributeCache():System.Collections.Hashtable (Tier1)
18 (12.50 % of base) : 14142.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:get_IntrinsicTypeConverters():System.Collections.Generic.Dictionary`2[System.Object,System.ComponentModel.ReflectTypeDescriptionProvider+IntrinsicTypeConverterData] (Tier1)
20 (12.05 % of base) : 64792.dasm - System.Numerics.BigIntegerCalculator:Refresh(System.Span`1[uint],int):int (Tier1)
20 (12.05 % of base) : 26390.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier1)
30 (12.00 % of base) : 59197.dasm - System.Text.Json.Utf8JsonReader:ConsumeLiteralMultiSegment(System.ReadOnlySpan`1[ubyte],ubyte):ubyte:this (Tier1)
34 (11.89 % of base) : 27661.dasm - Jil.Common.ExtensionMethods:IsConstant(System.Reflection.PropertyInfo):ubyte (Tier1)
32 (11.85 % of base) : 41369.dasm - System.Collections.Immutable.ImmutableArray`1[int]:IndexOf(int,int,int,System.Collections.Generic.IEqualityComparer`1[int]):int:this (Tier0-FullOpts)
36 (11.54 % of base) : 5853.dasm - System.MemoryExtensions:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int (Tier1)
12 (11.54 % of base) : 25964.dasm - System.Text.RegularExpressions.Symbolic.CharSetSolver:<CreateBDDFromChar>g__CreateBdd|6_0(ushort):System.Text.RegularExpressions.Symbolic.BDD:this (Tier0-FullOpts)
6 (11.11 % of base) : 13102.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
92 (10.98 % of base) : 36438.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0-FullOpts)
16 (10.96 % of base) : 59929.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitRankSpecifiers(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Binder):this (Tier1)
12 (10.91 % of base) : 15111.dasm - System.SpanHelpers:Reverse[System.__Canon](byref,uint) (Tier1)
16 (10.81 % of base) : 34503.dasm - System.HexConverter:ToString(System.ReadOnlySpan`1[ubyte],uint):System.String (Tier1)
Top method improvements (percentages):
-42 (-19.09 % of base) : 32371.dasm - System.MathF:ILogB(float):int (Tier1)
-8 (-19.05 % of base) : 29659.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
-8 (-19.05 % of base) : 36229.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
-8 (-19.05 % of base) : 29660.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
-8 (-19.05 % of base) : 38266.dasm - System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.SimpleStructWithProperties](System.Object):byref (Tier1)
-8 (-18.18 % of base) : 35050.dasm - (dynamicClass):NumSetter(System.Object,int) (FullOpts)
-8 (-18.18 % of base) : 40585.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
-58 (-16.20 % of base) : 64438.dasm - Benchstone.BenchI.XposMatrix:Inner(int[][],int) (Tier0-FullOpts)
-8 (-16.00 % of base) : 14824.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
-122 (-14.84 % of base) : 3892.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (Tier0-FullOpts)
-8 (-14.81 % of base) : 3874.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:GetValue[int](BenchmarkDotNet.Characteristics.Characteristic`1[int]):int:this (Tier1)
-32 (-14.81 % of base) : 67114.dasm - System.Array+SorterObjectArray:SwapIfGreater(int,int):this (Tier1)
-8 (-14.29 % of base) : 35051.dasm - (dynamicClass):TextSetter(System.Object,System.String) (FullOpts)
-6 (-14.29 % of base) : 19304.dasm - System.Reflection.SignatureGenericMethodParameterType:.ctor(int):this (Tier1)
-6 (-14.29 % of base) : 19305.dasm - System.Reflection.SignatureGenericParameterType:.ctor(int):this (Tier1)
-6 (-14.29 % of base) : 18511.dasm - System.String:GetCaseCompareOfComparisonCulture(int):int (Tier1)
-78 (-14.03 % of base) : 3206.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (Tier1)
-6 (-13.64 % of base) : 34.dasm - System.Diagnostics.Debug:Assert(ubyte) (Tier1)
-6 (-13.64 % of base) : 5790.dasm - System.Threading.PortableThreadPool+ThreadCounts:get_NumProcessingWork():short:this (Tier1)
-6 (-13.64 % of base) : 5791.dasm - System.Threading.PortableThreadPool+ThreadCounts:get_NumThreadsGoal():short:this (Tier1)
coreclr_tests.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 321435778 (overridden on cmd)
Total bytes of diff: 319460476 (overridden on cmd)
Total bytes of delta: -1975302 (-0.61 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
1104 : 415928.dasm (5.33 % of base)
1030 : 466258.dasm (3.86 % of base)
1012 : 413570.dasm (1.30 % of base)
914 : 407917.dasm (4.36 % of base)
724 : 317656.dasm (1.74 % of base)
660 : 408553.dasm (0.85 % of base)
658 : 407927.dasm (3.30 % of base)
622 : 317637.dasm (2.26 % of base)
582 : 415934.dasm (2.92 % of base)
570 : 317648.dasm (1.72 % of base)
504 : 407922.dasm (2.27 % of base)
472 : 415942.dasm (2.30 % of base)
472 : 407975.dasm (2.30 % of base)
450 : 407912.dasm (2.19 % of base)
442 : 317645.dasm (1.26 % of base)
434 : 463794.dasm (4.86 % of base)
412 : 407127.dasm (0.48 % of base)
406 : 413458.dasm (0.47 % of base)
400 : 317653.dasm (1.18 % of base)
380 : 317661.dasm (0.89 % of base)
Top file improvements (bytes):
-8246 : 408303.dasm (-6.15 % of base)
-7392 : 408308.dasm (-4.77 % of base)
-6296 : 407899.dasm (-6.56 % of base)
-6294 : 407963.dasm (-6.62 % of base)
-6206 : 408298.dasm (-4.79 % of base)
-6072 : 407995.dasm (-5.39 % of base)
-5910 : 407931.dasm (-5.27 % of base)
-5862 : 407663.dasm (-3.83 % of base)
-5460 : 407670.dasm (-3.43 % of base)
-5350 : 408313.dasm (-3.36 % of base)
-5174 : 407649.dasm (-4.30 % of base)
-5060 : 407873.dasm (-4.81 % of base)
-5058 : 415908.dasm (-4.81 % of base)
-4458 : 407656.dasm (-3.59 % of base)
-3980 : 407462.dasm (-1.54 % of base)
-3794 : 407467.dasm (-1.46 % of base)
-3452 : 407859.dasm (-3.28 % of base)
-3326 : 415910.dasm (-3.16 % of base)
-2134 : 459659.dasm (-12.12 % of base)
-2108 : 431806.dasm (-11.71 % of base)
93 total files with Code Size differences (52 improved, 41 regressed), 20 unchanged.
Top method regressions (bytes):
1104 (5.33 % of base) : 415928.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
1030 (3.86 % of base) : 466258.dasm - HFATest.TestCase:TestEntryPoint():int (FullOpts)
1012 (1.30 % of base) : 413570.dasm - Test_10w5d.testout1:.cctor() (FullOpts)
914 (4.36 % of base) : 407917.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
724 (1.74 % of base) : 317656.dasm - lclfldrem:TestEntryPoint():int (FullOpts)
660 (0.85 % of base) : 408553.dasm - Test_10w5d.testout1:.cctor() (FullOpts)
658 (3.30 % of base) : 407927.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
622 (2.26 % of base) : 317637.dasm - lclfldadd:TestEntryPoint():int (FullOpts)
582 (2.92 % of base) : 415934.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
570 (1.72 % of base) : 317648.dasm - lclfldmul:TestEntryPoint():int (FullOpts)
504 (2.27 % of base) : 407922.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)
472 (2.30 % of base) : 415942.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
472 (2.30 % of base) : 407975.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
450 (2.19 % of base) : 407912.dasm - r4NaNdiv:TestEntryPoint():int (FullOpts)
442 (1.26 % of base) : 317645.dasm - lclflddiv:TestEntryPoint():int (FullOpts)
434 (4.86 % of base) : 463794.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (FullOpts)
412 (0.48 % of base) : 407127.dasm - Test_1000w1d.testout1:Func_0():int (FullOpts)
406 (0.47 % of base) : 413458.dasm - Test_1000w1d.testout1:Func_0():int (FullOpts)
400 (1.18 % of base) : 317653.dasm - lclfldmul:TestEntryPoint():int (FullOpts)
380 (0.89 % of base) : 317661.dasm - lclfldrem:TestEntryPoint():int (FullOpts)
Top method improvements (bytes):
-8246 (-6.15 % of base) : 408303.dasm - u4rem:TestEntryPoint():int (FullOpts)
-7392 (-4.77 % of base) : 408308.dasm - u8div:TestEntryPoint():int (FullOpts)
-6296 (-6.56 % of base) : 407899.dasm - r4div:TestEntryPoint():int (FullOpts)
-6294 (-6.62 % of base) : 407963.dasm - r8div:TestEntryPoint():int (FullOpts)
-6206 (-4.79 % of base) : 408298.dasm - u4div:TestEntryPoint():int (FullOpts)
-6072 (-5.39 % of base) : 407995.dasm - r8rem:TestEntryPoint():int (FullOpts)
-5910 (-5.27 % of base) : 407931.dasm - r4rem:TestEntryPoint():int (FullOpts)
-5862 (-3.83 % of base) : 407663.dasm - i8div:TestEntryPoint():int (FullOpts)
-5460 (-3.43 % of base) : 407670.dasm - i8rem:TestEntryPoint():int (FullOpts)
-5350 (-3.36 % of base) : 408313.dasm - u8rem:TestEntryPoint():int (FullOpts)
-5174 (-4.30 % of base) : 407649.dasm - i4div:TestEntryPoint():int (FullOpts)
-5060 (-4.81 % of base) : 407873.dasm - overldrem:TestEntryPoint():int (FullOpts)
-5058 (-4.81 % of base) : 415908.dasm - overlddiv:TestEntryPoint():int (FullOpts)
-4458 (-3.59 % of base) : 407656.dasm - i4rem:TestEntryPoint():int (FullOpts)
-3980 (-1.54 % of base) : 407462.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
-3794 (-1.46 % of base) : 407467.dasm - decimalrem:TestEntryPoint():int (FullOpts)
-3452 (-3.28 % of base) : 407859.dasm - overlddiv:TestEntryPoint():int (FullOpts)
-3326 (-3.16 % of base) : 415910.dasm - overldrem:TestEntryPoint():int (FullOpts)
-2134 (-12.12 % of base) : 459659.dasm - Generated906:CalliTest() (FullOpts)
-2108 (-11.71 % of base) : 431806.dasm - Generated1064:CalliTest() (FullOpts)
Top method regressions (percentages):
82 (110.81 % of base) : 409902.dasm - Test_10w5d.testout1:Func_0_5_3_6_6():double (FullOpts)
82 (110.81 % of base) : 414713.dasm - Test_10w5d.testout1:Func_0_5_3_6_6():double (FullOpts)
262 (70.05 % of base) : 415389.dasm - Test_10w5d.testout1:Func_0_2_3_4():double (FullOpts)
262 (69.31 % of base) : 410579.dasm - Test_10w5d.testout1:Func_0_2_3_4():double (FullOpts)
128 (65.31 % of base) : 411233.dasm - structinreg.Program4:test2(long,structinreg.Test42,structinreg.Test42,structinreg.Test42,structinreg.Test42):long (FullOpts)
128 (65.31 % of base) : 411237.dasm - structinreg.Program4:test6(long,structinreg.Test42,structinreg.Test42,structinreg.Test42,structinreg.Test42):long (FullOpts)
24 (63.16 % of base) : 424200.dasm - foo:TestEntryPoint() (FullOpts)
24 (63.16 % of base) : 424110.dasm - otherClass+C:.cctor() (FullOpts)
24 (60.00 % of base) : 416276.dasm - Application:Display(int,System.String,int) (FullOpts)
122 (54.46 % of base) : 411232.dasm - structinreg.Program4:test1(long,structinreg.Test41,structinreg.Test41,structinreg.Test41,structinreg.Test41):long (FullOpts)
122 (54.46 % of base) : 411236.dasm - structinreg.Program4:test5(long,structinreg.Test41,structinreg.Test41,structinreg.Test41,structinreg.Test41):long (FullOpts)
16 (50.00 % of base) : 424202.dasm - foo:div() (FullOpts)
16 (44.44 % of base) : 422710.dasm - N.C:TestEntryPoint():int (FullOpts)
114 (43.18 % of base) : 415423.dasm - Test_10w5d.testout1:Func_0_2_2_5():float (FullOpts)
40 (42.55 % of base) : 416390.dasm - Bug426480:foo() (FullOpts)
108 (42.19 % of base) : 410125.dasm - Test_10w5d.testout1:Func_0_4_4_4():double (FullOpts)
26 (41.94 % of base) : 411414.dasm - Test4:.cctor() (FullOpts)
114 (41.61 % of base) : 410613.dasm - Test_10w5d.testout1:Func_0_2_2_5():float (FullOpts)
240 (41.52 % of base) : 407609.dasm - Test_FloatOvfToInt2.FloatOvfToInt:TestValuesDoubleInt():int (FullOpts)
240 (40.96 % of base) : 407611.dasm - Test_FloatOvfToInt2.FloatOvfToInt:TestValuesDoubleIntImport():int (FullOpts)
Top method improvements (percentages):
-160 (-18.18 % of base) : 399513.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:IsDefault(System.Object):ubyte (FullOpts)
-1488 (-16.90 % of base) : 462321.dasm - Generated992:MethodCallingTest() (FullOpts)
-1514 (-16.26 % of base) : 456966.dasm - Generated819:MethodCallingTest() (FullOpts)
-1332 (-16.23 % of base) : 462179.dasm - Generated987:MethodCallingTest() (FullOpts)
-58 (-16.20 % of base) : 380293.dasm - Benchstone.BenchI.XposMatrix:Inner(int[][],int) (FullOpts)
-58 (-16.20 % of base) : 155086.dasm - Benchstone.BenchI.XposMatrix:Inner(int[][],int) (Tier0-FullOpts)
-1342 (-16.13 % of base) : 462125.dasm - Generated985:MethodCallingTest() (FullOpts)
-1322 (-16.03 % of base) : 462004.dasm - Generated980:MethodCallingTest() (FullOpts)
-8 (-16.00 % of base) : 369961.dasm - BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
-8 (-16.00 % of base) : 378630.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
-8 (-16.00 % of base) : 156317.dasm - Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
-1342 (-15.97 % of base) : 443157.dasm - Generated1406:MethodCallingTest() (FullOpts)
-1220 (-15.93 % of base) : 459883.dasm - Generated914:MethodCallingTest() (FullOpts)
-1436 (-15.90 % of base) : 429912.dasm - Generated1021:MethodCallingTest() (FullOpts)
-1406 (-15.89 % of base) : 429544.dasm - Generated1012:MethodCallingTest() (FullOpts)
-6 (-15.79 % of base) : 479658.dasm - Tracing.Tests.EventListenerThreadPool+<>c:<TestEntryPoint>b__0_0(System.Object,ubyte):this (FullOpts)
-1412 (-15.76 % of base) : 456939.dasm - Generated818:MethodCallingTest() (FullOpts)
-1320 (-15.75 % of base) : 458895.dasm - Generated883:MethodCallingTest() (FullOpts)
-1318 (-15.74 % of base) : 462152.dasm - Generated986:MethodCallingTest() (FullOpts)
-1046 (-15.64 % of base) : 452320.dasm - Generated659:MethodCallingTest() (FullOpts)
libraries.crossgen2.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 37762784 (overridden on cmd)
Total bytes of diff: 37766522 (overridden on cmd)
Total bytes of delta: 3738 (0.01 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
228 : 16423.dasm (0.19 % of base)
196 : 162301.dasm (5.28 % of base)
160 : 161959.dasm (6.57 % of base)
160 : 177288.dasm (6.57 % of base)
142 : 162351.dasm (4.80 % of base)
142 : 162309.dasm (4.80 % of base)
134 : 88315.dasm (6.71 % of base)
112 : 146530.dasm (1.61 % of base)
108 : 65891.dasm (6.24 % of base)
106 : 162197.dasm (2.74 % of base)
86 : 89317.dasm (1.54 % of base)
80 : 36976.dasm (4.69 % of base)
78 : 146160.dasm (5.36 % of base)
78 : 161028.dasm (4.77 % of base)
74 : 113991.dasm (3.34 % of base)
74 : 1900.dasm (7.52 % of base)
74 : 190201.dasm (2.48 % of base)
70 : 120295.dasm (5.15 % of base)
68 : 34736.dasm (1.19 % of base)
68 : 79812.dasm (2.86 % of base)
Top file improvements (bytes):
-240 : 106160.dasm (-15.50 % of base)
-226 : 161214.dasm (-3.86 % of base)
-220 : 45276.dasm (-15.13 % of base)
-178 : 126992.dasm (-7.37 % of base)
-158 : 161213.dasm (-4.31 % of base)
-150 : 171265.dasm (-8.40 % of base)
-150 : 163076.dasm (-9.27 % of base)
-150 : 199331.dasm (-8.45 % of base)
-150 : 74600.dasm (-8.38 % of base)
-136 : 76326.dasm (-4.02 % of base)
-130 : 160996.dasm (-7.00 % of base)
-130 : 174500.dasm (-6.96 % of base)
-130 : 199582.dasm (-5.87 % of base)
-130 : 201464.dasm (-8.31 % of base)
-128 : 61136.dasm (-3.25 % of base)
-122 : 36677.dasm (-2.74 % of base)
-120 : 77576.dasm (-5.41 % of base)
-120 : 137686.dasm (-5.88 % of base)
-104 : 42684.dasm (-2.30 % of base)
-102 : 137816.dasm (-0.46 % of base)
91 total files with Code Size differences (42 improved, 49 regressed), 20 unchanged.
Top method regressions (bytes):
228 (0.19 % of base) : 16423.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 (5.28 % of base) : 162301.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
160 (6.57 % of base) : 161959.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
160 (6.57 % of base) : 177288.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
142 (4.80 % of base) : 162351.dasm - System.Data.RBTree`1[int]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)
142 (4.80 % of base) : 162309.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)
134 (6.71 % of base) : 88315.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAttributeData:GetTargetAttributeSignatureIndex(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.AttributeDescription):int:this (FullOpts)
112 (1.61 % of base) : 146530.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
108 (6.24 % of base) : 65891.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler+DocumentationCommentWalker:GetSubstitutedText(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordPropertySymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.XmlElementSyntax],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode],System.Text.StringBuilder) (FullOpts)
106 (2.74 % of base) : 162197.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (FullOpts)
86 (1.54 % of base) : 89317.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberFieldSymbol:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.FieldDeclarationSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag) (FullOpts)
80 (4.69 % of base) : 36976.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindLocalFunctionStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalFunctionStatementSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (FullOpts)
78 (4.77 % of base) : 161028.dasm - System.Data.SqlTypes.SqlDecimal:MpDiv(System.ReadOnlySpan`1[uint],int,System.Span`1[uint],int,System.Span`1[uint],byref,System.Span`1[uint],byref) (FullOpts)
78 (5.36 % of base) : 146160.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectReader:ParseArrayMember(System.Runtime.Serialization.Formatters.Binary.ParseRecord):this (FullOpts)
74 (3.34 % of base) : 113991.dasm - ILCompiler.Reflection.ReadyToRun.R2RSignatureDecoder`3[System.__Canon,System.__Canon,System.__Canon]:ParseType():System.__Canon:this (FullOpts)
74 (2.48 % of base) : 190201.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[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):this (FullOpts)
74 (7.52 % of base) : 1900.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (FullOpts)
70 (5.15 % of base) : 120295.dasm - System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[uint],System.Span`1[uint]) (FullOpts)
68 (1.19 % of base) : 34736.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
68 (2.86 % of base) : 79812.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
Top method improvements (bytes):
-240 (-15.50 % of base) : 106160.dasm - Microsoft.CodeAnalysis.VisualBasic.ObjectDisplay.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
-226 (-3.86 % of base) : 161214.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
-220 (-15.13 % of base) : 45276.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
-178 (-7.37 % of base) : 126992.dasm - Microsoft.CSharp.RuntimeBinder.SymbolTable:SetParameterAttributes(Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol,System.Reflection.ParameterInfo[],int) (FullOpts)
-158 (-4.31 % of base) : 161213.dasm - System.Data.Common.SqlConvert:ChangeType2(System.Object,int,System.Type,System.IFormatProvider):System.Object (FullOpts)
-150 (-9.27 % of base) : 163076.dasm - Newtonsoft.Json.JsonValidatingReader:ValidateInteger(Newtonsoft.Json.Schema.JsonSchemaModel):this (FullOpts)
-150 (-8.40 % of base) : 171265.dasm - System.Resources.Extensions.PreserializedResourceWriter:WriteValue(int,System.Object,System.IO.BinaryWriter) (FullOpts)
-150 (-8.45 % of base) : 199331.dasm - System.Resources.ResourceWriter:WriteValue(int,System.Object,System.IO.BinaryWriter) (FullOpts)
-150 (-8.38 % of base) : 74600.dasm - System.Xml.Schema.XmlUntypedConverter:ToString(System.Object,System.Xml.IXmlNamespaceResolver):System.String:this (FullOpts)
-136 (-4.02 % of base) : 76326.dasm - System.Xml.Serialization.XmlSerializationWriter:WriteTypedPrimitive(System.String,System.String,System.Object,ubyte):this (FullOpts)
-130 (-6.96 % of base) : 174500.dasm - Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts)
-130 (-8.31 % of base) : 201464.dasm - Microsoft.Extensions.Logging.Console.JsonConsoleFormatter:WriteItem(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.KeyValuePair`2[System.String,System.Object]) (FullOpts)
-130 (-7.00 % of base) : 160996.dasm - System.Data.UnaryNode:EvalUnaryOp(int,System.Object):System.Object:this (FullOpts)
-130 (-5.87 % of base) : 199582.dasm - System.Runtime.InteropServices.Marshalling.ComVariantMarshaller+RefPropagate:ToUnmanaged():System.Runtime.InteropServices.Marshalling.ComVariant:this (FullOpts)
-128 (-3.25 % of base) : 61136.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
-122 (-2.74 % of base) : 36677.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindInterpolatedStringHandlerInMemberCall(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
-120 (-5.88 % of base) : 137686.dasm - Microsoft.VisualBasic.CompilerServices.Operators:NegateObject(System.Object):System.Object (FullOpts)
-120 (-5.41 % of base) : 77576.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
-104 (-2.30 % of base) : 42684.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,ubyte,ubyte,ubyte,int,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState],ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitResult]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (FullOpts)
-102 (-0.46 % of base) : 137816.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)
Top method regressions (percentages):
12 (28.57 % of base) : 115944.dasm - Internal.TypeSystem.Ecma.EcmaMethod:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
12 (28.57 % of base) : 115977.dasm - Internal.TypeSystem.Ecma.EcmaType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
12 (28.57 % of base) : 87448.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeClass():Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
12 (28.57 % of base) : 87449.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeConstructor():Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this (FullOpts)
12 (28.57 % of base) : 114390.dasm - System.Diagnostics.Activity:get_TraceId():System.Diagnostics.ActivityTraceId:this (FullOpts)
12 (28.57 % of base) : 196697.dasm - System.Diagnostics.TextWriterTraceListener:get_Writer():System.IO.TextWriter:this (FullOpts)
12 (28.57 % of base) : 173217.dasm - System.Net.Security.SafeCredentialReference:DisposeInternal():this (FullOpts)
12 (26.09 % of base) : 133046.dasm - System.Reflection.Emit.PropertyBuilderImpl:GetConstantValue():System.Object:this (FullOpts)
64 (25.00 % of base) : 71128.dasm - System.Xml.XmlUtf8RawTextWriter:WriteCData(System.String):this (FullOpts)
12 (23.08 % of base) : 114393.dasm - System.Diagnostics.Activity:get_ActivityTraceFlags():int:this (FullOpts)
12 (21.43 % of base) : 152430.dasm - System.ComponentModel.DataAnnotations.FileExtensionsAttribute:get_Extensions():System.String:this (FullOpts)
12 (20.69 % of base) : 29074.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ModuleLoadUnloadTraceData:get_NativePdbAge():int:this (FullOpts)
12 (20.69 % of base) : 23698.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.ProcessTraceData:get_ExitStatus():int:this (FullOpts)
12 (20.69 % of base) : 24064.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.TcpIpTraceData:get_seqnum():int:this (FullOpts)
12 (20.69 % of base) : 23444.dasm - Microsoft.Diagnostics.Tracing.Parsers.MicrosoftWindowsTCPIP.TcpTcbStartTimerArgs:get_Processor():int:this (FullOpts)
24 (20.69 % of base) : 161388.dasm - System.Data.DataColumn:CheckNullable(System.Data.DataRow):this (FullOpts)
12 (20.69 % of base) : 143038.dasm - System.Diagnostics.Process:Dispose(ubyte):this (FullOpts)
20 (20.41 % of base) : 14147.dasm - Microsoft.Diagnostics.Tracing.Etlx.TraceLog:GetContainerID(uint):System.String:this (FullOpts)
12 (20.00 % of base) : 24204.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.ImageLoadTraceData:get_ImageChecksum():int:this (FullOpts)
12 (20.00 % of base) : 139040.dasm - System.IO.Compression.SubReadStream:get_CanRead():ubyte:this (FullOpts)
Top method improvements (percentages):
-20 (-20.41 % of base) : 169822.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
-20 (-20.41 % of base) : 191537.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
-36 (-18.37 % of base) : 79201.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
-20 (-16.67 % of base) : 169826.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon],System.Comparison`1[System.__Canon]) (FullOpts)
-20 (-16.67 % of base) : 191541.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon],System.Comparison`1[System.__Canon]) (FullOpts)
-36 (-15.93 % of base) : 585.dasm - System.MathF:ILogB(float):int (FullOpts)
-240 (-15.50 % of base) : 106160.dasm - Microsoft.CodeAnalysis.VisualBasic.ObjectDisplay.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
-20 (-15.15 % of base) : 193153.dasm - System.Xml.Linq.XObject:GetSaveOptionsFromAnnotations():int:this (FullOpts)
-220 (-15.13 % of base) : 45276.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
-94 (-13.39 % of base) : 161973.dasm - System.Data.RBTree`1[System.__Canon]:LeftRotate(int,int,int):int:this (FullOpts)
-94 (-13.39 % of base) : 161974.dasm - System.Data.RBTree`1[System.__Canon]:RightRotate(int,int,int):int:this (FullOpts)
-32 (-13.22 % of base) : 13090.dasm - Diagnostics.Tracing.StackSources.AggregateStackSource:ConvertSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,int):Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample:this (FullOpts)
-6 (-13.04 % of base) : 80979.dasm - System.Xml.Xsl.XsltOld.PrefixQName:ValidatePrefix(System.String):ubyte (FullOpts)
-48 (-12.63 % of base) : 179457.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)
-26 (-11.61 % of base) : 186701.dasm - Microsoft.CodeAnalysis.AnalyzerConfig+SectionNameLexer:Lex():int:this (FullOpts)
-22 (-11.22 % of base) : 37409.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:<GetInvocationArgumentsForEscape>g__getArgList|24_3(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis+MixableDestination],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis+EscapeArgument]) (FullOpts)
-24 (-11.21 % of base) : 161239.dasm - System.Data.RBTree`1[System.__Canon]:IndexOf(int,System.__Canon):int:this (FullOpts)
-26 (-10.92 % of base) : 116084.dasm - Internal.NativeFormat.TypeHashingAlgorithms+HashCodeBuilder:Append(System.String):this (FullOpts)
-16 (-10.53 % of base) : 84682.dasm - System.Reflection.Internal.ReadOnlyUnmanagedMemoryStream:Read(System.Span`1[ubyte]):int:this (FullOpts)
-10 (-10.42 % of base) : 113198.dasm - ILCompiler.Reflection.ReadyToRun.NativeReader:DecodeVarLengthUnsigned(ubyte[],int,byref):uint (FullOpts)
libraries.pmi.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 49767906 (overridden on cmd)
Total bytes of diff: 49674496 (overridden on cmd)
Total bytes of delta: -93410 (-0.19 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
562 : 39067.dasm (2.07 % of base)
490 : 40662.dasm (1.07 % of base)
434 : 167578.dasm (11.40 % of base)
324 : 263558.dasm (3.71 % of base)
278 : 245365.dasm (7.66 % of base)
270 : 38746.dasm (0.88 % of base)
250 : 161648.dasm (3.91 % of base)
242 : 95171.dasm (2.08 % of base)
236 : 62517.dasm (4.65 % of base)
232 : 56545.dasm (3.12 % of base)
224 : 170031.dasm (6.56 % of base)
224 : 161985.dasm (5.68 % of base)
208 : 58472.dasm (6.78 % of base)
170 : 95207.dasm (2.30 % of base)
166 : 283000.dasm (10.29 % of base)
160 : 213420.dasm (9.51 % of base)
148 : 235601.dasm (2.59 % of base)
146 : 230008.dasm (3.79 % of base)
138 : 98213.dasm (7.27 % of base)
136 : 129.dasm (1.73 % of base)
Top file improvements (bytes):
-370 : 193195.dasm (-1.78 % of base)
-278 : 258700.dasm (-8.63 % of base)
-276 : 258611.dasm (-8.22 % of base)
-234 : 102704.dasm (-3.29 % of base)
-222 : 161561.dasm (-3.32 % of base)
-222 : 161545.dasm (-3.32 % of base)
-220 : 170445.dasm (-2.56 % of base)
-218 : 161587.dasm (-3.60 % of base)
-212 : 61379.dasm (-9.71 % of base)
-206 : 253896.dasm (-11.32 % of base)
-196 : 86320.dasm (-7.04 % of base)
-194 : 170444.dasm (-3.62 % of base)
-194 : 208654.dasm (-7.42 % of base)
-194 : 227279.dasm (-5.58 % of base)
-190 : 277890.dasm (-6.99 % of base)
-176 : 121461.dasm (-5.07 % of base)
-168 : 54286.dasm (-2.38 % of base)
-164 : 139415.dasm (-3.91 % of base)
-164 : 194558.dasm (-5.53 % of base)
-160 : 224494.dasm (-17.09 % of base)
90 total files with Code Size differences (47 improved, 43 regressed), 20 unchanged.
Top method regressions (bytes):
562 (2.07 % of base) : 39067.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
490 (1.07 % of base) : 40662.dasm - Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
434 (11.40 % of base) : 167578.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (FullOpts)
324 (3.71 % of base) : 263558.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (FullOpts)
278 (7.66 % of base) : 245365.dasm - System.Globalization.FormatProvider+Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
270 (0.88 % of base) : 38746.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrPrivateTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
250 (3.91 % of base) : 161648.dasm - System.Numerics.Tensors.TensorPrimitives+MinMagnitudeOperator`1[short]:Invoke(System.Runtime.Intrinsics.Vector128`1[short]):short (FullOpts)
242 (2.08 % of base) : 95171.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)
236 (4.65 % of base) : 62517.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalAccess(Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess,byref):this (FullOpts)
232 (3.12 % of base) : 56545.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
224 (6.56 % of base) : 170031.dasm - System.Data.Common.DbDataAdapter:Update(System.Data.DataRow[],System.Data.Common.DataTableMapping):int:this (FullOpts)
224 (5.68 % of base) : 161985.dasm - System.Numerics.Tensors.TensorPrimitives+RoundToEvenOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
208 (6.78 % of base) : 58472.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)
170 (2.30 % of base) : 95207.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureAndProduceBoundNode(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.VisualBasic.BoundTypeExpression,Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.Location):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
166 (10.29 % of base) : 283000.dasm - System.Formats.Asn1.AsnDecoder:CopyConstructedOctetString(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ubyte],ubyte,ubyte,byref):int (FullOpts)
160 (9.51 % of base) : 213420.dasm - System.Linq.Expressions.ExpressionStringBuilder:VisitUnary(System.Linq.Expressions.UnaryExpression):System.Linq.Expressions.Expression:this (FullOpts)
148 (2.59 % of base) : 235601.dasm - ILCompiler.Reflection.ReadyToRun.SignatureDecoder:ParseSignature(int,System.Text.StringBuilder):ILCompiler.Reflection.ReadyToRun.ReadyToRunSignature:this (FullOpts)
146 (3.79 % of base) : 230008.dasm - Microsoft.Build.BackEnd.Scheduler:WriteNodeUtilizationGraph(Microsoft.Build.BackEnd.Logging.ILoggingService,Microsoft.Build.Framework.BuildEventContext,ubyte):this (FullOpts)
138 (7.27 % of base) : 98213.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAttributeData:GetTargetAttributeSignatureIndex(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.AttributeDescription):int:this (FullOpts)
136 (1.73 % of base) : 129.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
Top method improvements (bytes):
-370 (-1.78 % of base) : 193195.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
-278 (-8.63 % of base) : 258700.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
-276 (-8.22 % of base) : 258611.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
-234 (-3.29 % of base) : 102704.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation:FindEntryPoint(System.Threading.CancellationToken,byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this (FullOpts)
-222 (-3.32 % of base) : 161545.dasm - System.Numerics.Tensors.TensorPrimitives+IndexOfMaxOperator`1[ubyte]:Invoke(byref,System.Runtime.Intrinsics.Vector512`1[ubyte],byref,System.Runtime.Intrinsics.Vector512`1[ubyte]) (FullOpts)
-222 (-3.32 % of base) : 161561.dasm - System.Numerics.Tensors.TensorPrimitives+IndexOfMinOperator`1[ubyte]:Invoke(byref,System.Runtime.Intrinsics.Vector512`1[ubyte],byref,System.Runtime.Intrinsics.Vector512`1[ubyte]) (FullOpts)
-220 (-2.56 % of base) : 170445.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
-218 (-3.60 % of base) : 161587.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(System.Runtime.Intrinsics.Vector128`1[ubyte]):ubyte (FullOpts)
-212 (-9.71 % of base) : 61379.dasm - Microsoft.CodeAnalysis.CSharp.ClsComplianceChecker:TryGetCollisionErrorCode(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol,byref):ubyte (FullOpts)
-206 (-11.32 % of base) : 253896.dasm - System.IO.Packaging.InternalRelationshipCollection:ParseRelationshipPart(System.IO.Packaging.PackagePart):this (FullOpts)
-196 (-7.04 % of base) : 86320.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedConversionSymbol:.ctor(int,Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.String,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.Syntax.ConversionOperatorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-194 (-5.58 % of base) : 227279.dasm - Microsoft.Build.Graph.GraphBuilder:ExpandSolutionIfPresent(System.Collections.Generic.IReadOnlyCollection`1[Microsoft.Build.Graph.ProjectGraphEntryPoint]):System.ValueTuple`2[System.Collections.Generic.IReadOnlyCollection`1[Microsoft.Build.Graph.ProjectGraphEntryPoint],System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.Collections.Generic.IReadOnlyCollection`1[System.String]]]:this (FullOpts)
-194 (-7.42 % of base) : 208654.dasm - Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts)
-194 (-3.62 % of base) : 170444.dasm - System.Data.Common.SqlConvert:ChangeType2(System.Object,int,System.Type,System.IFormatProvider):System.Object (FullOpts)
-190 (-6.99 % of base) : 277890.dasm - Xunit.Runner.Reporters.JsonExtentions:.cctor() (FullOpts)
-176 (-5.07 % of base) : 121461.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager+AnonymousTypePublicSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager,Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor):this (FullOpts)
-168 (-2.38 % of base) : 54286.dasm - Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime:SetupCallbacks(Microsoft.Diagnostics.Tracing.TraceEventDispatcher) (FullOpts)
-164 (-5.53 % of base) : 194558.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:ForAttributeWithSimpleName(System.String,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Threading.CancellationToken,ubyte]):Microsoft.CodeAnalysis.IncrementalValuesProvider`1[System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode]]]:this (FullOpts)
-164 (-3.91 % of base) : 139415.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteValue(System.Object):this (FullOpts)
-160 (-6.18 % of base) : 273109.dasm - ILCompiler.Diagnostics.PdbWriter:WriteFileChecksums():this (FullOpts)
Top method regressions (percentages):
32 (25.40 % of base) : 220625.dasm - System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
32 (25.40 % of base) : 148658.dasm - System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
62 (24.80 % of base) : 126751.dasm - System.Xml.XmlUtf8RawTextWriter:WriteCData(System.String):this (FullOpts)
40 (22.99 % of base) : 33446.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
96 (21.43 % of base) : 24034.dasm - Microsoft.FSharp.Collections.ArrayModule+Parallel:Partition[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,ubyte],System.__Canon[]):System.Tuple`2[System.__Canon,System.__Canon] (FullOpts)
28 (21.21 % of base) : 135946.dasm - System.Xml.Xsl.Runtime.XmlQueryOutput:WriteStartElementUnchecked(System.String):this (FullOpts)
24 (21.05 % of base) : 211095.dasm - System.Security.Cryptography.Pkcs.CmsSignature:.cctor() (FullOpts)
38 (20.65 % of base) : 12123.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)
46 (20.00 % of base) : 284096.dasm - System.IO.IsolatedStorage.Helper:GetRootDirectory(int):System.String (FullOpts)
32 (19.75 % of base) : 230278.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:GetTaskHostNameFromHostContext(int):System.String (FullOpts)
28 (19.44 % of base) : 203261.dasm - Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)
28 (19.44 % of base) : 243702.dasm - System.Xml.Linq.XObjectChangeEventArgs:.cctor() (FullOpts)
40 (18.69 % of base) : 14434.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
46 (18.40 % of base) : 48940.dasm - Microsoft.Diagnostics.Tracing.Parsers.GCDynamic.GCDynamicTraceEvent:SelectEventMetadata():this (FullOpts)
28 (17.95 % of base) : 91130.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:.cctor() (FullOpts)
28 (17.95 % of base) : 214253.dasm - System.Linq.Expressions.Interpreter.ThrowInstruction:.cctor() (FullOpts)
26 (17.81 % of base) : 191971.dasm - Microsoft.CodeAnalysis.CachingFactory`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:TryGetValue(System.Numerics.Vector`1[float],byref):ubyte:this (FullOpts)
6 (17.65 % of base) : 123451.dasm - Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
6 (17.65 % of base) : 115188.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
6 (17.65 % of base) : 115207.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
Top method improvements (percentages):
-36 (-20.00 % of base) : 128225.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
-8 (-19.05 % of base) : 8515.dasm - System.Runtime.CompilerServices.Unsafe:Unbox[ubyte](System.Object):byref (FullOpts)
-8 (-18.18 % of base) : 172976.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[int]:<Cast>b__0():int:this (FullOpts)
-8 (-18.18 % of base) : 172974.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[ubyte]:<Cast>b__0():ubyte:this (FullOpts)
-8 (-18.18 % of base) : 193302.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
-8 (-18.18 % of base) : 29646.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[int](System.Object):int (FullOpts)
-8 (-18.18 % of base) : 29644.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[ubyte](System.Object):ubyte (FullOpts)
-8 (-18.18 % of base) : 271762.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)
-8 (-18.18 % of base) : 271756.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)
-8 (-18.18 % of base) : 136888.dasm - System.Xml.Xsl.IlGen.StorageDescriptor:get_ParameterLocation():int:this (FullOpts)
-8 (-18.18 % of base) : 136514.dasm - System.Xml.Xsl.Qil.QilLiteral:op_Implicit(System.Xml.Xsl.Qil.QilLiteral):int (FullOpts)
-8 (-17.39 % of base) : 172977.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[double]:<Cast>b__0():double:this (FullOpts)
-8 (-17.39 % of base) : 172975.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[short]:<Cast>b__0():short:this (FullOpts)
-8 (-17.39 % of base) : 29647.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[double](System.Object):double (FullOpts)
-8 (-17.39 % of base) : 29645.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[short](System.Object):short (FullOpts)
-8 (-17.39 % of base) : 271763.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[double]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):double:this (FullOpts)
-8 (-17.39 % of base) : 271761.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[short]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):short:this (FullOpts)
-8 (-17.39 % of base) : 8426.dasm - System.Runtime.CompilerServices.StrongBox`1[ubyte]:System.Runtime.CompilerServices.IStrongBox.set_Value(System.Object):this (FullOpts)
-8 (-17.39 % of base) : 136516.dasm - System.Xml.Xsl.Qil.QilLiteral:op_Implicit(System.Xml.Xsl.Qil.QilLiteral):double (FullOpts)
-160 (-17.09 % of base) : 224494.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:IsDefault(System.Object):ubyte (FullOpts)
libraries_tests.run.linux.arm.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 237219854 (overridden on cmd)
Total bytes of diff: 236977214 (overridden on cmd)
Total bytes of delta: -242640 (-0.10 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
546 : 330640.dasm (5.89 % of base)
492 : 144566.dasm (4.45 % of base)
474 : 543063.dasm (5.79 % of base)
456 : 304044.dasm (4.98 % of base)
434 : 257268.dasm (11.40 % of base)
412 : 21262.dasm (5.84 % of base)
404 : 67294.dasm (4.11 % of base)
390 : 99470.dasm (3.92 % of base)
362 : 107719.dasm (3.74 % of base)
348 : 359797.dasm (3.63 % of base)
334 : 708457.dasm (3.48 % of base)
290 : 486756.dasm (8.13 % of base)
238 : 654058.dasm (2.19 % of base)
234 : 695238.dasm (17.08 % of base)
224 : 65476.dasm (2.05 % of base)
222 : 59544.dasm (13.81 % of base)
220 : 169803.dasm (8.76 % of base)
212 : 467321.dasm (3.78 % of base)
210 : 221588.dasm (1.97 % of base)
210 : 695608.dasm (8.64 % of base)
Top file improvements (bytes):
-1604 : 390499.dasm (-10.92 % of base)
-490 : 677971.dasm (-4.07 % of base)
-318 : 555808.dasm (-3.01 % of base)
-304 : 563545.dasm (-3.34 % of base)
-290 : 16343.dasm (-2.48 % of base)
-284 : 407104.dasm (-2.93 % of base)
-282 : 553069.dasm (-2.98 % of base)
-276 : 159297.dasm (-5.15 % of base)
-272 : 676611.dasm (-4.52 % of base)
-262 : 385021.dasm (-3.75 % of base)
-260 : 138655.dasm (-8.38 % of base)
-260 : 706364.dasm (-2.58 % of base)
-244 : 694989.dasm (-3.38 % of base)
-244 : 279741.dasm (-2.44 % of base)
-240 : 527545.dasm (-5.96 % of base)
-238 : 197000.dasm (-2.57 % of base)
-238 : 199874.dasm (-0.94 % of base)
-234 : 321737.dasm (-3.30 % of base)
-226 : 622922.dasm (-2.22 % of base)
-224 : 444487.dasm (-9.66 % of base)
100 total files with Code Size differences (60 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
546 (5.89 % of base) : 330640.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
492 (4.45 % of base) : 144566.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 (Tier0-FullOpts)
474 (5.79 % of base) : 543063.dasm - System.Security.Cryptography.EcDiffieHellman.Tests.ECDiffieHellmanTests:Verify(byref,byref,System.Security.Cryptography.ECCurve,ubyte[]) (Tier1)
456 (4.98 % of base) : 304044.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
434 (11.40 % of base) : 257268.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (Tier0-FullOpts)
412 (5.84 % of base) : 21262.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Instrumented Tier1)
404 (4.11 % of base) : 67294.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
390 (3.92 % of base) : 99470.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
362 (3.74 % of base) : 107719.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
348 (3.63 % of base) : 359797.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
334 (3.48 % of base) : 708457.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
290 (8.13 % of base) : 486756.dasm - System.Globalization.FormatProvider+Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
238 (2.19 % of base) : 654058.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:InvalidJsonDueToWritingMultipleValues(System.Text.Json.JsonWriterOptions,ubyte):this (Tier1)
234 (17.08 % of base) : 695238.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax:Update(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.NameEqualsSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax:this (Tier1)
224 (2.05 % of base) : 65476.dasm - System.IO.Tests.StreamConformanceTests+<ValidateMisuseExceptionsAsync>d__50:MoveNext():this (Tier0-FullOpts)
222 (13.81 % of base) : 59544.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax:Update(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.NameEqualsSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax:this (Tier1)
220 (8.76 % of base) : 169803.dasm - Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderFactoryVisitor:VisitTypeDeclarationCore(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):Microsoft.CodeAnalysis.CSharp.Binder:this (Tier1)
212 (3.78 % of base) : 467321.dasm - System.Reflection.Metadata.Decoding.Tests.SignatureDecoderTests:SimpleSignatureProviderCoverage():this (Tier0-FullOpts)
210 (8.64 % of base) : 695608.dasm - Microsoft.CodeAnalysis.Options.SolutionOptionSet:GetInternalOptionValue(Microsoft.CodeAnalysis.Options.OptionKey):System.Object:this (Tier1)
210 (1.97 % of base) : 221588.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
Top method improvements (bytes):
-1604 (-10.92 % of base) : 390499.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-490 (-4.07 % of base) : 677971.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitExpressionConditional|13(System.Text.RegularExpressions.RegexNode):this (Tier1)
-318 (-3.01 % of base) : 555808.dasm - System.Security.Cryptography.Tests.ECKeyFileTests`1[System.__Canon]:ReadWriteKey(System.String,byref,System.Security.Cryptography.Tests.ECKeyFileTests`1+ReadKeyAction[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Security.Cryptography.Tests.ECKeyFileTests`1+WriteKeyToSpanFunc[System.__Canon],ubyte,System.Func`2[System.__Canon,System.__Canon],System.Security.Cryptography.Tests.ECKeyFileTests`1+WriteKeyToSpanFunc[System.__Canon]):this (Tier1)
-304 (-3.34 % of base) : 563545.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)
-290 (-2.48 % of base) : 16343.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 (Tier0-FullOpts)
-284 (-2.93 % of base) : 407104.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
-282 (-2.98 % of base) : 553069.dasm - System.Security.Cryptography.Dsa.Tests.DSAKeyFileTests:ReadWriteKey(System.String,byref,System.Security.Cryptography.Dsa.Tests.DSAKeyFileTests+ReadKeyAction,System.Func`2[System.Security.Cryptography.DSA,ubyte[]],System.Security.Cryptography.Dsa.Tests.DSAKeyFileTests+WriteKeyToSpanFunc,ubyte) (Tier1)
-276 (-5.15 % of base) : 159297.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],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):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (Tier0-FullOpts)
-272 (-4.52 % of base) : 676611.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitCapture|14(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode):this (Tier1)
-262 (-3.75 % of base) : 385021.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (Tier0-FullOpts)
-260 (-8.38 % of base) : 138655.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (Tier0-FullOpts)
-260 (-2.58 % of base) : 706364.dasm - System.Threading.Tasks.Dataflow.Tests.DebugAttributeTests:TestDebuggerDisplaysAndTypeProxies():this (Tier0-FullOpts)
-244 (-3.38 % of base) : 694989.dasm - Microsoft.CodeAnalysis.DiagnosticFormatter:Format(Microsoft.CodeAnalysis.Diagnostic,System.IFormatProvider):System.String:this (Tier1)
-244 (-2.44 % of base) : 279741.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
-240 (-5.96 % of base) : 527545.dasm - System.Tests.TupleTests+TupleTestDriver`10[short,int,long,System.__Canon,ushort,float,double,System.DateTime,System.__Canon,System.TimeSpan]:.ctor(System.Object[]):this (Tier1)
-238 (-0.94 % of base) : 199874.dasm - System.CodeDom.Compiler.Tests.VBCodeGenerationTests:ProviderSupports():this (Tier0-FullOpts)
-238 (-2.57 % of base) : 197000.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
-234 (-3.30 % of base) : 321737.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str:GetEntriesThenDelete():this (Tier1)
-226 (-2.22 % of base) : 622922.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
-224 (-9.66 % of base) : 444487.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
Top method regressions (percentages):
60 (34.88 % of base) : 281993.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
60 (34.88 % of base) : 284730.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.89 % of base) : 99666.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.89 % of base) : 99716.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.89 % of base) : 99626.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.89 % of base) : 99735.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.21 % of base) : 99659.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.21 % of base) : 99724.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.21 % of base) : 99643.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.21 % of base) : 99732.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (27.96 % of base) : 97135.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (27.66 % of base) : 286373.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
34 (25.76 % of base) : 290087.dasm - System.Linq.Expressions.ExpressionVisitor:VisitLoop(System.Linq.Expressions.LoopExpression):System.Linq.Expressions.Expression:this (Tier1)
52 (25.74 % of base) : 297063.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (25.74 % of base) : 281918.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (25.74 % of base) : 284197.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (25.49 % of base) : 97153.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (25.49 % of base) : 286359.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
32 (25.40 % of base) : 457993.dasm - System.Xml.Tests.TCXMLIntegrityBase:CloseTest():int:this (Tier1)
28 (24.56 % of base) : 308861.dasm - System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double (Instrumented Tier1)
Top method improvements (percentages):
-14 (-30.43 % of base) : 172388.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
-14 (-30.43 % of base) : 176335.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
-14 (-30.43 % of base) : 41939.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
-14 (-30.43 % of base) : 80295.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
-84 (-26.09 % of base) : 40959.dasm - Microsoft.CodeAnalysis.NodeStateTable`1[System.__Canon]:GetTotalEntryItemCount():int:this (Tier1)
-86 (-25.15 % of base) : 41069.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
-86 (-25.15 % of base) : 161579.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
-86 (-25.15 % of base) : 71516.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.__Canon,System.__Canon]]:get_IsCached():ubyte:this (Tier1)
-86 (-25.15 % of base) : 176342.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.__Canon,System.__Canon]]:get_IsCached():ubyte:this (Tier1)
-86 (-25.15 % of base) : 161723.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]]:get_IsCached():ubyte:this (Tier1)
-96 (-23.88 % of base) : 57002.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)
-18 (-23.08 % of base) : 267518.dasm - System.Data.TypeLimiter:get_IsTypeLimitingDisabled():ubyte (Tier1)
-18 (-23.08 % of base) : 267519.dasm - System.LocalAppContextSwitches:get_AllowArbitraryTypeInstantiation():ubyte (Tier1)
-20 (-21.74 % of base) : 720741.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
-20 (-21.28 % of base) : 456126.dasm - OLEDB.Test.ModuleCore.CError:WriteIgnore(System.String) (Tier1)
-8 (-20.00 % of base) : 340336.dasm - System.Linq.Parallel.MergeEnumerator`1[int]:Dispose():this (Tier1)
-8 (-20.00 % of base) : 340601.dasm - System.Linq.Parallel.MergeEnumerator`1[System.__Canon]:Dispose():this (Tier1)
-36 (-20.00 % of base) : 457451.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (Tier0-FullOpts)
-42 (-19.09 % of base) : 418842.dasm - System.MathF:ILogB(float):int (Tier1)
-8 (-19.05 % of base) : 443441.dasm - System.Xml.Xsl.IlGen.StorageDescriptor:get_ParameterLocation():int:this (Tier1)
librariestestsnotieredcompilation.run.linux.arm.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 93098472 (overridden on cmd)
Total bytes of diff: 92708508 (overridden on cmd)
Total bytes of delta: -389964 (-0.42 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
2872 : 249277.dasm (7.74 % of base)
1870 : 243504.dasm (5.01 % of base)
1218 : 62518.dasm (1.38 % of base)
1050 : 253266.dasm (2.80 % of base)
1026 : 98418.dasm (4.69 % of base)
1022 : 241553.dasm (2.73 % of base)
1022 : 244438.dasm (2.66 % of base)
1022 : 248120.dasm (2.73 % of base)
1022 : 253588.dasm (2.66 % of base)
1022 : 242549.dasm (2.66 % of base)
1022 : 250360.dasm (2.73 % of base)
1022 : 253703.dasm (2.73 % of base)
1022 : 253950.dasm (2.73 % of base)
1022 : 253527.dasm (2.73 % of base)
950 : 237085.dasm (2.47 % of base)
434 : 91437.dasm (11.40 % of base)
410 : 20155.dasm (2.07 % of base)
366 : 24951.dasm (3.96 % of base)
360 : 48505.dasm (2.95 % of base)
292 : 110472.dasm (1.64 % of base)
Top file improvements (bytes):
-594 : 185254.dasm (-6.15 % of base)
-410 : 213118.dasm (-9.11 % of base)
-358 : 306141.dasm (-6.91 % of base)
-340 : 107448.dasm (-1.72 % of base)
-310 : 6765.dasm (-2.66 % of base)
-306 : 179879.dasm (-6.62 % of base)
-284 : 50695.dasm (-5.42 % of base)
-282 : 185025.dasm (-2.92 % of base)
-280 : 87079.dasm (-3.60 % of base)
-280 : 87083.dasm (-3.60 % of base)
-268 : 298897.dasm (-2.64 % of base)
-260 : 41838.dasm (-8.38 % of base)
-250 : 253673.dasm (-1.20 % of base)
-250 : 236974.dasm (-1.20 % of base)
-250 : 249322.dasm (-1.20 % of base)
-250 : 253213.dasm (-1.20 % of base)
-250 : 250414.dasm (-1.24 % of base)
-250 : 243558.dasm (-1.20 % of base)
-250 : 244386.dasm (-1.20 % of base)
-250 : 253370.dasm (-1.20 % of base)
96 total files with Code Size differences (56 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
2872 (7.74 % of base) : 249277.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1870 (5.01 % of base) : 243504.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Metadata+PropertyVisibilityTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1218 (1.38 % of base) : 62518.dasm - System.CodeDom.Compiler.Tests.CodeValidatorTests+<ValidateIdentifiers_Valid_TestData>d__0:MoveNext():ubyte:this (FullOpts)
1050 (2.80 % of base) : 253266.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1026 (4.69 % of base) : 98418.dasm - System.Diagnostics.Metrics.Tests.MetricsTests:<ObservableInstrumentMeasurementTest>b__7_0():this (FullOpts)
1022 (2.73 % of base) : 253950.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1022 (2.66 % of base) : 244438.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1022 (2.66 % of base) : 242549.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Default+ExtensionDataTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1022 (2.73 % of base) : 250360.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Metadata+ExtensionDataTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1022 (2.73 % of base) : 248120.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Metadata+PropertyNameTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1022 (2.73 % of base) : 241553.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Default+PropertyVisibilityTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1022 (2.66 % of base) : 253588.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1022 (2.73 % of base) : 253527.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
1022 (2.73 % of base) : 253703.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
950 (2.47 % of base) : 237085.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
434 (11.40 % of base) : 91437.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (FullOpts)
410 (2.07 % of base) : 20155.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
366 (3.96 % of base) : 24951.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:.cctor() (FullOpts)
360 (2.95 % of base) : 48505.dasm - Microsoft.CodeAnalysis.CSharp.CodeStyle.CSharpCodeStyleOptions:.cctor() (FullOpts)
292 (1.64 % of base) : 110472.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004.enum004.Test:MainMethod():int (FullOpts)
Top method improvements (bytes):
-594 (-6.15 % of base) : 185254.dasm - System.Reflection.Tests.FieldTests:TestLiteralFields1() (FullOpts)
-410 (-9.11 % of base) : 213118.dasm - System.Tests.TupleTests+TupleTestDriver`10[short,int,long,System.__Canon,ushort,float,double,System.DateTime,System.__Canon,System.TimeSpan]:.ctor(System.Object[]):this (FullOpts)
-358 (-6.91 % of base) : 306141.dasm - System.Tests.ValueTupleTests+ValueTupleTestDriver`10[short,int,long,System.__Canon,ushort,float,double,System.DateTime,System.ValueTuple`2[ubyte,System.__Canon],System.TimeSpan]:.ctor(System.Object[]):this (FullOpts)
-340 (-1.72 % of base) : 107448.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.cnst001.cnst001.Test:MainMethod():int (FullOpts)
-310 (-2.66 % of base) : 6765.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)
-306 (-6.62 % of base) : 179879.dasm - System.Reflection.Emit.Tests.AssemblySaveTypeBuilderAPIsTests:VerifyPInvokeMethod(System.Type,System.Reflection.MethodInfo,System.Reflection.Emit.Tests.DpmParams,System.Reflection.Assembly) (FullOpts)
-284 (-5.42 % of base) : 50695.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],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):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
-282 (-2.92 % of base) : 185025.dasm - System.Reflection.Tests.PropertyTests:TestProperties_GetterSetter() (FullOpts)
-280 (-3.60 % of base) : 87083.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProvider_InvokeObject_RemovesProvider():this (FullOpts)
-280 (-3.60 % of base) : 87079.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProviderTransparent_InvokeObject_RemovesProvider():this (FullOpts)
-268 (-2.64 % of base) : 298897.dasm - System.Threading.Tasks.Dataflow.Tests.DebugAttributeTests:TestDebuggerDisplaysAndTypeProxies():this (FullOpts)
-260 (-8.38 % of base) : 41838.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
-250 (-1.20 % of base) : 236974.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
-250 (-1.20 % of base) : 244386.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
-250 (-1.24 % of base) : 250414.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Metadata+ExtensionDataTestsContext_Metadata:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
-250 (-1.20 % of base) : 249322.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
-250 (-1.20 % of base) : 243558.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Metadata+PropertyVisibilityTestsContext_Metadata:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
-250 (-1.20 % of base) : 253213.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
-250 (-1.20 % of base) : 253370.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestStructWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
-250 (-1.20 % of base) : 253673.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestStructWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
Top method regressions (percentages):
28 (46.67 % of base) : 155966.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FlushStores() (FullOpts)
60 (34.88 % of base) : 102021.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
60 (34.88 % of base) : 102622.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
24 (33.33 % of base) : 113366.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
16 (30.77 % of base) : 163781.dasm - System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b__17_0():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
52 (29.89 % of base) : 27565.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.89 % of base) : 27579.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.89 % of base) : 27555.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.89 % of base) : 27585.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.21 % of base) : 27563.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.21 % of base) : 27580.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.21 % of base) : 27561.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (29.21 % of base) : 27582.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (27.96 % of base) : 26336.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (27.66 % of base) : 102416.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
32 (26.67 % of base) : 21975.dasm - NuGet.Frameworks.NuGetFramework:get_IsSpecificFramework():ubyte:this (FullOpts)
52 (25.74 % of base) : 106019.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (25.74 % of base) : 109092.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (25.74 % of base) : 106023.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
52 (25.49 % of base) : 102408.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
Top method improvements (percentages):
-8 (-26.67 % of base) : 36266.dasm - DryIoc.Container:SetInitialFactoryID():this (FullOpts)
-8 (-26.67 % of base) : 112244.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass:Dispose():this (FullOpts)
-8 (-26.67 % of base) : 114408.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using002.using002.MyClass:Dispose():this (FullOpts)
-8 (-26.67 % of base) : 103086.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass:Dispose():this (FullOpts)
-36 (-20.00 % of base) : 177499.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
-8 (-19.05 % of base) : 42597.dasm - Microsoft.CodeAnalysis.Options.Option2`1[int]:get_DefaultValue():int:this (FullOpts)
-8 (-19.05 % of base) : 48525.dasm - Microsoft.CodeAnalysis.Options.PerLanguageOption2`1[ubyte]:get_DefaultValue():ubyte:this (FullOpts)
-8 (-19.05 % of base) : 132349.dasm - System.Linq.ParallelQuery`1+<>c__1`1[System.__Canon,int]:<Cast>b__1_0(System.__Canon):int:this (FullOpts)
-8 (-19.05 % of base) : 140697.dasm - System.Linq.Tests.OrderByTests+<>c:<LastOnOrderedMatchingCases>b__30_0(System.Object):int:this (FullOpts)
-8 (-19.05 % of base) : 236517.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default+<>c:<Point_2D_With_ExtDataPropInit>b__818_2(System.Object):System.Collections.Generic.Dictionary`2[System.String,System.Text.Json.JsonElement]:this (FullOpts)
-8 (-19.05 % of base) : 236269.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyICollectionOfInt_BackedBy_ListOfIntPropInit>b__527_0(System.Object):System.Collections.Generic.ICollection`1[int]:this (FullOpts)
-8 (-19.05 % of base) : 237373.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyICollectionOfInt_BackedBy_ListOfIntWithNumberHandlingWithoutPopulateAttributePropInit>b__549_0(System.Object):System.Collections.Generic.ICollection`1[int]:this (FullOpts)
-8 (-19.05 % of base) : 236953.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyIListOfInt_BackedBy_ListOfIntPropInit>b__731_0(System.Object):System.Collections.Generic.IList`1[int]:this (FullOpts)
-8 (-19.05 % of base) : 237145.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyIListOfInt_BackedBy_ListOfIntWithAttributeOnTypePropInit>b__737_0(System.Object):System.Collections.Generic.IList`1[int]:this (FullOpts)
-8 (-19.05 % of base) : 236809.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyISetOfInt_BackedBy_HashSetOfIntWithNumberHandlingPropInit>b__809_0(System.Object):System.Collections.Generic.ISet`1[int]:this (FullOpts)
-8 (-19.05 % of base) : 236693.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyListOfIntWithNumberHandlingWithoutPopulateAttributePropInit>b__885_0(System.Object):System.Collections.Generic.List`1[int]:this (FullOpts)
-8 (-19.05 % of base) : 236781.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyStackWithoutPopulateAttributePropInit>b__1025_0(System.Object):System.Collections.Stack:this (FullOpts)
-8 (-19.05 % of base) : 233537.dasm - System.Text.Json.SourceGeneration.Tests.MetadataWithPerTypeAttributeContext+<>c:<PersonStructPropInit>b__195_0(System.Object):System.String:this (FullOpts)
-8 (-19.05 % of base) : 234173.dasm - System.Text.Json.SourceGeneration.Tests.MetadataWithPerTypeAttributeContext+<>c:<StructWithCustomConverterPropertyPropInit>b__294_0(System.Object):System.Text.Json.SourceGeneration.Tests.ClassWithCustomConverterProperty+NestedPoco:this (FullOpts)
-8 (-19.05 % of base) : 235753.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_IgnoreCycles_Default+ReferenceHandlerTests_IgnoreCyclesContext_Default+<>c:<ValueNodeWithIValueNodePropertyPropInit>b__222_0(System.Object):System.Text.Json.Serialization.Tests.ReferenceHandlerTests_IgnoreCycles+IValueNodeWithIValueNodeProperty:this (FullOpts)
realworld.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 13575744 (overridden on cmd)
Total bytes of diff: 13554656 (overridden on cmd)
Total bytes of delta: -21088 (-0.16 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
3938 : 35420.dasm (2.87 % of base)
1144 : 7556.dasm (1.32 % of base)
588 : 17444.dasm (5.42 % of base)
292 : 3875.dasm (3.12 % of base)
242 : 29461.dasm (4.91 % of base)
234 : 2602.dasm (2.55 % of base)
232 : 17442.dasm (5.14 % of base)
210 : 2115.dasm (2.48 % of base)
208 : 26442.dasm (2.86 % of base)
192 : 14654.dasm (2.56 % of base)
190 : 29985.dasm (4.21 % of base)
162 : 9798.dasm (3.39 % of base)
148 : 24438.dasm (5.02 % of base)
144 : 25068.dasm (2.44 % of base)
142 : 16532.dasm (11.45 % of base)
140 : 1561.dasm (1.83 % of base)
136 : 14196.dasm (6.31 % of base)
136 : 34544.dasm (1.74 % of base)
128 : 6838.dasm (3.40 % of base)
126 : 3012.dasm (5.10 % of base)
Top file improvements (bytes):
-504 : 17605.dasm (-3.70 % of base)
-352 : 1562.dasm (-4.44 % of base)
-344 : 2368.dasm (-2.16 % of base)
-340 : 1990.dasm (-5.15 % of base)
-326 : 2167.dasm (-1.97 % of base)
-320 : 2210.dasm (-1.86 % of base)
-314 : 2162.dasm (-1.72 % of base)
-264 : 25128.dasm (-2.28 % of base)
-242 : 1341.dasm (-5.56 % of base)
-230 : 2148.dasm (-1.24 % of base)
-228 : 8582.dasm (-7.40 % of base)
-224 : 2636.dasm (-2.53 % of base)
-222 : 2434.dasm (-2.80 % of base)
-214 : 1845.dasm (-2.62 % of base)
-210 : 2226.dasm (-2.13 % of base)
-206 : 2408.dasm (-2.70 % of base)
-194 : 1588.dasm (-2.31 % of base)
-192 : 2082.dasm (-1.56 % of base)
-192 : 2216.dasm (-0.90 % of base)
-190 : 2401.dasm (-2.23 % of base)
93 total files with Code Size differences (52 improved, 41 regressed), 20 unchanged.
Top method regressions (bytes):
3938 (2.87 % of base) : 35420.dasm - System.Management.Automation.Runspaces.TypeTable:Process_Types_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
1144 (1.32 % of base) : 7556.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)
588 (5.42 % of base) : 17444.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)
292 (3.12 % of base) : 3875.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
242 (4.91 % of base) : 29461.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalAccess(Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess,byref):this (FullOpts)
234 (2.55 % of base) : 2602.dasm - DemoBenchmarks.RagdollTubeBenchmark:AddRagdoll(System.Numerics.Vector3,System.Numerics.Quaternion,int,BepuPhysics.CollidableProperty`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupCollisionFilter],BepuPhysics.Simulation):DemoBenchmarks.RagdollTubeBenchmark+RagdollHandles (FullOpts)
232 (5.14 % of base) : 17442.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Volume(byref,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)
210 (2.48 % of base) : 2115.dasm - BepuPhysics.CollisionDetection.CollisionTasks.ConvexCompoundOverlapFinder`3[BepuPhysics.Collidables.Capsule,BepuPhysics.Collidables.CapsuleWide,BepuPhysics.Collidables.Mesh]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
208 (2.86 % of base) : 26442.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
192 (2.56 % of base) : 14654.dasm - FSharp.Compiler.CheckFormatStrings:parseLoop@185(FSharp.Compiler.Text.Range,FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.NameResolution+FormatStringCheckContext],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType,int,System.Collections.Generic.List`1[System.Tuple`2[FSharp.Compiler.Text.Range,int]],System.Text.StringBuilder,System.Collections.Generic.List`1[FSharp.Compiler.TypedTree+TType],Microsoft.FSharp.Core.FSharpRef`1[int],Microsoft.FSharp.Core.FSharpRef`1[System.String],Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[int],FSharp.Compiler.TypedTree+TType]],int,int,int,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[int,int,FSharp.Compiler.Text.Range]]):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType] (FullOpts)
190 (4.21 % of base) : 29985.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructionConversion(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable],byref):ubyte:this (FullOpts)
162 (3.39 % of base) : 9798.dasm - FSharp.Compiler.TypedTreeOps:remarkExpr(FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr (FullOpts)
148 (5.02 % of base) : 24438.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.44 % of base) : 25068.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)
142 (11.45 % of base) : 16532.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
140 (1.83 % of base) : 1561.dasm - BepuPhysics.Constraints.Contact.TangentFriction:WarmStart(byref,byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
136 (6.31 % of base) : 14196.dasm - FSharp.Compiler.CheckExpressions:checkAndRewrite@3647(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr (FullOpts)
136 (1.74 % of base) : 34544.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
128 (3.40 % of base) : 6838.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:sigptrGetTy(FSharp.Compiler.AbstractIL.ILBinaryReader+ILMetadataReader,int,ubyte[],int):System.Tuple`2[FSharp.Compiler.AbstractIL.IL+ILType,int] (FullOpts)
126 (5.10 % of base) : 3012.dasm - MS.Internal.Xml.XPath.QueryBuilder:ProcessAxis(MS.Internal.Xml.XPath.Axis,int,byref):MS.Internal.Xml.XPath.Query:this (FullOpts)
Top method improvements (bytes):
-504 (-3.70 % of base) : 17605.dasm - Microsoft.ML.Data.Conversion.Conversions:.ctor():this (FullOpts)
-352 (-4.44 % of base) : 1562.dasm - BepuPhysics.Constraints.Contact.TangentFriction:ApplyImpulse(byref,byref,byref,byref,byref,byref) (FullOpts)
-344 (-2.16 % of base) : 2368.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TrianglePairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
-340 (-5.15 % of base) : 1990.dasm - BepuPhysics.Collidables.ConvexHullSupportFinder:ComputeLocalSupport(byref,byref,byref,byref):this (FullOpts)
-326 (-1.97 % of base) : 2167.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxTriangleTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
-320 (-1.86 % of base) : 2210.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CapsuleBoxTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
-314 (-1.72 % of base) : 2162.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CapsuleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
-264 (-2.28 % of base) : 25128.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)
-242 (-5.56 % of base) : 1341.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
-230 (-1.24 % of base) : 2148.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
-228 (-7.40 % of base) : 8582.dasm - FSharp.Compiler.ParseAndCheckInputs:CheckSimulateException(FSharp.Compiler.CompilerConfig+TcConfig) (FullOpts)
-224 (-2.53 % of base) : 2636.dasm - BepuPhysics.Constraints.AngularMotorFunctions:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
-222 (-2.80 % of base) : 2434.dasm - BepuPhysics.Constraints.AngularServoFunctions:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
-214 (-2.62 % of base) : 1845.dasm - BepuPhysics.Constraints.LinearAxisServoFunctions:ComputeEffectiveMass(byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
-210 (-2.13 % of base) : 2226.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxPairTester:CreateEdgeContacts(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,int,byref) (FullOpts)
-206 (-2.70 % of base) : 2408.dasm - BepuPhysics.CollisionDetection.CollisionTasks.SphereCylinderTester:ComputeSphereToClosest(byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
-194 (-2.31 % of base) : 1588.dasm - BepuPhysics.Constraints.Contact.TwistFriction:Solve(byref,byref,byref,byref,byref,byref,byref) (FullOpts)
-192 (-0.90 % of base) : 2216.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
-192 (-1.56 % of base) : 2082.dasm - BepuPhysics.Constraints.TypeProcessor`3[BepuPhysics.Constraints.TwoBodyReferences,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses]:GatherAndIntegrate[DemoBenchmarks.ShapePileBenchmark+DemoPoseIntegratorCallbacks,BepuPhysics.Constraints.BatchShouldAlwaysIntegrate,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.DisallowPoseIntegration](BepuPhysics.Bodies,byref,byref,int,float,int,int,byref,byref,byref,byref,byref) (FullOpts)
-190 (-2.23 % of base) : 2401.dasm - BepuPhysics.CollisionDetection.SweepTasks.SphereBoxDistanceTester:Test(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref):this (FullOpts)
Top method regressions (percentages):
24 (42.86 % of base) : 37249.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
20 (28.57 % of base) : 1165.dasm - System.Diagnostics.Stopwatch:.cctor() (FullOpts)
30 (27.78 % of base) : 377.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
28 (19.44 % of base) : 7104.dasm - FSharp.Compiler.AbstractIL.IL+ILAlignment:.cctor() (FullOpts)
28 (19.44 % of base) : 3440.dasm - FSharp.Compiler.CompilerConfig+CompilerTarget:.cctor() (FullOpts)
28 (19.44 % of base) : 5594.dasm - FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity:.cctor() (FullOpts)
28 (19.44 % of base) : 10006.dasm - FSharp.Compiler.Infos+CallerInfo:.cctor() (FullOpts)
28 (19.44 % of base) : 14005.dasm - FSharp.Compiler.Infos+OptionalArgCallerSideValue:.cctor() (FullOpts)
28 (19.44 % of base) : 12200.dasm - FSharp.Compiler.MethodOverrides+OverrideCanImplement:.cctor() (FullOpts)
28 (19.44 % of base) : 12523.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefExpr:.cctor() (FullOpts)
28 (19.44 % of base) : 12470.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefType:.cctor() (FullOpts)
28 (19.44 % of base) : 6160.dasm - FSharp.Compiler.Syntax.DebugPointAtBinding:.cctor() (FullOpts)
28 (19.44 % of base) : 6309.dasm - FSharp.Compiler.Syntax.DebugPointAtSequential:.cctor() (FullOpts)
28 (19.44 % of base) : 10592.dasm - FSharp.Compiler.TypedTree+TOp:.cctor() (FullOpts)
28 (19.44 % of base) : 7405.dasm - FSharp.Compiler.TypedTree+TyconFSharpObjModelKind:.cctor() (FullOpts)
28 (19.44 % of base) : 9160.dasm - FSharp.Compiler.TypedTree+ValBaseOrThisInfo:.cctor() (FullOpts)
28 (19.44 % of base) : 7425.dasm - FSharp.Compiler.TypedTree+ValUseFlag:.cctor() (FullOpts)
28 (19.44 % of base) : 9728.dasm - FSharp.Compiler.TypedTreeOps+Mutates:.cctor() (FullOpts)
28 (19.44 % of base) : 33195.dasm - Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)
28 (17.95 % of base) : 36632.dasm - System.Management.Automation.Interpreter.ThrowInstruction:.cctor() (FullOpts)
Top method improvements (percentages):
-90 (-15.00 % of base) : 35412.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
-122 (-14.84 % of base) : 1207.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (FullOpts)
-48 (-13.71 % of base) : 33716.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)
-6 (-13.64 % of base) : 57.dasm - System.Diagnostics.Debug:Assert(ubyte) (FullOpts)
-46 (-13.37 % of base) : 26887.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitNameOfOperator(Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-6 (-13.04 % of base) : 16661.dasm - System.Runtime.InteropServices.MemoryMarshal:CreateReadOnlySpan[System.__Canon](byref,int):System.ReadOnlySpan`1[System.__Canon] (FullOpts)
-6 (-13.04 % of base) : 16642.dasm - System.Runtime.InteropServices.MemoryMarshal:CreateSpan[System.__Canon](byref,int):System.Span`1[System.__Canon] (FullOpts)
-28 (-12.96 % of base) : 33896.dasm - Microsoft.Cci.MetadataWriter:GetFieldHandle(Microsoft.Cci.IFieldReference):System.Reflection.Metadata.EntityHandle:this (FullOpts)
-28 (-12.96 % of base) : 33926.dasm - Microsoft.Cci.MetadataWriter:GetMethodDefinitionOrReferenceHandle(Microsoft.Cci.IMethodReference):System.Reflection.Metadata.EntityHandle:this (FullOpts)
-10 (-12.82 % of base) : 23938.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:GetNullableContextValue():System.Nullable`1[ubyte]:this (FullOpts)
-132 (-12.24 % of base) : 25924.dasm - Microsoft.CodeAnalysis.SymbolDisplayFormat:.cctor() (FullOpts)
-26 (-11.82 % of base) : 21316.dasm - Microsoft.CodeAnalysis.AnalyzerConfig+SectionNameLexer:Lex():int:this (FullOpts)
-8 (-11.76 % of base) : 27176.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
-34 (-11.41 % of base) : 33710.dasm - Microsoft.Cci.MetadataVisitor:Visit(Microsoft.Cci.IParameterDefinition):this (FullOpts)
-8 (-10.53 % of base) : 35460.dasm - System.Collections.Specialized.OrderedDictionary:get_Item(int):System.Object:this (FullOpts)
-10 (-10.42 % of base) : 19813.dasm - System.StringComparer:Equals(System.Object,System.Object):ubyte:this (FullOpts)
-28 (-10.37 % of base) : 29091.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon]:TryGetValue(System.ValueTuple`2[System.__Canon,System.__Canon],System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon],byref):ubyte:this (FullOpts)
-18 (-10.00 % of base) : 17166.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifShort:TrySetValue(System.Object):ubyte:this (FullOpts)
-6 (-9.68 % of base) : 952.dasm - System.ReadOnlySpan`1[ushort]:ToString():System.String:this (FullOpts)
-6 (-9.68 % of base) : 301.dasm - System.Span`1[ushort]:ToString():System.String:this (FullOpts)
windows x86
Diffs are based on 2,339,430 contexts (847,225 MinOpts, 1,492,205 FullOpts).
MISSED contexts: base: 1 (0.00%), diff: 8,833 (0.38%)
Overall (+1,228,297 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
PerfScore in Diffs |
benchmarks.run.windows.x86.checked.mch |
6,969,637 |
+20,893 |
-1.24% |
benchmarks.run_pgo.windows.x86.checked.mch |
47,456,230 |
+36,835 |
-2.52% |
benchmarks.run_tiered.windows.x86.checked.mch |
9,351,120 |
+18,029 |
-1.12% |
coreclr_tests.run.windows.x86.checked.mch |
315,999,892 |
+454,403 |
-1.69% |
libraries.crossgen2.windows.x86.checked.mch |
35,570,616 |
+11,739 |
-0.68% |
libraries.pmi.windows.x86.checked.mch |
48,824,461 |
+165,393 |
-1.49% |
libraries_tests.run.windows.x86.Release.mch |
181,401,826 |
+408,071 |
-1.33% |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
102,225,812 |
+81,602 |
-1.34% |
realworld.run.windows.x86.checked.mch |
11,028,236 |
+31,332 |
-1.07% |
FullOpts (+1,228,297 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
PerfScore in Diffs |
benchmarks.run.windows.x86.checked.mch |
6,969,356 |
+20,893 |
-1.24% |
benchmarks.run_pgo.windows.x86.checked.mch |
40,784,255 |
+36,835 |
-2.52% |
benchmarks.run_tiered.windows.x86.checked.mch |
5,043,353 |
+18,029 |
-1.12% |
coreclr_tests.run.windows.x86.checked.mch |
108,989,043 |
+454,403 |
-1.69% |
libraries.crossgen2.windows.x86.checked.mch |
35,569,556 |
+11,739 |
-0.68% |
libraries.pmi.windows.x86.checked.mch |
48,729,231 |
+165,393 |
-1.49% |
libraries_tests.run.windows.x86.Release.mch |
83,337,517 |
+408,071 |
-1.33% |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
93,550,744 |
+81,602 |
-1.34% |
realworld.run.windows.x86.checked.mch |
10,732,966 |
+31,332 |
-1.07% |
Example diffs
benchmarks.run.windows.x86.checked.mch
-22 (-18.33%) : 17193.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol>
-; V01 arg1 [V01,T04] ( 3, 6 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 this [V00,T04] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol>
+; V01 arg1 [V01,T03] ( 3, 6 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 loc0 [V02,T07] ( 2, 5 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <<unknown class>>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]>
;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]>
@@ -17,18 +17,19 @@
;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V09 tmp4 [V09,T02] ( 4, 13 ) int -> edx "Inline stloc first use temp"
-; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> [ebp-0x18] spill-single-def "field V03._array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T02] ( 4, 13 ) int -> eax "Inline stloc first use temp"
+; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> ebx single-def "field V03._array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T01] ( 4, 13 ) int -> [ebp-0x10] "field V03._index (fldOffset=0x4)" P-INDEP
; V12 tmp7 [V12,T09] ( 3, 3 ) ref -> eax "field V04.array (fldOffset=0x0)" P-INDEP
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.array (fldOffset=0x0)" P-INDEP
-; V14 tmp9 [V14,T10] ( 2, 2 ) ref -> eax single-def "field V07._array (fldOffset=0x0)" P-INDEP
-;* V15 tmp10 [V15,T11] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
+; V14 tmp9 [V14,T11] ( 2, 2 ) ref -> ebx single-def "field V07._array (fldOffset=0x0)" P-INDEP
+;* V15 tmp10 [V15,T12] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
; V16 tmp11 [V16,T05] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
-; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> [ebp-0x1C] spill-single-def "argument with side effect"
-; V18 cse0 [V18,T06] ( 3, 6 ) int -> esi "CSE - aggressive"
+; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> ecx "argument with side effect"
+; V18 cse0 [V18,T06] ( 3, 6 ) int -> edi "CSE - unknown"
+; V19 cse1 [V19,T10] ( 3, 3 ) int -> ebx "CSE - unknown"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -36,17 +37,17 @@ G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 16
- mov esi, ecx
- ; gcrRegs +[esi]
- mov edi, edx
+ sub esp, 8
+ mov edi, ecx
; gcrRegs +[edi]
+ mov esi, edx
+ ; gcrRegs +[esi]
;; size=13 bbWeight=1 PerfScore 5.00
G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0x34]
+ mov ebx, dword ptr [edi]
+ mov eax, dword ptr [ebx+0x34]
call [eax+0x10]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ecx, gword ptr [eax+0x08]
@@ -56,54 +57,43 @@ G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
mov eax, dword ptr [eax+0x54]
call [eax+0x0C]<unknown method>
; gcrRegs -[ecx] +[eax]
+ mov gword ptr [ebp-0x14], eax
+ ; GC ptr vars +{V02}
+ mov ecx, edi
+ ; gcrRegs +[ecx]
+ mov edx, dword ptr [ebx+0x54]
+ call [edx+0x10]<unknown method>
+ ; gcrRegs -[ecx edi]
+ mov edi, dword ptr [eax+0x04]
mov ebx, eax
; gcrRegs +[ebx]
- mov gword ptr [ebp-0x14], ebx
- ; GC ptr vars +{V02}
- mov ecx, esi
- ; gcrRegs +[ecx]
- mov eax, dword ptr [esi]
+ xor eax, eax
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x54]
- call [eax+0x10]<unknown method>
- ; gcrRegs -[ecx esi] +[eax]
- mov esi, dword ptr [eax+0x04]
- mov gword ptr [ebp-0x18], eax
- ; GC ptr vars +{V10}
xor edx, edx
- xor ecx, ecx
- mov dword ptr [ebp-0x10], ecx
- test esi, esi
+ mov dword ptr [ebp-0x10], edx
+ test edi, edi
jle SHORT G_M33036_IG04
- ;; size=53 bbWeight=1 PerfScore 30.50
-G_M33036_IG03: ; bbWeight=4, gcVars=00000180 {V02 V10}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- mov edx, gword ptr [eax+4*edx+0x08]
- ; gcrRegs +[edx]
- mov gword ptr [ebp-0x1C], edx
- ; GC ptr vars +{V17}
- push edi
- mov ecx, edx
+ ;; size=48 bbWeight=1 PerfScore 27.50
+G_M33036_IG03: ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov ecx, gword ptr [ebx+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, ebx
- mov ebx, gword ptr [ebp-0x1C]
- mov ebx, dword ptr [ebx]
- ; gcrRegs -[ebx]
- mov ebx, dword ptr [ebx+0x44]
- ; GC ptr vars -{V17}
- call [ebx+0x08]<unknown method>
- ; gcrRegs -[eax ecx edx]
- mov ebx, dword ptr [ebp-0x10]
- lea edx, [ebx+0x01]
- mov ebx, edx
- cmp esi, ebx
- mov dword ptr [ebp-0x10], ebx
- mov eax, gword ptr [ebp-0x18]
- ; gcrRegs +[eax]
- jg SHORT G_M33036_IG05
- ;; size=41 bbWeight=4 PerfScore 70.00
+ push esi
+ mov edx, gword ptr [ebp-0x14]
+ ; gcrRegs +[edx]
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x44]
+ call [eax+0x08]<unknown method>
+ ; gcrRegs -[ecx edx]
+ mov eax, dword ptr [ebp-0x10]
+ inc eax
+ mov edx, eax
+ cmp edi, edx
+ mov dword ptr [ebp-0x10], edx
+ jg SHORT G_M33036_IG03
+ ;; size=29 bbWeight=4 PerfScore 59.00
G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
- ; gcrRegs -[eax edi]
- ; GC ptr vars -{V02 V10}
+ ; gcrRegs -[ebx esi]
+ ; GC ptr vars -{V02}
lea esp, [ebp-0x0C]
pop ebx
pop esi
@@ -111,14 +101,7 @@ G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
pop ebp
ret
;; size=8 bbWeight=1 PerfScore 3.50
-G_M33036_IG05: ; bbWeight=2, gcVars=00000180 {V02 V10}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[eax edi]
- ; GC ptr vars +{V02 V10}
- mov ebx, gword ptr [ebp-0x14]
- ; gcrRegs +[ebx]
- jmp SHORT G_M33036_IG03
- ;; size=5 bbWeight=2 PerfScore 6.00
-; Total bytes of code 120, prolog size 9, PerfScore 115.00, instruction count 53, allocated bytes for code 120 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
+; Total bytes of code 98, prolog size 9, PerfScore 95.00, instruction count 45, allocated bytes for code 98 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
; ============================================================
-18 (-12.50%) : 15148.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
@@ -9,19 +9,18 @@
; Final local variable assignments
;
; V00 this [V00,T04] ( 6, 14.50) ref -> edi this class-hnd single-def <Benchstone.BenchI.Permutate>
-; V01 arg1 [V01,T03] ( 10, 27.50) int -> esi single-def
-; V02 loc0 [V02,T02] ( 11, 37 ) int -> [ebp-0x10]
+; V01 arg1 [V01,T03] ( 12, 32 ) int -> esi single-def
+; V02 loc0 [V02,T02] ( 11, 37 ) int -> ebx
; V03 tmp0 [V03,T00] ( 6, 48 ) ref -> edx class-hnd "Inlining Arg" <int[]>
-; V04 tmp1 [V04,T09] ( 2, 8 ) int -> ebx "Inline stloc first use temp"
+; V04 tmp1 [V04,T09] ( 2, 8 ) int -> eax "Inline stloc first use temp"
; V05 tmp2 [V05,T05] ( 2, 16 ) int -> ecx "Strict ordering of exceptions for Array store"
; V06 tmp3 [V06,T01] ( 6, 48 ) ref -> eax class-hnd "Inlining Arg" <int[]>
; V07 tmp4 [V07,T10] ( 2, 8 ) int -> ecx "Inline stloc first use temp"
; V08 tmp5 [V08,T06] ( 2, 16 ) int -> edx "Strict ordering of exceptions for Array store"
-; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - aggressive"
-; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - aggressive"
-; V11 cse2 [V11,T11] ( 4, 5.50) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - unknown"
+; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -29,42 +28,38 @@ G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 8
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
- ;; size=13 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 4.75
G_M46152_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
inc dword ptr [D1FFAB1EH]
cmp esi, 1
je SHORT G_M46152_IG05
;; size=11 bbWeight=1 PerfScore 4.25
G_M46152_IG03: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
- lea ebx, [esi-0x01]
- mov dword ptr [ebp-0x14], ebx
- mov edx, ebx
+ lea edx, [esi-0x01]
mov ecx, edi
; gcrRegs +[ecx]
call [Benchstone.BenchI.Permutate:PermuteArray(int):this]
; gcrRegs -[ecx]
- mov eax, ebx
- test eax, eax
+ lea ebx, [esi-0x01]
+ test ebx, ebx
jle SHORT G_M46152_IG05
- ;; size=22 bbWeight=0.50 PerfScore 3.25
+ ;; size=18 bbWeight=0.50 PerfScore 2.75
G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
mov edx, gword ptr [edi+0x04]
; gcrRegs +[edx]
mov ecx, dword ptr [edx+0x04]
cmp esi, ecx
jae SHORT G_M46152_IG06
- mov ebx, dword ptr [edx+4*esi+0x08]
- cmp eax, ecx
+ mov eax, dword ptr [edx+4*esi+0x08]
+ cmp ebx, ecx
jae SHORT G_M46152_IG06
- mov ecx, dword ptr [edx+4*eax+0x08]
+ mov ecx, dword ptr [edx+4*ebx+0x08]
mov dword ptr [edx+4*esi+0x08], ecx
- mov dword ptr [ebp-0x10], eax
- mov dword ptr [edx+4*eax+0x08], ebx
- mov edx, dword ptr [ebp-0x14]
+ mov dword ptr [edx+4*ebx+0x08], eax
+ lea edx, [esi-0x01]
; gcrRegs -[edx]
mov ecx, edi
; gcrRegs +[ecx]
@@ -76,7 +71,6 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000
cmp esi, edx
jae SHORT G_M46152_IG06
mov ecx, dword ptr [eax+4*esi+0x08]
- mov ebx, dword ptr [ebp-0x10]
cmp ebx, edx
jae SHORT G_M46152_IG06
mov edx, dword ptr [eax+4*ebx+0x08]
@@ -84,24 +78,21 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000
mov dword ptr [eax+4*ebx+0x08], ecx
dec ebx
test ebx, ebx
- mov eax, ebx
- ; gcrRegs -[eax]
jg SHORT G_M46152_IG04
- ;; size=84 bbWeight=4 PerfScore 132.00
+ ;; size=76 bbWeight=4 PerfScore 121.00
G_M46152_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
- ; gcrRegs -[edi]
- lea esp, [ebp-0x0C]
+ ; gcrRegs -[eax edi]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=8 bbWeight=1 PerfScore 3.50
+ ;; size=5 bbWeight=1 PerfScore 3.00
G_M46152_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 9, PerfScore 148.00, instruction count 56, allocated bytes for code 144 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
+; Total bytes of code 126, prolog size 6, PerfScore 135.75, instruction count 49, allocated bytes for code 126 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
; ============================================================
-25 (-11.90%) : 10733.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
@@ -9,19 +9,19 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 5 ) byref -> esi this single-def
-; V01 arg1 [V01,T06] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
+; V01 arg1 [V01,T05] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivitySpanId>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivityTraceId>
;* V04 tmp0 [V04 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivitySpanId>
;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivityTraceId>
;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V07 tmp3 [V07,T01] ( 6, 6 ) ref -> edx class-hnd exact single-def "impAppendStmt" <System.String>
+; V07 tmp3 [V07,T01] ( 5, 5 ) ref -> ecx class-hnd exact single-def "impAppendStmt" <System.String>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V10 tmp6 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V11 tmp7 [V11,T08] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V14 tmp10 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp11 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -31,27 +31,30 @@
;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V21 tmp17 [V21,T09] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V25 tmp21 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp22 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V27 tmp23 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V28 tmp24 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.String>
+; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> edx class-hnd exact single-def "Inlining Arg" <System.String>
; V30 tmp26 [V30,T10] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
-; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V32 tmp28 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp29 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp30 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V35 tmp31 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp32 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V37 tmp33 [V37,T03] ( 6, 4 ) ref -> edx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP
-; V38 tmp34 [V38,T05] ( 6, 3 ) ref -> edx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP
-; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> ecx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP
-; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> ecx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP
-; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
-; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
-; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
+; V37 tmp33 [V37,T03] ( 5, 3.50) ref -> ecx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP
+; V38 tmp34 [V38,T06] ( 5, 2.50) ref -> ecx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP
+; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> edx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP
+; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> edx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP
+; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> edx single-def "argument with side effect"
+; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> edx single-def "argument with side effect"
+; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> edx single-def "argument with side effect"
+; V44 cse0 [V44,T17] ( 3, 1.50) int -> eax "CSE - unknown"
+; V45 cse1 [V45,T18] ( 3, 1.50) int -> eax "CSE - unknown"
+; V46 cse2 [V46,T19] ( 3, 1.50) int -> eax "CSE - unknown"
;
; Lcl frame size = 0
@@ -63,103 +66,91 @@ G_M43911_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
; byrRegs +[esi]
;; size=6 bbWeight=1 PerfScore 2.50
G_M43911_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
- mov edx, gword ptr [esi+0x10]
- ; gcrRegs +[edx]
- mov ecx, gword ptr [ebp+0x18]
+ mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x18]
+ ; gcrRegs +[edx]
+ cmp ecx, edx
je SHORT G_M43911_IG04
;; size=10 bbWeight=1 PerfScore 4.25
-G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref
- test edx, edx
- je G_M43911_IG08
+G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref, isz
test ecx, ecx
je G_M43911_IG08
- mov eax, dword ptr [edx+0x04]
- cmp eax, dword ptr [ecx+0x04]
+ test edx, edx
+ je G_M43911_IG08
+ mov eax, dword ptr [ecx+0x04]
+ cmp eax, dword ptr [edx+0x04]
jne G_M43911_IG08
- lea eax, bword ptr [edx+0x08]
- ; byrRegs +[eax]
add ecx, 8
; gcrRegs -[ecx]
; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx
- push edx
- mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax
+ push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
- je G_M43911_IG08
- ;; size=58 bbWeight=0.50 PerfScore 8.62
-G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
- mov edx, gword ptr [esi+0x0C]
- ; gcrRegs +[edx]
- mov ecx, gword ptr [ebp+0x14]
- ; gcrRegs +[ecx]
- cmp edx, ecx
- je SHORT G_M43911_IG05
- test edx, edx
je SHORT G_M43911_IG08
+ ;; size=47 bbWeight=0.50 PerfScore 7.25
+G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
+ mov ecx, gword ptr [esi+0x0C]
+ ; gcrRegs +[ecx]
+ mov edx, gword ptr [ebp+0x14]
+ ; gcrRegs +[edx]
+ cmp ecx, edx
+ je SHORT G_M43911_IG05
test ecx, ecx
je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04]
- cmp eax, dword ptr [ecx+0x04]
+ test edx, edx
+ je SHORT G_M43911_IG08
+ mov eax, dword ptr [ecx+0x04]
+ cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08]
- ; byrRegs +[eax]
add ecx, 8
; gcrRegs -[ecx]
; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx
- push edx
- mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax
+ push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
je SHORT G_M43911_IG08
- ;; size=52 bbWeight=0.50 PerfScore 10.75
+ ;; size=45 bbWeight=0.50 PerfScore 9.38
G_M43911_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
mov edx, dword ptr [esi+0x04]
cmp edx, dword ptr [ebp+0x0C]
jne SHORT G_M43911_IG08
- mov edx, gword ptr [esi]
- ; gcrRegs +[edx]
- mov ecx, gword ptr [ebp+0x08]
+ mov ecx, gword ptr [esi]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x08]
+ ; gcrRegs +[edx]
+ cmp ecx, edx
je SHORT G_M43911_IG06
- test edx, edx
- je SHORT G_M43911_IG08
test ecx, ecx
je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04]
- cmp eax, dword ptr [ecx+0x04]
+ test edx, edx
+ je SHORT G_M43911_IG08
+ mov eax, dword ptr [ecx+0x04]
+ cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08]
- ; byrRegs +[eax]
add ecx, 8
; gcrRegs -[ecx]
; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx
- push edx
- mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax
+ push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
je SHORT G_M43911_IG08
- ;; size=59 bbWeight=0.50 PerfScore 13.25
+ ;; size=52 bbWeight=0.50 PerfScore 11.88
G_M43911_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
movzx eax, byte ptr [esi+0x08]
cmp al, byte ptr [ebp+0x10]
@@ -181,6 +172,6 @@ G_M43911_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret 20
;; size=5 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 210, prolog size 4, PerfScore 45.12, instruction count 81, allocated bytes for code 210 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
+; Total bytes of code 185, prolog size 4, PerfScore 41.00, instruction count 72, allocated bytes for code 185 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
; ============================================================
+41 (+21.13%) : 19464.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon
@@ -11,19 +11,22 @@
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def
; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx
-; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14]
+; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>>
-; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>>
+; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup"
-; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
+; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup"
+; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; TEMP_02 ref -> [ebp-0x24]
+; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 12
+ sub esp, 28
+ xor eax, eax
+ mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx
mov esi, gword ptr [ebp+0x08]
; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [ecx+0x20]
mov edx, dword ptr [edx+0x08]
@@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000
call CORINFO_HELP_RUNTIMEHANDLE_METHOD
mov edx, eax
;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
@@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this]
; gcrRegs -[eax ecx]
mov ebx, dword ptr [esi+0x04]
- dec ebx
- js SHORT G_M23436_IG10
- ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx
+ lea eax, [ebx-0x01]
+ test eax, eax
+ jl G_M23436_IG10
+ ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08]
- ; gcrRegs +[eax]
- mov ecx, eax
+ mov dword ptr [ebp-0x14], eax
+ mov ebx, gword ptr [esi+4*eax+0x08]
+ ; gcrRegs +[ebx]
+ mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
- ; GC ptr vars +{V04}
- mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30]
call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09}
mov edx, eax
; gcrRegs +[edx]
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this]
; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18]
- push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20]
+ push ebx
push 0
mov edx, eax
mov ecx, edi
; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx]
+ mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M23436_IG10
;; size=2 bbWeight=1.98 PerfScore 3.96
G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M23436_IG12
- mov eax, gword ptr [esi+4*ebx+0x08]
- ; gcrRegs +[eax]
- mov ecx, eax
+ cmp eax, ebx
+ jae SHORT G_M23436_IG13
+ mov dword ptr [ebp-0x14], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx
+ ; gcrRegs +[edx]
+ mov ecx, edx
+ mov gword ptr [ebp-0x24], ecx
+ mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax]
- mov edx, dword ptr [edx+0x30]
- call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30]
+ mov dword ptr [ebp-0x28], ecx
+ mov ecx, gword ptr [ebp-0x24]
+ ; gcrRegs +[ecx]
+ mov ebx, dword ptr [ebp-0x28]
+ call [ebx+0x14]<unknown method>
+ ; gcrRegs -[ecx edx] +[eax]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
mov ecx, edi
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
- ; GC ptr vars +{V09}
- mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx]
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this]
; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18]
- push gword ptr [ebp-0x14]
+ push ebx
+ push gword ptr [ebp-0x1C]
push 0
mov edx, eax
mov ecx, edi
; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx]
+ mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09
- ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx
+ jns SHORT G_M23436_IG12
+ ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
mov eax, edi
@@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend
pop ebp
ret 4
;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov ebx, dword ptr [ebp-0x18]
+ jmp SHORT G_M23436_IG09
+ ;; size=5 bbWeight=0.02 PerfScore 0.06
+G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================
+28 (+23.73%) : 15445.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String
@@ -7,14 +7,15 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
-; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]>
-; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
+; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]>
+; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown"
+; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -22,87 +23,100 @@ G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 12
mov esi, ecx
; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M36141_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04]
+ mov dword ptr [ebp-0x18], edi
+ mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[]
call CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[eax]
- mov edi, eax
- ; gcrRegs +[edi]
- xor ebx, ebx
- mov eax, dword ptr [edi+0x04]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
+ xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax
- test eax, eax
+ mov edx, dword ptr [ebx+0x04]
+ mov dword ptr [ebp-0x14], edx
+ test edx, edx
jle SHORT G_M36141_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00
-G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25
+G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ cmp edi, edx
jl SHORT G_M36141_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
-G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- cmp dword ptr [ebp-0x10], ebx
+ inc edi
+ cmp dword ptr [ebp-0x14], edi
+ mov eax, edi
jg SHORT G_M36141_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43
-G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34
+G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M36141_IG07
;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M36141_IG09
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi
+ jae SHORT G_M36141_IG10
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- mov eax, dword ptr [ebp-0x10]
- cmp eax, ebx
- jg SHORT G_M36141_IG06
- ;; size=34 bbWeight=0.04 PerfScore 0.70
-G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi
+ mov eax, dword ptr [ebp-0x14]
+ cmp eax, edi
+ jg SHORT G_M36141_IG09
+ ;; size=39 bbWeight=0.04 PerfScore 0.67
+G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax]
;; size=2 bbWeight=1.98 PerfScore 0.49
G_M36141_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93
-G_M36141_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93
+G_M36141_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov eax, edi
+ mov edi, dword ptr [ebp-0x18]
+ jmp SHORT G_M36141_IG06
+ ;; size=7 bbWeight=0.02 PerfScore 0.07
+G_M36141_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
; ============================================================
+28 (+23.73%) : 8831.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:g_GetParameterTypes|220(System.Reflection.ParameterInfo[]):System.Type
@@ -7,14 +7,15 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
-; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.Type[]>
-; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
+; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.Type[]>
+; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd "Strict ordering of exceptions for Array store" <System.Type>
; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown"
+; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -22,87 +23,100 @@ G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 12
mov esi, ecx
; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M57380_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04]
+ mov dword ptr [ebp-0x18], edi
+ mov edx, edi
mov ecx, 0xD1FFAB1E ; System.Type[]
call CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[eax]
- mov edi, eax
- ; gcrRegs +[edi]
- xor ebx, ebx
- mov eax, dword ptr [edi+0x04]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
+ xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax
- test eax, eax
+ mov edx, dword ptr [ebx+0x04]
+ mov dword ptr [ebp-0x14], edx
+ test edx, edx
jle SHORT G_M57380_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00
-G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25
+G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ cmp edi, edx
jl SHORT G_M57380_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
-G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- cmp dword ptr [ebp-0x10], ebx
+ inc edi
+ cmp dword ptr [ebp-0x14], edi
+ mov eax, edi
jg SHORT G_M57380_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43
-G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34
+G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M57380_IG07
;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M57380_IG09
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi
+ jae SHORT G_M57380_IG10
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- mov eax, dword ptr [ebp-0x10]
- cmp eax, ebx
- jg SHORT G_M57380_IG06
- ;; size=34 bbWeight=0.04 PerfScore 0.70
-G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi
+ mov eax, dword ptr [ebp-0x14]
+ cmp eax, edi
+ jg SHORT G_M57380_IG09
+ ;; size=39 bbWeight=0.04 PerfScore 0.67
+G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax]
;; size=2 bbWeight=1.98 PerfScore 0.49
G_M57380_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93
-G_M57380_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93
+G_M57380_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov eax, edi
+ mov edi, dword ptr [ebp-0x18]
+ jmp SHORT G_M57380_IG06
+ ;; size=7 bbWeight=0.02 PerfScore 0.07
+G_M57380_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
; ============================================================
benchmarks.run_pgo.windows.x86.checked.mch
-5 (-29.41%) : 11837.dasm - System.Math:Min(short,short):short (Tier1)
@@ -8,9 +8,10 @@
; with Dynamic PGO: edge weights are valid, and fgCalledCount is 3
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
@@ -19,15 +20,13 @@ G_M25012_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
G_M25012_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movsx eax, cx
movsx edx, dx
- movsx ecx, cx
cmp eax, edx
- mov eax, edx
- cmovle eax, ecx
- ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovg eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M25012_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=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
; ============================================================
-5 (-29.41%) : 24261.dasm - System.Math:Min(short,short):short (Tier1)
@@ -8,9 +8,10 @@
; with Dynamic PGO: edge weights are valid, and fgCalledCount is 6
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
@@ -19,15 +20,13 @@ G_M25012_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
G_M25012_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movsx eax, cx
movsx edx, dx
- movsx ecx, cx
cmp eax, edx
- mov eax, edx
- cmovle eax, ecx
- ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovg eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M25012_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=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
; ============================================================
-5 (-29.41%) : 103821.dasm - System.Math:Min(short,short):short (Tier1)
@@ -8,9 +8,10 @@
; with Dynamic PGO: edge weights are valid, and fgCalledCount is 11
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
@@ -19,15 +20,13 @@ G_M25012_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
G_M25012_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movsx eax, cx
movsx edx, dx
- movsx ecx, cx
cmp eax, edx
- mov eax, edx
- cmovle eax, ecx
- ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovg eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M25012_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=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
; ============================================================
+41 (+21.13%) : 87125.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon
@@ -11,19 +11,22 @@
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def
; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx
-; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14]
+; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>>
-; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>>
+; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup"
-; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
+; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup"
+; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; TEMP_02 ref -> [ebp-0x24]
+; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 12
+ sub esp, 28
+ xor eax, eax
+ mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx
mov esi, gword ptr [ebp+0x08]
; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [ecx+0x20]
mov edx, dword ptr [edx+0x08]
@@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000
call CORINFO_HELP_RUNTIMEHANDLE_METHOD
mov edx, eax
;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
@@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this]
; gcrRegs -[eax ecx]
mov ebx, dword ptr [esi+0x04]
- dec ebx
- js SHORT G_M23436_IG10
- ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx
+ lea eax, [ebx-0x01]
+ test eax, eax
+ jl G_M23436_IG10
+ ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08]
- ; gcrRegs +[eax]
- mov ecx, eax
+ mov dword ptr [ebp-0x14], eax
+ mov ebx, gword ptr [esi+4*eax+0x08]
+ ; gcrRegs +[ebx]
+ mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
- ; GC ptr vars +{V04}
- mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30]
call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09}
mov edx, eax
; gcrRegs +[edx]
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this]
; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18]
- push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20]
+ push ebx
push 0
mov edx, eax
mov ecx, edi
; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx]
+ mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M23436_IG10
;; size=2 bbWeight=1.98 PerfScore 3.96
G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M23436_IG12
- mov eax, gword ptr [esi+4*ebx+0x08]
- ; gcrRegs +[eax]
- mov ecx, eax
+ cmp eax, ebx
+ jae SHORT G_M23436_IG13
+ mov dword ptr [ebp-0x14], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx
+ ; gcrRegs +[edx]
+ mov ecx, edx
+ mov gword ptr [ebp-0x24], ecx
+ mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax]
- mov edx, dword ptr [edx+0x30]
- call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30]
+ mov dword ptr [ebp-0x28], ecx
+ mov ecx, gword ptr [ebp-0x24]
+ ; gcrRegs +[ecx]
+ mov ebx, dword ptr [ebp-0x28]
+ call [ebx+0x14]<unknown method>
+ ; gcrRegs -[ecx edx] +[eax]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
mov ecx, edi
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
- ; GC ptr vars +{V09}
- mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx]
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this]
; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18]
- push gword ptr [ebp-0x14]
+ push ebx
+ push gword ptr [ebp-0x1C]
push 0
mov edx, eax
mov ecx, edi
; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx]
+ mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09
- ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx
+ jns SHORT G_M23436_IG12
+ ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
mov eax, edi
@@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend
pop ebp
ret 4
;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov ebx, dword ptr [ebp-0x18]
+ jmp SHORT G_M23436_IG09
+ ;; size=5 bbWeight=0.02 PerfScore 0.06
+G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
; ============================================================
+28 (+23.73%) : 30178.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:g_GetParameterTypes|220(System.Reflection.ParameterInfo[]):System.Type
@@ -7,14 +7,15 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
-; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.Type[]>
-; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
+; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.Type[]>
+; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd "Strict ordering of exceptions for Array store" <System.Type>
; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown"
+; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -22,87 +23,100 @@ G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 12
mov esi, ecx
; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M57380_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04]
+ mov dword ptr [ebp-0x18], edi
+ mov edx, edi
mov ecx, 0xD1FFAB1E ; System.Type[]
call CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[eax]
- mov edi, eax
- ; gcrRegs +[edi]
- xor ebx, ebx
- mov eax, dword ptr [edi+0x04]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
+ xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax
- test eax, eax
+ mov edx, dword ptr [ebx+0x04]
+ mov dword ptr [ebp-0x14], edx
+ test edx, edx
jle SHORT G_M57380_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00
-G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25
+G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ cmp edi, edx
jl SHORT G_M57380_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
-G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- cmp dword ptr [ebp-0x10], ebx
+ inc edi
+ cmp dword ptr [ebp-0x14], edi
+ mov eax, edi
jg SHORT G_M57380_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43
-G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34
+G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M57380_IG07
;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M57380_IG09
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi
+ jae SHORT G_M57380_IG10
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- mov eax, dword ptr [ebp-0x10]
- cmp eax, ebx
- jg SHORT G_M57380_IG06
- ;; size=34 bbWeight=0.04 PerfScore 0.70
-G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi
+ mov eax, dword ptr [ebp-0x14]
+ cmp eax, edi
+ jg SHORT G_M57380_IG09
+ ;; size=39 bbWeight=0.04 PerfScore 0.67
+G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax]
;; size=2 bbWeight=1.98 PerfScore 0.49
G_M57380_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93
-G_M57380_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93
+G_M57380_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov eax, edi
+ mov edi, dword ptr [ebp-0x18]
+ jmp SHORT G_M57380_IG06
+ ;; size=7 bbWeight=0.02 PerfScore 0.07
+G_M57380_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
; ============================================================
+28 (+23.73%) : 70115.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String
@@ -7,14 +7,15 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
-; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]>
-; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
+; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]>
+; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown"
+; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -22,87 +23,100 @@ G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 12
mov esi, ecx
; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M36141_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04]
+ mov dword ptr [ebp-0x18], edi
+ mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[]
call CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[eax]
- mov edi, eax
- ; gcrRegs +[edi]
- xor ebx, ebx
- mov eax, dword ptr [edi+0x04]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
+ xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax
- test eax, eax
+ mov edx, dword ptr [ebx+0x04]
+ mov dword ptr [ebp-0x14], edx
+ test edx, edx
jle SHORT G_M36141_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00
-G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25
+G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ cmp edi, edx
jl SHORT G_M36141_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
-G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- cmp dword ptr [ebp-0x10], ebx
+ inc edi
+ cmp dword ptr [ebp-0x14], edi
+ mov eax, edi
jg SHORT G_M36141_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43
-G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34
+G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M36141_IG07
;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M36141_IG09
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi
+ jae SHORT G_M36141_IG10
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- mov eax, dword ptr [ebp-0x10]
- cmp eax, ebx
- jg SHORT G_M36141_IG06
- ;; size=34 bbWeight=0.04 PerfScore 0.70
-G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi
+ mov eax, dword ptr [ebp-0x14]
+ cmp eax, edi
+ jg SHORT G_M36141_IG09
+ ;; size=39 bbWeight=0.04 PerfScore 0.67
+G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax]
;; size=2 bbWeight=1.98 PerfScore 0.49
G_M36141_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93
-G_M36141_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93
+G_M36141_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov eax, edi
+ mov edi, dword ptr [ebp-0x18]
+ jmp SHORT G_M36141_IG06
+ ;; size=7 bbWeight=0.02 PerfScore 0.07
+G_M36141_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
; ============================================================
benchmarks.run_tiered.windows.x86.checked.mch
-22 (-18.33%) : 35423.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol>
-; V01 arg1 [V01,T04] ( 3, 6 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 this [V00,T04] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol>
+; V01 arg1 [V01,T03] ( 3, 6 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 loc0 [V02,T07] ( 2, 5 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <<unknown class>>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]>
;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]>
@@ -17,18 +17,19 @@
;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V09 tmp4 [V09,T02] ( 4, 13 ) int -> edx "Inline stloc first use temp"
-; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> [ebp-0x18] spill-single-def "field V03._array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T02] ( 4, 13 ) int -> eax "Inline stloc first use temp"
+; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> ebx single-def "field V03._array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T01] ( 4, 13 ) int -> [ebp-0x10] "field V03._index (fldOffset=0x4)" P-INDEP
; V12 tmp7 [V12,T09] ( 3, 3 ) ref -> eax "field V04.array (fldOffset=0x0)" P-INDEP
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.array (fldOffset=0x0)" P-INDEP
-; V14 tmp9 [V14,T10] ( 2, 2 ) ref -> eax single-def "field V07._array (fldOffset=0x0)" P-INDEP
-;* V15 tmp10 [V15,T11] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
+; V14 tmp9 [V14,T11] ( 2, 2 ) ref -> ebx single-def "field V07._array (fldOffset=0x0)" P-INDEP
+;* V15 tmp10 [V15,T12] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
; V16 tmp11 [V16,T05] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
-; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> [ebp-0x1C] spill-single-def "argument with side effect"
-; V18 cse0 [V18,T06] ( 3, 6 ) int -> esi "CSE - aggressive"
+; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> ecx "argument with side effect"
+; V18 cse0 [V18,T06] ( 3, 6 ) int -> edi "CSE - unknown"
+; V19 cse1 [V19,T10] ( 3, 3 ) int -> ebx "CSE - unknown"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -36,17 +37,17 @@ G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 16
- mov esi, ecx
- ; gcrRegs +[esi]
- mov edi, edx
+ sub esp, 8
+ mov edi, ecx
; gcrRegs +[edi]
+ mov esi, edx
+ ; gcrRegs +[esi]
;; size=13 bbWeight=1 PerfScore 5.00
G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0x34]
+ mov ebx, dword ptr [edi]
+ mov eax, dword ptr [ebx+0x34]
call [eax+0x10]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ecx, gword ptr [eax+0x08]
@@ -56,54 +57,43 @@ G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
mov eax, dword ptr [eax+0x54]
call [eax+0x0C]<unknown method>
; gcrRegs -[ecx] +[eax]
+ mov gword ptr [ebp-0x14], eax
+ ; GC ptr vars +{V02}
+ mov ecx, edi
+ ; gcrRegs +[ecx]
+ mov edx, dword ptr [ebx+0x54]
+ call [edx+0x10]<unknown method>
+ ; gcrRegs -[ecx edi]
+ mov edi, dword ptr [eax+0x04]
mov ebx, eax
; gcrRegs +[ebx]
- mov gword ptr [ebp-0x14], ebx
- ; GC ptr vars +{V02}
- mov ecx, esi
- ; gcrRegs +[ecx]
- mov eax, dword ptr [esi]
+ xor eax, eax
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x54]
- call [eax+0x10]<unknown method>
- ; gcrRegs -[ecx esi] +[eax]
- mov esi, dword ptr [eax+0x04]
- mov gword ptr [ebp-0x18], eax
- ; GC ptr vars +{V10}
xor edx, edx
- xor ecx, ecx
- mov dword ptr [ebp-0x10], ecx
- test esi, esi
+ mov dword ptr [ebp-0x10], edx
+ test edi, edi
jle SHORT G_M33036_IG04
- ;; size=53 bbWeight=1 PerfScore 30.50
-G_M33036_IG03: ; bbWeight=4, gcVars=00000180 {V02 V10}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- mov edx, gword ptr [eax+4*edx+0x08]
- ; gcrRegs +[edx]
- mov gword ptr [ebp-0x1C], edx
- ; GC ptr vars +{V17}
- push edi
- mov ecx, edx
+ ;; size=48 bbWeight=1 PerfScore 27.50
+G_M33036_IG03: ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov ecx, gword ptr [ebx+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, ebx
- mov ebx, gword ptr [ebp-0x1C]
- mov ebx, dword ptr [ebx]
- ; gcrRegs -[ebx]
- mov ebx, dword ptr [ebx+0x44]
- ; GC ptr vars -{V17}
- call [ebx+0x08]<unknown method>
- ; gcrRegs -[eax ecx edx]
- mov ebx, dword ptr [ebp-0x10]
- lea edx, [ebx+0x01]
- mov ebx, edx
- cmp esi, ebx
- mov dword ptr [ebp-0x10], ebx
- mov eax, gword ptr [ebp-0x18]
- ; gcrRegs +[eax]
- jg SHORT G_M33036_IG05
- ;; size=41 bbWeight=4 PerfScore 70.00
+ push esi
+ mov edx, gword ptr [ebp-0x14]
+ ; gcrRegs +[edx]
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x44]
+ call [eax+0x08]<unknown method>
+ ; gcrRegs -[ecx edx]
+ mov eax, dword ptr [ebp-0x10]
+ inc eax
+ mov edx, eax
+ cmp edi, edx
+ mov dword ptr [ebp-0x10], edx
+ jg SHORT G_M33036_IG03
+ ;; size=29 bbWeight=4 PerfScore 59.00
G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
- ; gcrRegs -[eax edi]
- ; GC ptr vars -{V02 V10}
+ ; gcrRegs -[ebx esi]
+ ; GC ptr vars -{V02}
lea esp, [ebp-0x0C]
pop ebx
pop esi
@@ -111,14 +101,7 @@ G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
pop ebp
ret
;; size=8 bbWeight=1 PerfScore 3.50
-G_M33036_IG05: ; bbWeight=2, gcVars=00000180 {V02 V10}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[eax edi]
- ; GC ptr vars +{V02 V10}
- mov ebx, gword ptr [ebp-0x14]
- ; gcrRegs +[ebx]
- jmp SHORT G_M33036_IG03
- ;; size=5 bbWeight=2 PerfScore 6.00
-; Total bytes of code 120, prolog size 9, PerfScore 115.00, instruction count 53, allocated bytes for code 120 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
+; Total bytes of code 98, prolog size 9, PerfScore 95.00, instruction count 45, allocated bytes for code 98 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
; ============================================================
-18 (-12.50%) : 30662.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
@@ -9,19 +9,18 @@
; Final local variable assignments
;
; V00 this [V00,T04] ( 6, 14.50) ref -> edi this class-hnd single-def <Benchstone.BenchI.Permutate>
-; V01 arg1 [V01,T03] ( 10, 27.50) int -> esi single-def
-; V02 loc0 [V02,T02] ( 11, 37 ) int -> [ebp-0x10]
+; V01 arg1 [V01,T03] ( 12, 32 ) int -> esi single-def
+; V02 loc0 [V02,T02] ( 11, 37 ) int -> ebx
; V03 tmp0 [V03,T00] ( 6, 48 ) ref -> edx class-hnd "Inlining Arg" <int[]>
-; V04 tmp1 [V04,T09] ( 2, 8 ) int -> ebx "Inline stloc first use temp"
+; V04 tmp1 [V04,T09] ( 2, 8 ) int -> eax "Inline stloc first use temp"
; V05 tmp2 [V05,T05] ( 2, 16 ) int -> ecx "Strict ordering of exceptions for Array store"
; V06 tmp3 [V06,T01] ( 6, 48 ) ref -> eax class-hnd "Inlining Arg" <int[]>
; V07 tmp4 [V07,T10] ( 2, 8 ) int -> ecx "Inline stloc first use temp"
; V08 tmp5 [V08,T06] ( 2, 16 ) int -> edx "Strict ordering of exceptions for Array store"
-; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - aggressive"
-; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - aggressive"
-; V11 cse2 [V11,T11] ( 4, 5.50) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - unknown"
+; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -29,42 +28,38 @@ G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 8
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
- ;; size=13 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 4.75
G_M46152_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
inc dword ptr [D1FFAB1EH]
cmp esi, 1
je SHORT G_M46152_IG05
;; size=11 bbWeight=1 PerfScore 4.25
G_M46152_IG03: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
- lea ebx, [esi-0x01]
- mov dword ptr [ebp-0x14], ebx
- mov edx, ebx
+ lea edx, [esi-0x01]
mov ecx, edi
; gcrRegs +[ecx]
call [Benchstone.BenchI.Permutate:PermuteArray(int):this]
; gcrRegs -[ecx]
- mov eax, ebx
- test eax, eax
+ lea ebx, [esi-0x01]
+ test ebx, ebx
jle SHORT G_M46152_IG05
- ;; size=22 bbWeight=0.50 PerfScore 3.25
+ ;; size=18 bbWeight=0.50 PerfScore 2.75
G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
mov edx, gword ptr [edi+0x04]
; gcrRegs +[edx]
mov ecx, dword ptr [edx+0x04]
cmp esi, ecx
jae SHORT G_M46152_IG06
- mov ebx, dword ptr [edx+4*esi+0x08]
- cmp eax, ecx
+ mov eax, dword ptr [edx+4*esi+0x08]
+ cmp ebx, ecx
jae SHORT G_M46152_IG06
- mov ecx, dword ptr [edx+4*eax+0x08]
+ mov ecx, dword ptr [edx+4*ebx+0x08]
mov dword ptr [edx+4*esi+0x08], ecx
- mov dword ptr [ebp-0x10], eax
- mov dword ptr [edx+4*eax+0x08], ebx
- mov edx, dword ptr [ebp-0x14]
+ mov dword ptr [edx+4*ebx+0x08], eax
+ lea edx, [esi-0x01]
; gcrRegs -[edx]
mov ecx, edi
; gcrRegs +[ecx]
@@ -76,7 +71,6 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000
cmp esi, edx
jae SHORT G_M46152_IG06
mov ecx, dword ptr [eax+4*esi+0x08]
- mov ebx, dword ptr [ebp-0x10]
cmp ebx, edx
jae SHORT G_M46152_IG06
mov edx, dword ptr [eax+4*ebx+0x08]
@@ -84,24 +78,21 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000
mov dword ptr [eax+4*ebx+0x08], ecx
dec ebx
test ebx, ebx
- mov eax, ebx
- ; gcrRegs -[eax]
jg SHORT G_M46152_IG04
- ;; size=84 bbWeight=4 PerfScore 132.00
+ ;; size=76 bbWeight=4 PerfScore 121.00
G_M46152_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
- ; gcrRegs -[edi]
- lea esp, [ebp-0x0C]
+ ; gcrRegs -[eax edi]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=8 bbWeight=1 PerfScore 3.50
+ ;; size=5 bbWeight=1 PerfScore 3.00
G_M46152_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 9, PerfScore 148.00, instruction count 56, allocated bytes for code 144 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
+; Total bytes of code 126, prolog size 6, PerfScore 135.75, instruction count 49, allocated bytes for code 126 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
; ============================================================
-25 (-11.90%) : 22685.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
@@ -9,19 +9,19 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 5 ) byref -> esi this single-def
-; V01 arg1 [V01,T06] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
+; V01 arg1 [V01,T05] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivitySpanId>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivityTraceId>
;* V04 tmp0 [V04 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivitySpanId>
;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivityTraceId>
;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V07 tmp3 [V07,T01] ( 6, 6 ) ref -> edx class-hnd exact single-def "impAppendStmt" <System.String>
+; V07 tmp3 [V07,T01] ( 5, 5 ) ref -> ecx class-hnd exact single-def "impAppendStmt" <System.String>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V10 tmp6 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V11 tmp7 [V11,T08] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V14 tmp10 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp11 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -31,27 +31,30 @@
;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V21 tmp17 [V21,T09] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V25 tmp21 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp22 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V27 tmp23 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V28 tmp24 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.String>
+; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> edx class-hnd exact single-def "Inlining Arg" <System.String>
; V30 tmp26 [V30,T10] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
-; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V32 tmp28 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp29 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp30 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V35 tmp31 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp32 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V37 tmp33 [V37,T03] ( 6, 4 ) ref -> edx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP
-; V38 tmp34 [V38,T05] ( 6, 3 ) ref -> edx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP
-; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> ecx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP
-; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> ecx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP
-; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
-; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
-; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
+; V37 tmp33 [V37,T03] ( 5, 3.50) ref -> ecx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP
+; V38 tmp34 [V38,T06] ( 5, 2.50) ref -> ecx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP
+; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> edx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP
+; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> edx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP
+; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> edx single-def "argument with side effect"
+; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> edx single-def "argument with side effect"
+; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> edx single-def "argument with side effect"
+; V44 cse0 [V44,T17] ( 3, 1.50) int -> eax "CSE - unknown"
+; V45 cse1 [V45,T18] ( 3, 1.50) int -> eax "CSE - unknown"
+; V46 cse2 [V46,T19] ( 3, 1.50) int -> eax "CSE - unknown"
;
; Lcl frame size = 0
@@ -63,103 +66,91 @@ G_M43911_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
; byrRegs +[esi]
;; size=6 bbWeight=1 PerfScore 2.50
G_M43911_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
- mov edx, gword ptr [esi+0x10]
- ; gcrRegs +[edx]
- mov ecx, gword ptr [ebp+0x18]
+ mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x18]
+ ; gcrRegs +[edx]
+ cmp ecx, edx
je SHORT G_M43911_IG04
;; size=10 bbWeight=1 PerfScore 4.25
-G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref
- test edx, edx
- je G_M43911_IG08
+G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref, isz
test ecx, ecx
je G_M43911_IG08
- mov eax, dword ptr [edx+0x04]
- cmp eax, dword ptr [ecx+0x04]
+ test edx, edx
+ je G_M43911_IG08
+ mov eax, dword ptr [ecx+0x04]
+ cmp eax, dword ptr [edx+0x04]
jne G_M43911_IG08
- lea eax, bword ptr [edx+0x08]
- ; byrRegs +[eax]
add ecx, 8
; gcrRegs -[ecx]
; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx
- push edx
- mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax
+ push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
- je G_M43911_IG08
- ;; size=58 bbWeight=0.50 PerfScore 8.62
-G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
- mov edx, gword ptr [esi+0x0C]
- ; gcrRegs +[edx]
- mov ecx, gword ptr [ebp+0x14]
- ; gcrRegs +[ecx]
- cmp edx, ecx
- je SHORT G_M43911_IG05
- test edx, edx
je SHORT G_M43911_IG08
+ ;; size=47 bbWeight=0.50 PerfScore 7.25
+G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
+ mov ecx, gword ptr [esi+0x0C]
+ ; gcrRegs +[ecx]
+ mov edx, gword ptr [ebp+0x14]
+ ; gcrRegs +[edx]
+ cmp ecx, edx
+ je SHORT G_M43911_IG05
test ecx, ecx
je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04]
- cmp eax, dword ptr [ecx+0x04]
+ test edx, edx
+ je SHORT G_M43911_IG08
+ mov eax, dword ptr [ecx+0x04]
+ cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08]
- ; byrRegs +[eax]
add ecx, 8
; gcrRegs -[ecx]
; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx
- push edx
- mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax
+ push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
je SHORT G_M43911_IG08
- ;; size=52 bbWeight=0.50 PerfScore 10.75
+ ;; size=45 bbWeight=0.50 PerfScore 9.38
G_M43911_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
mov edx, dword ptr [esi+0x04]
cmp edx, dword ptr [ebp+0x0C]
jne SHORT G_M43911_IG08
- mov edx, gword ptr [esi]
- ; gcrRegs +[edx]
- mov ecx, gword ptr [ebp+0x08]
+ mov ecx, gword ptr [esi]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x08]
+ ; gcrRegs +[edx]
+ cmp ecx, edx
je SHORT G_M43911_IG06
- test edx, edx
- je SHORT G_M43911_IG08
test ecx, ecx
je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04]
- cmp eax, dword ptr [ecx+0x04]
+ test edx, edx
+ je SHORT G_M43911_IG08
+ mov eax, dword ptr [ecx+0x04]
+ cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08]
- ; byrRegs +[eax]
add ecx, 8
; gcrRegs -[ecx]
; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx
- push edx
- mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax
+ push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
je SHORT G_M43911_IG08
- ;; size=59 bbWeight=0.50 PerfScore 13.25
+ ;; size=52 bbWeight=0.50 PerfScore 11.88
G_M43911_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
movzx eax, byte ptr [esi+0x08]
cmp al, byte ptr [ebp+0x10]
@@ -181,6 +172,6 @@ G_M43911_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret 20
;; size=5 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 210, prolog size 4, PerfScore 45.12, instruction count 81, allocated bytes for code 210 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
+; Total bytes of code 185, prolog size 4, PerfScore 41.00, instruction count 72, allocated bytes for code 185 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
; ============================================================
+41 (+21.13%) : 40330.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon
@@ -11,19 +11,22 @@
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def
; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx
-; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14]
+; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>>
-; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>>
+; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup"
-; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
+; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup"
+; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; TEMP_02 ref -> [ebp-0x24]
+; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 12
+ sub esp, 28
+ xor eax, eax
+ mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx
mov esi, gword ptr [ebp+0x08]
; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [ecx+0x20]
mov edx, dword ptr [edx+0x08]
@@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000
call CORINFO_HELP_RUNTIMEHANDLE_METHOD
mov edx, eax
;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
@@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this]
; gcrRegs -[eax ecx]
mov ebx, dword ptr [esi+0x04]
- dec ebx
- js SHORT G_M23436_IG10
- ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx
+ lea eax, [ebx-0x01]
+ test eax, eax
+ jl G_M23436_IG10
+ ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08]
- ; gcrRegs +[eax]
- mov ecx, eax
+ mov dword ptr [ebp-0x14], eax
+ mov ebx, gword ptr [esi+4*eax+0x08]
+ ; gcrRegs +[ebx]
+ mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
- ; GC ptr vars +{V04}
- mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30]
call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09}
mov edx, eax
; gcrRegs +[edx]
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this]
; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18]
- push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20]
+ push ebx
push 0
mov edx, eax
mov ecx, edi
; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx]
+ mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M23436_IG10
;; size=2 bbWeight=1.98 PerfScore 3.96
G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M23436_IG12
- mov eax, gword ptr [esi+4*ebx+0x08]
- ; gcrRegs +[eax]
- mov ecx, eax
+ cmp eax, ebx
+ jae SHORT G_M23436_IG13
+ mov dword ptr [ebp-0x14], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx
+ ; gcrRegs +[edx]
+ mov ecx, edx
+ mov gword ptr [ebp-0x24], ecx
+ mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax]
- mov edx, dword ptr [edx+0x30]
- call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30]
+ mov dword ptr [ebp-0x28], ecx
+ mov ecx, gword ptr [ebp-0x24]
+ ; gcrRegs +[ecx]
+ mov ebx, dword ptr [ebp-0x28]
+ call [ebx+0x14]<unknown method>
+ ; gcrRegs -[ecx edx] +[eax]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
mov ecx, edi
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
- ; GC ptr vars +{V09}
- mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx]
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this]
; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18]
- push gword ptr [ebp-0x14]
+ push ebx
+ push gword ptr [ebp-0x1C]
push 0
mov edx, eax
mov ecx, edi
; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx]
+ mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09
- ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx
+ jns SHORT G_M23436_IG12
+ ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
mov eax, edi
@@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend
pop ebp
ret 4
;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov ebx, dword ptr [ebp-0x18]
+ jmp SHORT G_M23436_IG09
+ ;; size=5 bbWeight=0.02 PerfScore 0.06
+G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
; ============================================================
+28 (+23.73%) : 31293.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String
@@ -7,14 +7,15 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
-; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]>
-; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
+; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]>
+; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown"
+; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -22,87 +23,100 @@ G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 12
mov esi, ecx
; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M36141_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04]
+ mov dword ptr [ebp-0x18], edi
+ mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[]
call CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[eax]
- mov edi, eax
- ; gcrRegs +[edi]
- xor ebx, ebx
- mov eax, dword ptr [edi+0x04]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
+ xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax
- test eax, eax
+ mov edx, dword ptr [ebx+0x04]
+ mov dword ptr [ebp-0x14], edx
+ test edx, edx
jle SHORT G_M36141_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00
-G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25
+G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ cmp edi, edx
jl SHORT G_M36141_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
-G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- cmp dword ptr [ebp-0x10], ebx
+ inc edi
+ cmp dword ptr [ebp-0x14], edi
+ mov eax, edi
jg SHORT G_M36141_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43
-G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34
+G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M36141_IG07
;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M36141_IG09
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi
+ jae SHORT G_M36141_IG10
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- mov eax, dword ptr [ebp-0x10]
- cmp eax, ebx
- jg SHORT G_M36141_IG06
- ;; size=34 bbWeight=0.04 PerfScore 0.70
-G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi
+ mov eax, dword ptr [ebp-0x14]
+ cmp eax, edi
+ jg SHORT G_M36141_IG09
+ ;; size=39 bbWeight=0.04 PerfScore 0.67
+G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax]
;; size=2 bbWeight=1.98 PerfScore 0.49
G_M36141_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93
-G_M36141_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93
+G_M36141_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov eax, edi
+ mov edi, dword ptr [ebp-0x18]
+ jmp SHORT G_M36141_IG06
+ ;; size=7 bbWeight=0.02 PerfScore 0.07
+G_M36141_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
; ============================================================
+28 (+23.73%) : 18168.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:g_GetParameterTypes|220(System.Reflection.ParameterInfo[]):System.Type
@@ -7,14 +7,15 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
-; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.Type[]>
-; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]>
+; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.Type[]>
+; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd "Strict ordering of exceptions for Array store" <System.Type>
; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown"
+; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -22,87 +23,100 @@ G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 12
mov esi, ecx
; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M57380_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04]
+ mov dword ptr [ebp-0x18], edi
+ mov edx, edi
mov ecx, 0xD1FFAB1E ; System.Type[]
call CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[eax]
- mov edi, eax
- ; gcrRegs +[edi]
- xor ebx, ebx
- mov eax, dword ptr [edi+0x04]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
+ xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax
- test eax, eax
+ mov edx, dword ptr [ebx+0x04]
+ mov dword ptr [ebp-0x14], edx
+ test edx, edx
jle SHORT G_M57380_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00
-G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25
+G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ cmp edi, edx
jl SHORT G_M57380_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
-G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- cmp dword ptr [ebp-0x10], ebx
+ inc edi
+ cmp dword ptr [ebp-0x14], edi
+ mov eax, edi
jg SHORT G_M57380_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43
-G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34
+G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M57380_IG07
;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M57380_IG09
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi
+ jae SHORT G_M57380_IG10
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- mov eax, dword ptr [ebp-0x10]
- cmp eax, ebx
- jg SHORT G_M57380_IG06
- ;; size=34 bbWeight=0.04 PerfScore 0.70
-G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi
+ mov eax, dword ptr [ebp-0x14]
+ cmp eax, edi
+ jg SHORT G_M57380_IG09
+ ;; size=39 bbWeight=0.04 PerfScore 0.67
+G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax]
;; size=2 bbWeight=1.98 PerfScore 0.49
G_M57380_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93
-G_M57380_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93
+G_M57380_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov eax, edi
+ mov edi, dword ptr [ebp-0x18]
+ jmp SHORT G_M57380_IG06
+ ;; size=7 bbWeight=0.02 PerfScore 0.07
+G_M57380_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
; ============================================================
coreclr_tests.run.windows.x86.checked.mch
-5 (-29.41%) : 49992.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
@@ -8,9 +8,10 @@
; with Dynamic PGO: edge weights are valid, and fgCalledCount is 224
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - unknown"
+; V03 cse1 [V03,T03] ( 3, 3 ) int -> eax "CSE - unknown"
;
; Lcl frame size = 0
@@ -19,15 +20,13 @@ G_M34407_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
G_M34407_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movzx eax, cl
movzx edx, dl
- movzx ecx, cl
cmp eax, edx
- mov eax, edx
- cmovge eax, ecx
- ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovl eax, edx
+ ;; 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)
; ============================================================
-5 (-29.41%) : 50004.dasm - System.Math:Max(byte,byte):byte (Tier1)
@@ -8,9 +8,10 @@
; with Dynamic PGO: edge weights are valid, and fgCalledCount is 224
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 4 ) byte -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) byte -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) byte -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - unknown"
+; V03 cse1 [V03,T03] ( 3, 3 ) int -> eax "CSE - unknown"
;
; Lcl frame size = 0
@@ -19,15 +20,13 @@ G_M42290_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
G_M42290_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movsx eax, cl
movsx edx, dl
- movsx ecx, cl
cmp eax, edx
- mov eax, edx
- cmovge eax, ecx
- ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovl eax, edx
+ ;; size=11 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 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
; ============================================================
-3 (-20.00%) : 231000.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
@@ -8,9 +8,10 @@
; with Dynamic PGO: edge weights are valid, and fgCalledCount is 393
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 3, 3 ) ubyte -> ecx single-def
-; V01 arg1 [V01,T00] ( 4, 4 ) ubyte -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - aggressive"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
@@ -18,15 +19,14 @@ G_M34407_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=0 bbWeight=1 PerfScore 0.00
G_M34407_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movzx eax, cl
- movzx ecx, dl
movzx edx, dl
- cmp eax, ecx
+ cmp eax, edx
cmovl eax, edx
- ;; size=14 bbWeight=1 PerfScore 1.25
+ ;; 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 15, prolog size 0, PerfScore 2.25, instruction count 6, allocated bytes for code 15 (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)
; ============================================================
+6 (+24.00%) : 477513.dasm - Point:DistanceSquared(Point):int:this (FullOpts)
@@ -9,31 +9,40 @@
;
; V00 this [V00,T00] ( 4, 4 ) ref -> ecx this class-hnd single-def <Point>
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> edx class-hnd single-def <Point>
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - aggressive"
-; V03 cse1 [V03,T03] ( 3, 3 ) int -> ecx "CSE - aggressive"
+; V02 cse0 [V02,T04] ( 2, 2 ) int -> eax "CSE - unknown"
+; V03 cse1 [V03,T05] ( 2, 2 ) int -> esi "CSE - unknown"
+; V04 cse2 [V04,T06] ( 2, 2 ) int -> ecx "CSE - unknown"
+; V05 cse3 [V05,T07] ( 2, 2 ) int -> edx "CSE - unknown"
+; V06 cse4 [V06,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V07 cse5 [V07,T03] ( 3, 3 ) int -> ecx "CSE - unknown"
;
; Lcl frame size = 0
G_M50994_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ push esi
+ ;; size=4 bbWeight=1 PerfScore 2.25
G_M50994_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref
; gcrRegs +[ecx edx]
mov eax, dword ptr [ecx+0x04]
- sub eax, dword ptr [edx+0x04]
+ mov esi, dword ptr [edx+0x04]
+ sub eax, esi
imul eax, eax
mov ecx, dword ptr [ecx+0x08]
; gcrRegs -[ecx]
- sub ecx, dword ptr [edx+0x08]
+ mov edx, dword ptr [edx+0x08]
+ ; gcrRegs -[edx]
+ sub ecx, edx
imul ecx, ecx
add eax, ecx
- ;; size=20 bbWeight=1 PerfScore 14.25
+ ;; size=24 bbWeight=1 PerfScore 12.75
G_M50994_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop esi
pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
-; Total bytes of code 25, prolog size 3, PerfScore 17.00, instruction count 11, allocated bytes for code 25 (MethodHash=7b1838cd) for method Point:DistanceSquared(Point):int:this (FullOpts)
+; Total bytes of code 31, prolog size 4, PerfScore 17.00, instruction count 15, allocated bytes for code 31 (MethodHash=7b1838cd) for method Point:DistanceSquared(Point):int:this (FullOpts)
; ============================================================
+32 (+27.59%) : 513573.dasm - Test10w5d.testout1:Func04421():double (FullOpts)
@@ -8,12 +8,11 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T01] ( 4, 3.50) double -> mm0 single-def
+; V00 loc0 [V00,T00] ( 8, 5.50) double -> [ebp-0x08] spill-single-def
;* V01 loc1 [V01 ] ( 0, 0 ) double -> zero-ref
;* V02 tmp0 [V02 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V03 tmp1 [V03 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
-; V04 cse0 [V04,T00] ( 6, 4 ) double -> [ebp-0x08] spill-single-def "CSE - aggressive"
-; V05 cse1 [V05,T02] ( 3, 3 ) double -> mm0 "CSE - aggressive"
+; V04 cse0 [V04,T01] ( 3, 3 ) double -> mm0 "CSE - unknown"
; TEMP_01 double -> [ebp-0x10]
;
; Lcl frame size = 16
@@ -30,20 +29,23 @@ G_M12661_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs +[ecx]
vdivsd xmm0, xmm0, qword ptr [ecx+0x04]
vaddsd xmm0, xmm0, qword ptr [@RWD08]
+ vmovsd qword ptr [ebp-0x08], xmm0
vaddsd xmm1, xmm0, qword ptr [@RWD16]
- vmovsd qword ptr [ebp-0x08], xmm1
vucomisd xmm0, xmm1
jbe SHORT G_M12661_IG06
;; size=54 bbWeight=1 PerfScore 36.00
G_M12661_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[ecx]
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, xmm0
jbe SHORT G_M12661_IG06
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, qword ptr [@RWD24]
jb SHORT G_M12661_IG05
- vmovsd qword ptr [ebp-0x08], xmm1
- fld qword ptr [ebp-0x08]
- ;; size=24 bbWeight=0.50 PerfScore 4.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16]
+ vmovsd qword ptr [ebp-0x10], xmm0
+ fld qword ptr [ebp-0x10]
+ ;; size=48 bbWeight=0.50 PerfScore 12.25
G_M12661_IG04: ; bbWeight=0.50, epilog, nogc, extend
mov esp, ebp
pop ebp
@@ -54,12 +56,13 @@ G_M12661_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx]
- vmovsd xmm1, qword ptr [ebp-0x08]
+ vmovsd xmm0, qword ptr [ebp-0x08]
;; size=16 bbWeight=0.50 PerfScore 3.12
G_M12661_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- vmovsd qword ptr [ebp-0x08], xmm1
- fld qword ptr [ebp-0x08]
- ;; size=8 bbWeight=0.50 PerfScore 0.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16]
+ vmovsd qword ptr [ebp-0x10], xmm0
+ fld qword ptr [ebp-0x10]
+ ;; size=16 bbWeight=0.50 PerfScore 3.25
G_M12661_IG07: ; bbWeight=0.50, epilog, nogc, extend
mov esp, ebp
pop ebp
@@ -71,6 +74,6 @@ RWD16 dq C14F000004000000h ; -4063232.03
RWD24 dq C060000000000000h ; -128
-; Total bytes of code 116, prolog size 6, PerfScore 47.88, instruction count 29, allocated bytes for code 116 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
+; Total bytes of code 148, prolog size 6, PerfScore 57.88, instruction count 33, allocated bytes for code 148 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
; ============================================================
+32 (+27.59%) : 519759.dasm - Test10w5d.testout1:Func04421():double (FullOpts)
@@ -8,11 +8,10 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T01] ( 4, 3.50) double -> mm0 single-def
+; V00 loc0 [V00,T00] ( 8, 5.50) double -> [ebp-0x08] spill-single-def
;* V01 tmp0 [V01 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
;* V02 tmp1 [V02 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
-; V03 cse0 [V03,T00] ( 6, 4 ) double -> [ebp-0x08] spill-single-def "CSE - aggressive"
-; V04 cse1 [V04,T02] ( 3, 3 ) double -> mm0 "CSE - aggressive"
+; V03 cse0 [V03,T01] ( 3, 3 ) double -> mm0 "CSE - unknown"
; TEMP_01 double -> [ebp-0x10]
;
; Lcl frame size = 16
@@ -29,20 +28,23 @@ G_M12661_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs +[ecx]
vdivsd xmm0, xmm0, qword ptr [ecx+0x04]
vaddsd xmm0, xmm0, qword ptr [@RWD08]
+ vmovsd qword ptr [ebp-0x08], xmm0
vaddsd xmm1, xmm0, qword ptr [@RWD16]
- vmovsd qword ptr [ebp-0x08], xmm1
vucomisd xmm0, xmm1
jbe SHORT G_M12661_IG06
;; size=54 bbWeight=1 PerfScore 36.00
G_M12661_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[ecx]
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, xmm0
jbe SHORT G_M12661_IG06
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, qword ptr [@RWD24]
jb SHORT G_M12661_IG05
- vmovsd qword ptr [ebp-0x08], xmm1
- fld qword ptr [ebp-0x08]
- ;; size=24 bbWeight=0.50 PerfScore 4.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16]
+ vmovsd qword ptr [ebp-0x10], xmm0
+ fld qword ptr [ebp-0x10]
+ ;; size=48 bbWeight=0.50 PerfScore 12.25
G_M12661_IG04: ; bbWeight=0.50, epilog, nogc, extend
mov esp, ebp
pop ebp
@@ -53,12 +55,13 @@ G_M12661_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx]
- vmovsd xmm1, qword ptr [ebp-0x08]
+ vmovsd xmm0, qword ptr [ebp-0x08]
;; size=16 bbWeight=0.50 PerfScore 3.12
G_M12661_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- vmovsd qword ptr [ebp-0x08], xmm1
- fld qword ptr [ebp-0x08]
- ;; size=8 bbWeight=0.50 PerfScore 0.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16]
+ vmovsd qword ptr [ebp-0x10], xmm0
+ fld qword ptr [ebp-0x10]
+ ;; size=16 bbWeight=0.50 PerfScore 3.25
G_M12661_IG07: ; bbWeight=0.50, epilog, nogc, extend
mov esp, ebp
pop ebp
@@ -70,6 +73,6 @@ RWD16 dq C14F000004000000h ; -4063232.03
RWD24 dq C060000000000000h ; -128
-; Total bytes of code 116, prolog size 6, PerfScore 47.88, instruction count 29, allocated bytes for code 116 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
+; Total bytes of code 148, prolog size 6, PerfScore 57.88, instruction count 33, allocated bytes for code 148 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
; ============================================================
libraries.crossgen2.windows.x86.checked.mch
-7 (-21.88%) : 242109.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
@@ -9,47 +9,35 @@
; 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 -> esi this class-hnd single-def <System.Dynamic.DynamicMetaObject>
+; V00 this [V00,T00] ( 3, 3 ) ref -> ecx this class-hnd single-def <System.Dynamic.DynamicMetaObject>
+; V01 cse0 [V01,T01] ( 3, 3 ) ref -> esi "CSE - unknown"
;
; Lcl frame size = 0
-G_M17334_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
- push edi
+G_M17334_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push esi
- mov esi, ecx
+ ;; size=1 bbWeight=1 PerfScore 1.00
+G_M17334_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+ ; gcrRegs +[ecx]
+ mov esi, gword ptr [ecx+0x04]
; gcrRegs +[esi]
- ;; size=4 bbWeight=1 PerfScore 2.25
-G_M17334_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edi, gword ptr [esi+0x04]
- ; gcrRegs +[edi]
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
+ ; gcrRegs -[ecx]
; byrRegs +[eax]
; gcr arg pop 0
- cmp edi, gword ptr [eax+0x0724]
- jne SHORT G_M17334_IG05
- ;; size=17 bbWeight=1 PerfScore 9.00
-G_M17334_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[esi edi]
+ xor edx, edx
+ ; gcrRegs +[edx]
+ cmp esi, gword ptr [eax+0x0724]
+ mov eax, edx
+ ; gcrRegs +[eax]
; byrRegs -[eax]
- xor eax, eax
- ; gcrRegs +[eax]
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M17334_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ cmovne eax, esi
+ ;; size=22 bbWeight=1 PerfScore 8.75
+G_M17334_IG03: ; bbWeight=1, epilog, nogc, extend
pop esi
- pop edi
ret
- ;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M17334_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax] +[esi]
- mov eax, gword ptr [esi+0x04]
- ; gcrRegs +[eax]
- ;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M17334_IG06: ; bbWeight=0.50, epilog, nogc, extend
- pop esi
- pop edi
- ret
- ;; size=3 bbWeight=0.50 PerfScore 1.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 2, PerfScore 14.38, instruction count 15, allocated bytes for code 32 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
+; Total bytes of code 25, prolog size 1, PerfScore 11.25, instruction count 9, allocated bytes for code 25 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
; ============================================================
-6 (-18.75%) : 226061.dasm - System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
@@ -10,6 +10,7 @@
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Management.MarshalWbemObject>
; V01 arg1 [V01,T00] ( 5, 4.25) ref -> esi class-hnd single-def <System.Object>
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> ecx "CSE - unknown"
;
; Lcl frame size = 0
@@ -19,18 +20,17 @@ G_M52331_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs +[esi]
;; size=3 bbWeight=1 PerfScore 1.25
G_M52331_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, dword ptr [esi]
- cmp ecx, dword ptr [(reloc)] ; <unknown class>
+ mov ecx, dword ptr [(reloc)] ; <unknown class>
+ cmp dword ptr [esi], ecx
je SHORT G_M52331_IG04
;; size=10 bbWeight=1 PerfScore 6.00
G_M52331_IG03: ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [(reloc)] ; <unknown class>
mov edx, esi
; gcrRegs +[edx]
call [CORINFO_HELP_UNBOX]
; gcrRegs -[edx]
; gcr arg pop 0
- ;; size=14 bbWeight=0.25 PerfScore 1.31
+ ;; size=8 bbWeight=0.25 PerfScore 0.81
G_M52331_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov eax, dword ptr [esi+0x04]
;; size=3 bbWeight=1 PerfScore 2.00
@@ -39,6 +39,6 @@ G_M52331_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 1, PerfScore 12.06, instruction count 11, allocated bytes for code 32 (MethodHash=ae8c3394) for method System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 11.56, instruction count 10, allocated bytes for code 26 (MethodHash=ae8c3394) for method System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
; ============================================================
-6 (-18.18%) : 135342.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
@@ -11,6 +11,7 @@
;
; V00 this [V00,T01] ( 3, 3 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticDescriptor>
; V01 tmp0 [V01,T00] ( 4, 6.50) ref -> esi single-def "inline UNBOX clone1"
+; V02 cse0 [V02,T02] ( 3, 2.25) int -> ecx "CSE - unknown"
;
; Lcl frame size = 0
@@ -21,19 +22,18 @@ G_M37087_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
; gcrRegs +[ecx]
mov esi, gword ptr [ecx+0x1C]
; gcrRegs +[esi]
- mov ecx, dword ptr [esi]
+ mov ecx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[System.String]
; gcrRegs -[ecx]
- cmp ecx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[System.String]
+ cmp dword ptr [esi], ecx
je SHORT G_M37087_IG04
;; size=13 bbWeight=1 PerfScore 8.00
G_M37087_IG03: ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[System.String]
mov edx, esi
; gcrRegs +[edx]
call [CORINFO_HELP_UNBOX]
; gcrRegs -[edx]
; gcr arg pop 0
- ;; size=14 bbWeight=0.25 PerfScore 1.31
+ ;; size=8 bbWeight=0.25 PerfScore 0.81
G_M37087_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov eax, gword ptr [esi+0x04]
; gcrRegs +[eax]
@@ -43,6 +43,6 @@ G_M37087_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 1, PerfScore 13.81, instruction count 11, allocated bytes for code 33 (MethodHash=2b986f20) for method Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
+; Total bytes of code 27, prolog size 1, PerfScore 13.31, instruction count 10, allocated bytes for code 27 (MethodHash=2b986f20) for method Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
; ============================================================
+11 (+44.00%) : 165351.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
@@ -8,41 +8,50 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax>
;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref
-; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> eax single-def "dup spill"
+; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> ecx single-def "dup spill"
; V04 tmp1 [V04,T02] ( 3, 6 ) byref -> esi single-def "dup spill"
; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> eax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V06 cse0 [V06,T05] ( 3, 3 ) byref -> esi "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 3 ) int -> edi "CSE - unknown"
;
; Lcl frame size = 0
G_M36355_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push edi
push esi
- ;; size=1 bbWeight=1 PerfScore 1.00
-G_M36355_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref
- ; gcrRegs +[ecx edx]
- cmp byte ptr [ecx], cl
+ push ebx
mov esi, ecx
; gcrRegs +[esi]
- add esi, bword ptr [(reloc)] ; const ptr
+ ;; size=5 bbWeight=1 PerfScore 3.25
+G_M36355_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs +[edx]
+ mov ebx, esi
+ ; gcrRegs +[ebx]
+ cmp byte ptr [ebx], bl
+ mov edi, dword ptr [(reloc)] ; const ptr
+ lea ecx, bword ptr [esi+edi]
+ ; byrRegs +[ecx]
+ dec dword ptr [ecx]
+ mov ecx, esi
+ ; gcrRegs +[ecx]
+ ; byrRegs -[ecx]
+ call [<unknown method>]
+ ; gcrRegs -[ecx edx ebx] +[eax]
+ ; gcr arg pop 0
+ add esi, edi
; gcrRegs -[esi]
; byrRegs +[esi]
- mov eax, esi
- ; byrRegs +[eax]
- dec dword ptr [eax]
- call [<unknown method>]
- ; gcrRegs -[ecx edx] +[eax]
- ; byrRegs -[eax]
- ; gcr arg pop 0
inc dword ptr [esi]
- ;; size=22 bbWeight=1 PerfScore 15.50
+ ;; size=27 bbWeight=1 PerfScore 15.25
G_M36355_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
+ pop edi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 25, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 25 (MethodHash=3e3871fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 21.00, instruction count 17, allocated bytes for code 36 (MethodHash=3e3871fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================
+11 (+44.00%) : 165332.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
@@ -8,41 +8,50 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax>
;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref
-; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> eax single-def "dup spill"
+; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> ecx single-def "dup spill"
; V04 tmp1 [V04,T02] ( 3, 6 ) byref -> esi single-def "dup spill"
; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> eax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V06 cse0 [V06,T05] ( 3, 3 ) byref -> esi "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 3 ) int -> edi "CSE - unknown"
;
; Lcl frame size = 0
G_M28163_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push edi
push esi
- ;; size=1 bbWeight=1 PerfScore 1.00
-G_M28163_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref
- ; gcrRegs +[ecx edx]
- cmp byte ptr [ecx], cl
+ push ebx
mov esi, ecx
; gcrRegs +[esi]
- add esi, bword ptr [(reloc)] ; const ptr
+ ;; size=5 bbWeight=1 PerfScore 3.25
+G_M28163_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs +[edx]
+ mov ebx, esi
+ ; gcrRegs +[ebx]
+ cmp byte ptr [ebx], bl
+ mov edi, dword ptr [(reloc)] ; const ptr
+ lea ecx, bword ptr [esi+edi]
+ ; byrRegs +[ecx]
+ dec dword ptr [ecx]
+ mov ecx, esi
+ ; gcrRegs +[ecx]
+ ; byrRegs -[ecx]
+ call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this]
+ ; gcrRegs -[ecx edx ebx] +[eax]
+ ; gcr arg pop 0
+ add esi, edi
; gcrRegs -[esi]
; byrRegs +[esi]
- mov eax, esi
- ; byrRegs +[eax]
- dec dword ptr [eax]
- call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this]
- ; gcrRegs -[ecx edx] +[eax]
- ; byrRegs -[eax]
- ; gcr arg pop 0
inc dword ptr [esi]
- ;; size=22 bbWeight=1 PerfScore 15.50
+ ;; size=27 bbWeight=1 PerfScore 15.25
G_M28163_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
+ pop edi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 25, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 25 (MethodHash=ce8b91fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 21.00, instruction count 17, allocated bytes for code 36 (MethodHash=ce8b91fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================
+11 (+44.00%) : 165352.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
@@ -8,41 +8,50 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax>
;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref
-; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> eax single-def "dup spill"
+; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> ecx single-def "dup spill"
; V04 tmp1 [V04,T02] ( 3, 6 ) byref -> esi single-def "dup spill"
; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> eax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V06 cse0 [V06,T05] ( 3, 3 ) byref -> esi "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 3 ) int -> edi "CSE - unknown"
;
; Lcl frame size = 0
G_M26883_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push edi
push esi
- ;; size=1 bbWeight=1 PerfScore 1.00
-G_M26883_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref
- ; gcrRegs +[ecx edx]
- cmp byte ptr [ecx], cl
+ push ebx
mov esi, ecx
; gcrRegs +[esi]
- add esi, bword ptr [(reloc)] ; const ptr
+ ;; size=5 bbWeight=1 PerfScore 3.25
+G_M26883_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs +[edx]
+ mov ebx, esi
+ ; gcrRegs +[ebx]
+ cmp byte ptr [ebx], bl
+ mov edi, dword ptr [(reloc)] ; const ptr
+ lea ecx, bword ptr [esi+edi]
+ ; byrRegs +[ecx]
+ dec dword ptr [ecx]
+ mov ecx, esi
+ ; gcrRegs +[ecx]
+ ; byrRegs -[ecx]
+ call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this]
+ ; gcrRegs -[ecx edx ebx] +[eax]
+ ; gcr arg pop 0
+ add esi, edi
; gcrRegs -[esi]
; byrRegs +[esi]
- mov eax, esi
- ; byrRegs +[eax]
- dec dword ptr [eax]
- call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this]
- ; gcrRegs -[ecx edx] +[eax]
- ; byrRegs -[eax]
- ; gcr arg pop 0
inc dword ptr [esi]
- ;; size=22 bbWeight=1 PerfScore 15.50
+ ;; size=27 bbWeight=1 PerfScore 15.25
G_M26883_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
+ pop edi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 25, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 25 (MethodHash=71d896fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 21.00, instruction count 17, 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)
; ============================================================
libraries.pmi.windows.x86.checked.mch
-10 (-45.45%) : 74157.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
@@ -8,29 +8,26 @@
; 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 -> ecx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def
-; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
+; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
G_M18857_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M18857_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movsx eax, cx
- movsx esi, dx
- movsx ecx, cx
movsx edx, dx
- cmp eax, esi
- mov eax, edx
- cmovle eax, ecx
- ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx
+ cmovg eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M18857_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=2809b656) for method System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=2809b656) for method System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================
-10 (-45.45%) : 74096.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
@@ -8,29 +8,26 @@
; 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 -> ecx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def
-; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def
+; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
G_M13207_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M13207_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movzx eax, cl
- movzx ebx, dl
- movzx ecx, cl
movzx edx, dl
- cmp eax, ebx
- mov eax, edx
- cmovge eax, ecx
- ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx
+ cmovl eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M13207_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, 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)
; ============================================================
-10 (-45.45%) : 74100.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
@@ -8,29 +8,26 @@
; 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 -> ecx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def
-; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
+; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> edx "CSE - unknown"
+; V04 cse1 [V04,T03] ( 3, 3 ) int -> eax "CSE - unknown"
;
; Lcl frame size = 0
G_M47351_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M47351_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movsx eax, cx
- movsx esi, dx
- movsx ecx, cx
movsx edx, dx
- cmp eax, esi
- mov eax, edx
- cmovge eax, ecx
- ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx
+ cmovl eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M47351_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=8d024708) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=8d024708) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================
+22 (+24.44%) : 204129.dasm - Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
@@ -9,11 +9,13 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.Build.Framework.ProjectFinishedEventArgs>
-; V01 arg1 [V01,T00] ( 10, 7 ) ref -> esi class-hnd single-def <System.IO.BinaryWriter>
+; V01 arg1 [V01,T00] ( 9, 6.50) ref -> esi class-hnd single-def <System.IO.BinaryWriter>
; V02 tmp0 [V02,T02] ( 3, 5 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <System.String>
-; V03 cse0 [V03,T03] ( 5, 3 ) int -> [ebp-0x10] multi-def "CSE - aggressive"
+; V03 cse0 [V03,T04] ( 5, 2.50) int -> [ebp-0x10] multi-def "CSE - unknown"
+; V04 cse1 [V04,T03] ( 5, 3 ) int -> [ebp-0x14] multi-def "CSE - unknown"
+; TEMP_01 ref -> [ebp-0x18]
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M13784_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -21,12 +23,14 @@ G_M13784_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 12
+ xor eax, eax
+ mov dword ptr [ebp-0x18], eax
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
- ;; size=11 bbWeight=1 PerfScore 5.75
+ ;; size=18 bbWeight=1 PerfScore 6.25
G_M13784_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, edi
; gcrRegs +[ecx]
@@ -44,8 +48,8 @@ G_M13784_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
mov ecx, esi
; gcrRegs +[ecx]
xor edx, edx
- mov eax, dword ptr [esi]
- mov ebx, dword ptr [eax+0x30]
+ mov ebx, dword ptr [esi]
+ mov ebx, dword ptr [ebx+0x30]
call [ebx+0x10]<unknown method>
; gcrRegs -[ecx]
jmp SHORT G_M13784_IG05
@@ -54,22 +58,29 @@ G_M13784_IG04: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
; gcrRegs +[ebx]
mov ecx, esi
; gcrRegs +[ecx]
+ mov gword ptr [ebp-0x18], ecx
mov edx, 1
mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0x30]
mov dword ptr [ebp-0x10], eax
+ mov ecx, dword ptr [eax+0x30]
+ ; gcrRegs -[ecx]
+ mov dword ptr [ebp-0x14], ecx
+ mov ecx, gword ptr [ebp-0x18]
+ ; gcrRegs +[ecx]
+ mov eax, dword ptr [ebp-0x14]
call [eax+0x10]<unknown method>
; gcrRegs -[ecx]
mov ecx, esi
; gcrRegs +[ecx]
mov edx, ebx
; gcrRegs +[edx]
- mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0x38]
- call [eax+0x14]<unknown method>
- ; gcrRegs -[ecx edx ebx]
mov ebx, dword ptr [ebp-0x10]
- ;; size=33 bbWeight=0.50 PerfScore 8.50
+ ; gcrRegs -[ebx]
+ mov eax, dword ptr [ebx+0x38]
+ call [eax+0x14]<unknown method>
+ ; gcrRegs -[ecx edx]
+ mov ebx, dword ptr [ebp-0x14]
+ ;; size=46 bbWeight=0.50 PerfScore 10.00
G_M13784_IG05: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
movzx edx, byte ptr [edi+0x34]
mov ecx, esi
@@ -78,14 +89,14 @@ G_M13784_IG05: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
; gcrRegs -[ecx esi edi]
;; size=9 bbWeight=1 PerfScore 5.25
G_M13784_IG06: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 90, prolog size 7, PerfScore 34.50, instruction count 41, allocated bytes for code 90 (MethodHash=44adca27) for method Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
+; Total bytes of code 112, prolog size 14, PerfScore 36.50, instruction count 47, allocated bytes for code 112 (MethodHash=44adca27) for method Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
; ============================================================
+29 (+24.58%) : 249769.dasm - System.Linq.Enumerable+ListPartition`1[System.Canon]:TryGetLast(byref):System.Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 6.50) ref -> esi this class-hnd single-def <System.Linq.Enumerable+ListPartition`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6 ) ref -> esi this class-hnd single-def <System.Linq.Enumerable+ListPartition`1[System.__Canon]>
; V01 arg1 [V01,T02] ( 4, 3 ) byref -> edi single-def
; V02 loc0 [V02,T05] ( 4, 3 ) int -> eax
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -16,15 +16,15 @@
; V05 tmp1 [V05,T04] ( 3, 4 ) int -> eax "VirtualCall with runtime lookup"
; V06 tmp2 [V06,T10] ( 2, 2 ) ref -> edi class-hnd single-def "impAppendStmt" <<unknown class>>
;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V08 tmp4 [V08,T09] ( 3, 2 ) int -> eax "VirtualCall with runtime lookup"
-; V09 tmp5 [V09,T11] ( 2, 1 ) int -> ebx "Inline return value spill temp"
+; V08 tmp4 [V08,T09] ( 3, 2 ) int -> [ebp-0x10] "VirtualCall with runtime lookup"
+; V09 tmp5 [V09,T11] ( 2, 1 ) int -> [ebp-0x14] spill-single-def "Inline return value spill temp"
; V10 tmp6 [V10,T06] ( 3, 3 ) int -> ecx "Inlining Arg"
-; V11 rat0 [V11,T03] ( 3, 4.40) int -> ecx "Spilling to split statement for tree"
-; V12 rat1 [V12,T01] ( 3, 5.60) int -> eax "fgMakeTemp is creating a new local variable"
-; V13 rat2 [V13,T08] ( 3, 2.20) int -> ecx "Spilling to split statement for tree"
-; V14 rat3 [V14,T07] ( 3, 2.80) int -> eax "fgMakeTemp is creating a new local variable"
+; V11 cse0 [V11,T08] ( 4, 2.60) int -> ebx "CSE - unknown"
+; V12 rat0 [V12,T03] ( 3, 4.40) int -> ecx "Spilling to split statement for tree"
+; V13 rat1 [V13,T01] ( 3, 5.60) int -> eax "fgMakeTemp is creating a new local variable"
+; V14 rat2 [V14,T07] ( 3, 2.80) int -> ecx "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M14467_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
push ebp
@@ -32,19 +32,21 @@ G_M14467_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
push edi
push esi
push ebx
+ sub esp, 8
mov esi, ecx
; gcrRegs +[esi]
mov edi, edx
; byrRegs +[edi]
- ;; size=10 bbWeight=1 PerfScore 4.75
+ ;; size=13 bbWeight=1 PerfScore 5.00
G_M14467_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
- mov ecx, dword ptr [esi]
+ mov ebx, dword ptr [esi]
+ mov ecx, ebx
mov edx, dword ptr [ecx+0x24]
mov edx, dword ptr [edx+0x04]
mov eax, dword ptr [edx+0x08]
test eax, eax
je SHORT G_M14467_IG04
- ;; size=15 bbWeight=1 PerfScore 9.25
+ ;; size=17 bbWeight=1 PerfScore 9.50
G_M14467_IG03: ; bbWeight=0.80, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
jmp SHORT G_M14467_IG05
;; size=2 bbWeight=0.80 PerfScore 1.60
@@ -69,37 +71,44 @@ G_M14467_IG06: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
; byrRegs -[edi]
mov ecx, dword ptr [esi+0x18]
cmp eax, ecx
- mov ebx, ecx
- cmovle ebx, eax
- mov ecx, dword ptr [esi]
- mov edx, dword ptr [ecx+0x24]
- mov edx, dword ptr [edx+0x04]
- mov eax, dword ptr [edx+0x0C]
- test eax, eax
+ cmovg eax, ecx
+ mov dword ptr [ebp-0x14], eax
+ mov ecx, dword ptr [ebx+0x24]
+ mov ecx, dword ptr [ecx+0x04]
+ mov ecx, dword ptr [ecx+0x0C]
+ test ecx, ecx
je SHORT G_M14467_IG08
- ;; size=31 bbWeight=0.50 PerfScore 7.50
+ ;; size=30 bbWeight=0.50 PerfScore 6.88
G_M14467_IG07: ; bbWeight=0.40, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov eax, dword ptr [ebp-0x14]
+ mov edx, ecx
+ mov dword ptr [ebp-0x10], edx
jmp SHORT G_M14467_IG09
- ;; size=2 bbWeight=0.40 PerfScore 0.80
+ ;; size=10 bbWeight=0.40 PerfScore 1.70
G_M14467_IG08: ; bbWeight=0.10, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ mov ecx, ebx
mov edx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- ;; size=10 bbWeight=0.10 PerfScore 0.12
+ mov dword ptr [ebp-0x10], eax
+ mov eax, dword ptr [ebp-0x14]
+ ;; size=18 bbWeight=0.10 PerfScore 0.35
G_M14467_IG09: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, edi
; gcrRegs +[ecx]
- mov edx, ebx
+ mov edx, eax
+ mov eax, dword ptr [ebp-0x10]
nop
call [eax]
; gcrRegs -[ecx edi] +[eax]
- ;; size=9 bbWeight=0.50 PerfScore 1.88
+ ;; size=12 bbWeight=0.50 PerfScore 2.38
G_M14467_IG10: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=5 bbWeight=0.50 PerfScore 1.50
+ ;; size=8 bbWeight=0.50 PerfScore 1.75
G_M14467_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
; gcrRegs -[eax]
; byrRegs +[edi]
@@ -108,13 +117,14 @@ G_M14467_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {e
; gcrRegs +[eax]
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M14467_IG12: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=5 bbWeight=0.50 PerfScore 1.50
+ ;; size=8 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 118, prolog size 6, PerfScore 39.27, instruction count 53, allocated bytes for code 118 (MethodHash=6fbdc77c) for method System.Linq.Enumerable+ListPartition`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
+; Total bytes of code 147, prolog size 9, PerfScore 41.27, instruction count 63, allocated bytes for code 147 (MethodHash=6fbdc77c) for method System.Linq.Enumerable+ListPartition`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
; ============================================================
+46 (+29.30%) : 171467.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
@@ -10,20 +10,21 @@
;
; V00 this [V00,T05] ( 8, 13.96) ref -> esi this class-hnd single-def <System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension>
;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.Xsl.XsltContext>
-; V02 arg2 [V02,T07] ( 8, 11.52) ref -> edi class-hnd single-def <System.Object[]>
+; V02 arg2 [V02,T07] ( 6, 10.98) ref -> edi class-hnd single-def <System.Object[]>
;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.XPath.XPathNavigator>
-; V04 loc0 [V04,T00] ( 22, 38.54) int -> ebx
+; V04 loc0 [V04,T00] ( 22, 38.54) int -> [ebp-0x10]
;* V05 tmp0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Object>
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.MethodInfo>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
-; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> eax "arr expr"
-; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> eax "arr expr"
+; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> edx "arr expr"
+; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> ebx "arr expr"
; V10 tmp5 [V10,T03] ( 4, 16 ) ref -> ecx "argument with side effect"
; V11 tmp6 [V11,T04] ( 4, 16 ) int -> edx "argument with side effect"
; V12 tmp7 [V12,T06] ( 3, 11.88) ref -> ecx single-def "argument with side effect"
; V13 tmp8 [V13,T08] ( 2, 7.92) ref -> edx single-def "argument with side effect"
+; V14 cse0 [V14,T09] ( 4, 2.54) int -> [ebp-0x14] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -31,71 +32,84 @@ G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
+ sub esp, 8
mov esi, ecx
; gcrRegs +[esi]
mov edi, gword ptr [ebp+0x0C]
; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.50
-G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=14 bbWeight=1 PerfScore 5.75
+G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ebx, dword ptr [edi+0x04]
- dec ebx
- js SHORT G_M50779_IG07
- ;; size=6 bbWeight=1 PerfScore 3.25
+ mov dword ptr [ebp-0x14], ebx
+ lea eax, [ebx-0x01]
+ test eax, eax
+ jl G_M50779_IG07
+ ;; size=17 bbWeight=1 PerfScore 4.75
G_M50779_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [edi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M50779_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M50779_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [edi+4*ebx+0x08]
+ mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04]
- ; gcrRegs +[eax]
- cmp ebx, dword ptr [eax+0x04]
- jae SHORT G_M50779_IG09
- mov edx, dword ptr [eax+4*ebx+0x08]
- mov eax, gword ptr [esi+0x1C]
- cmp ebx, dword ptr [eax+0x04]
- jae SHORT G_M50779_IG09
- push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04]
+ ; gcrRegs +[edx]
+ cmp eax, dword ptr [edx+0x04]
+ jae G_M50779_IG10
+ mov edx, dword ptr [edx+4*eax+0x08]
+ ; gcrRegs -[edx]
+ mov ebx, gword ptr [esi+0x1C]
+ ; gcrRegs +[ebx]
+ cmp eax, dword ptr [ebx+0x04]
+ jae G_M50779_IG10
+ mov dword ptr [ebp-0x10], eax
+ push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi
; gcrRegs +[ecx]
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
+ mov eax, ebx
jns SHORT G_M50779_IG04
- ;; size=47 bbWeight=3.96 PerfScore 98.01
+ ;; size=64 bbWeight=3.96 PerfScore 109.89
G_M50779_IG05: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
jmp SHORT G_M50779_IG07
;; size=2 bbWeight=1.98 PerfScore 3.96
G_M50779_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp ebx, dword ptr [edi+0x04]
- jae SHORT G_M50779_IG09
- mov ecx, gword ptr [edi+4*ebx+0x08]
+ cmp eax, ebx
+ jae SHORT G_M50779_IG10
+ mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04]
- ; gcrRegs +[eax]
- cmp ebx, dword ptr [eax+0x04]
- jae SHORT G_M50779_IG09
- mov edx, dword ptr [eax+4*ebx+0x08]
- mov eax, gword ptr [esi+0x1C]
- cmp ebx, dword ptr [eax+0x04]
- jae SHORT G_M50779_IG09
- push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04]
+ ; gcrRegs +[edx]
+ cmp eax, dword ptr [edx+0x04]
+ jae SHORT G_M50779_IG10
+ mov edx, dword ptr [edx+4*eax+0x08]
+ ; gcrRegs -[edx]
+ mov ebx, gword ptr [esi+0x1C]
+ ; gcrRegs +[ebx]
+ cmp eax, dword ptr [ebx+0x04]
+ jae SHORT G_M50779_IG10
+ mov dword ptr [ebp-0x10], eax
+ push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi
; gcrRegs +[ecx]
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
- jns SHORT G_M50779_IG06
- ;; size=52 bbWeight=0.04 PerfScore 1.15
+ mov eax, ebx
+ jns SHORT G_M50779_IG09
+ ;; size=60 bbWeight=0.04 PerfScore 1.16
G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, gword ptr [esi+0x18]
; gcrRegs +[ecx]
@@ -111,18 +125,24 @@ G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
; gcrRegs -[ecx edx esi edi] +[eax]
;; size=21 bbWeight=1.98 PerfScore 29.70
G_M50779_IG08: ; bbWeight=1.98, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 8
- ;; size=7 bbWeight=1.98 PerfScore 7.92
-G_M50779_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax]
+ ;; size=10 bbWeight=1.98 PerfScore 8.91
+G_M50779_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi edi]
+ mov ebx, dword ptr [ebp-0x14]
+ jmp SHORT G_M50779_IG06
+ ;; size=5 bbWeight=0.02 PerfScore 0.06
+G_M50779_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 157, prolog size 6, PerfScore 151.49, instruction count 63, allocated bytes for code 157 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
+; Total bytes of code 203, prolog size 9, PerfScore 164.81, instruction count 75, allocated bytes for code 203 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
; ============================================================
libraries_tests.run.windows.x86.Release.mch
-10 (-45.45%) : 363713.dasm - System.Byte:System.Numerics.INumberBase.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
@@ -8,29 +8,26 @@
; 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 -> ecx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def
-; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def
+; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
G_M14398_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M14398_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movzx eax, cl
- movzx ebx, dl
- movzx ecx, cl
movzx edx, dl
- cmp eax, ebx
- mov eax, edx
- cmovge eax, ecx
- ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx
+ cmovl eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M14398_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, 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)
; ============================================================
-10 (-45.45%) : 363945.dasm - System.Byte:System.Numerics.INumberBase.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
@@ -8,29 +8,26 @@
; 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 -> ecx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def
-; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def
+; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
G_M14398_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M14398_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movzx eax, cl
- movzx ebx, dl
- movzx ecx, cl
movzx edx, dl
- cmp eax, ebx
- mov eax, edx
- cmovge eax, ecx
- ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx
+ cmovl eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M14398_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (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 (Tier1)
; ============================================================
-10 (-45.45%) : 365189.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)
@@ -8,29 +8,26 @@
; 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 -> ecx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def
-; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
+; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
G_M43536_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M43536_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movsx eax, cx
- movsx esi, dx
- movsx ecx, cx
movsx edx, dx
- cmp eax, esi
- mov eax, edx
- cmovle eax, ecx
- ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx
+ cmovg eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M43536_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Instrumented Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Instrumented Tier1)
; ============================================================
+38 (+32.48%) : 386783.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
@@ -11,15 +11,18 @@
;
; V00 arg0 [V00,T01] ( 4, 3 ) ref -> esi class-hnd single-def <System.String>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
-; V02 loc1 [V02,T02] ( 4, 4 ) ref -> edi class-hnd single-def <<unknown class>>
-; V03 loc2 [V03,T00] ( 5, 5 ) int -> ebx
-; V04 loc3 [V04,T03] ( 5, 3 ) ref -> [ebp-0x10] class-hnd spill-single-def <System.Text.EncodingProvider>
+; V02 loc1 [V02,T04] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>>
+; V03 loc2 [V03,T00] ( 5, 5 ) int -> [ebp-0x10]
+; V04 loc3 [V04,T02] ( 5, 3 ) ref -> [ebp-0x18] class-hnd spill-single-def <System.Text.EncodingProvider>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.Encoding>
-; V06 tmp0 [V06,T04] ( 5, 3 ) ref -> eax "guarded devirt return temp"
+; V06 tmp0 [V06,T03] ( 5, 3 ) ref -> eax "guarded devirt return temp"
;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.CodePagesEncodingProvider>
; V08 tmp2 [V08,T05] ( 3, 3 ) int -> eax "Inline stloc first use temp"
+; V09 cse0 [V09,T06] ( 3, 3 ) int -> [ebp-0x14] spill-single-def "CSE - unknown"
+; TEMP_02 ref -> [ebp-0x1C]
+; TEMP_01 int -> [ebp-0x20]
;
-; Lcl frame size = 4
+; Lcl frame size = 20
G_M49734_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -27,30 +30,34 @@ G_M49734_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 20
+ xor eax, eax
+ mov dword ptr [ebp-0x1C], eax
mov esi, ecx
; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=16 bbWeight=1 PerfScore 6.00
G_M49734_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
cmp gword ptr [D1FFAB1EH], 0 ; data for <unknown class>:<unknown field>
je SHORT G_M49734_IG07
mov edi, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[edi]
xor ebx, ebx
- cmp dword ptr [edi+0x04], 0
+ mov eax, dword ptr [edi+0x04]
+ mov dword ptr [ebp-0x14], eax
+ test eax, eax
jle SHORT G_M49734_IG07
- ;; size=23 bbWeight=1 PerfScore 10.25
+ ;; size=27 bbWeight=1 PerfScore 10.50
G_M49734_IG03: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [edi+4*ebx+0x08]
- ; gcrRegs +[eax]
- mov gword ptr [ebp-0x10], eax
+ mov edx, gword ptr [edi+4*ebx+0x08]
+ ; gcrRegs +[edx]
+ mov gword ptr [ebp-0x18], edx
; GC ptr vars +{V04}
- cmp dword ptr [eax], 0xD1FFAB1E
+ cmp dword ptr [edx], 0xD1FFAB1E
jne SHORT G_M49734_IG09
mov ecx, esi
; gcrRegs +[ecx]
call [<unknown method>]
- ; gcrRegs -[eax ecx]
+ ; gcrRegs -[ecx edx]
test eax, eax
jne SHORT G_M49734_IG04
xor eax, eax
@@ -59,7 +66,7 @@ G_M49734_IG03: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
;; size=31 bbWeight=1 PerfScore 13.75
G_M49734_IG04: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
; gcrRegs -[eax]
- mov ecx, gword ptr [ebp-0x10]
+ mov ecx, gword ptr [ebp-0x18]
; gcrRegs +[ecx]
mov edx, eax
; GC ptr vars -{V04}
@@ -70,50 +77,58 @@ G_M49734_IG05: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
test eax, eax
jne SHORT G_M49734_IG06
inc ebx
- cmp dword ptr [edi+0x04], ebx
+ mov edx, dword ptr [ebp-0x14]
+ cmp edx, ebx
jg SHORT G_M49734_IG03
jmp SHORT G_M49734_IG07
- ;; size=12 bbWeight=1 PerfScore 7.50
+ ;; size=14 bbWeight=1 PerfScore 5.75
G_M49734_IG06: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
; gcrRegs -[esi edi]
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M49734_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax]
xor eax, eax
; gcrRegs +[eax]
;; size=2 bbWeight=0 PerfScore 0.00
G_M49734_IG08: ; bbWeight=0, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M49734_IG09: ; bbWeight=0, gcVars=00000008 {V04}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ;; size=8 bbWeight=0 PerfScore 0.00
+G_M49734_IG09: ; bbWeight=0, gcVars=00000004 {V04}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[esi edi]
- ; GC ptr vars +{V03 V04}
- mov eax, gword ptr [ebp-0x10]
- ; gcrRegs +[eax]
- mov ecx, eax
- ; gcrRegs +[ecx]
- mov edx, esi
+ ; GC ptr vars +{V02 V04}
+ mov dword ptr [ebp-0x10], ebx
+ mov edx, gword ptr [ebp-0x18]
; gcrRegs +[edx]
- mov eax, dword ptr [eax]
- ; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x2C]
- ; GC ptr vars -{V03 V04}
- call [eax+0x10]<unknown method>
+ mov ecx, edx
+ ; gcrRegs +[ecx]
+ mov gword ptr [ebp-0x1C], ecx
+ mov edx, esi
+ mov ecx, gword ptr [ebp-0x18]
+ mov ecx, dword ptr [ecx]
+ ; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x2C]
+ mov dword ptr [ebp-0x20], ecx
+ mov ecx, gword ptr [ebp-0x1C]
+ ; gcrRegs +[ecx]
+ mov ebx, dword ptr [ebp-0x20]
+ ; GC ptr vars -{V02 V04}
+ call [ebx+0x10]<unknown method>
; gcrRegs -[ecx edx] +[eax]
+ mov ebx, dword ptr [ebp-0x10]
jmp SHORT G_M49734_IG05
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=38 bbWeight=0 PerfScore 0.00
-; Total bytes of code 117, prolog size 7, PerfScore 41.25, instruction count 52, allocated bytes for code 117 (MethodHash=7d0f3db9) for method System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
+; Total bytes of code 155, prolog size 14, PerfScore 40.25, instruction count 64, allocated bytes for code 155 (MethodHash=7d0f3db9) for method System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
; ============================================================
+47 (+32.87%) : 459707.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
@@ -9,21 +9,24 @@
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T04] ( 4, 3 ) int -> esi single-def
-; V01 loc0 [V01,T08] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>>
-; V02 loc1 [V02,T05] ( 4, 4 ) ref -> edi class-hnd single-def <<unknown class>>
-; V03 loc2 [V03,T03] ( 5, 5 ) int -> ebx
-; V04 loc3 [V04,T09] ( 4, 2 ) ref -> ecx class-hnd <System.Text.EncodingProvider>
+; V00 arg0 [V00,T04] ( 4, 3 ) int -> [ebp-0x10] single-def
+; V01 loc0 [V01,T07] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>>
+; V02 loc1 [V02,T08] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>>
+; V03 loc2 [V03,T03] ( 5, 5 ) int -> [ebp-0x14]
+; V04 loc3 [V04,T10] ( 4, 2 ) ref -> ecx class-hnd <System.Text.EncodingProvider>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.Encoding>
-; V06 tmp0 [V06,T07] ( 5, 3 ) ref -> eax "guarded devirt return temp"
+; V06 tmp0 [V06,T06] ( 5, 3 ) ref -> edx "guarded devirt return temp"
;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.Tests.EncodingTests+ThreadStaticEncodingProvider>
; V08 tmp2 [V08,T00] ( 4, 8 ) ref -> ecx class-hnd "dup spill" <System.Text.EncodingProvider>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 rat0 [V10,T06] ( 3, 4 ) byref -> eax "TLS field access"
-; V11 rat1 [V11,T01] ( 3, 6 ) int -> ecx "TLS access"
-; V12 rat2 [V12,T02] ( 3, 6 ) int -> ecx "ThreadStaticBlockBase access"
+; V10 cse0 [V10,T09] ( 3, 3 ) int -> [ebp-0x18] spill-single-def "CSE - unknown"
+; V11 rat0 [V11,T05] ( 3, 4 ) byref -> edx "TLS field access"
+; V12 rat1 [V12,T01] ( 3, 6 ) int -> ecx "TLS access"
+; V13 rat2 [V13,T02] ( 3, 6 ) int -> ecx "ThreadStaticBlockBase access"
+; TEMP_02 int -> [ebp-0x1C]
+; TEMP_01 int -> [ebp-0x20]
;
-; Lcl frame size = 0
+; Lcl frame size = 20
G_M39147_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -31,99 +34,124 @@ G_M39147_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
+ sub esp, 20
mov esi, ecx
- ;; size=8 bbWeight=1 PerfScore 4.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M39147_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov edi, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[edi]
test edi, edi
- je SHORT G_M39147_IG08
+ je SHORT G_M39147_IG09
xor ebx, ebx
- cmp dword ptr [edi+0x04], 0
- jle SHORT G_M39147_IG08
- ;; size=18 bbWeight=1 PerfScore 7.50
+ mov eax, dword ptr [edi+0x04]
+ mov dword ptr [ebp-0x18], eax
+ test eax, eax
+ jle SHORT G_M39147_IG09
+ ;; size=22 bbWeight=1 PerfScore 7.75
G_M39147_IG03: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, gword ptr [edi+4*ebx+0x08]
; gcrRegs +[ecx]
cmp dword ptr [ecx], 0xD1FFAB1E
- jne SHORT G_M39147_IG11
+ jne SHORT G_M39147_IG12
mov ecx, dword ptr FS:[0x002C]
; gcrRegs -[ecx]
mov ecx, dword ptr [ecx+0x0C]
cmp dword ptr [ecx+0x80], 6
- jl SHORT G_M39147_IG10
+ jl SHORT G_M39147_IG11
mov ecx, dword ptr [ecx+0x84]
mov ecx, dword ptr [ecx+0x18]
test ecx, ecx
- je SHORT G_M39147_IG10
- mov eax, bword ptr [ecx]
- ; byrRegs +[eax]
- add eax, 8
+ je SHORT G_M39147_IG11
+ mov edx, bword ptr [ecx]
+ ; byrRegs +[edx]
+ add edx, 8
;; size=49 bbWeight=1 PerfScore 20.50
-G_M39147_IG04: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000001 {eax}, byref, isz
- mov ecx, gword ptr [eax]
+G_M39147_IG04: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000004 {edx}, byref, isz
+ mov ecx, gword ptr [edx]
; gcrRegs +[ecx]
test ecx, ecx
jne SHORT G_M39147_IG05
- xor eax, eax
- ; gcrRegs +[eax]
- ; byrRegs -[eax]
+ xor edx, edx
+ ; gcrRegs +[edx]
+ ; byrRegs -[edx]
jmp SHORT G_M39147_IG06
;; size=10 bbWeight=1 PerfScore 5.50
G_M39147_IG05: ; bbWeight=1, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
+ ; gcrRegs -[edx]
+ mov dword ptr [ebp-0x10], esi
mov edx, esi
- mov eax, dword ptr [ecx]
- mov eax, dword ptr [eax+0x2C]
- call [eax+0x14]<unknown method>
+ mov esi, dword ptr [ecx]
+ mov esi, dword ptr [esi+0x2C]
+ call [esi+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
- ;; size=10 bbWeight=1 PerfScore 7.25
-G_M39147_IG06: ; bbWeight=1, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz
- test eax, eax
+ mov edx, eax
+ ; gcrRegs +[edx]
+ mov esi, dword ptr [ebp-0x10]
+ ;; size=18 bbWeight=1 PerfScore 9.50
+G_M39147_IG06: ; bbWeight=1, gcrefRegs=00000084 {edx edi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs -[eax]
+ test edx, edx
jne SHORT G_M39147_IG07
inc ebx
- cmp dword ptr [edi+0x04], ebx
+ mov eax, dword ptr [ebp-0x18]
+ cmp eax, ebx
jg SHORT G_M39147_IG03
- jmp SHORT G_M39147_IG08
- ;; size=12 bbWeight=1 PerfScore 7.50
-G_M39147_IG07: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
+ jmp SHORT G_M39147_IG09
+ ;; size=14 bbWeight=1 PerfScore 5.75
+G_M39147_IG07: ; bbWeight=0, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
; gcrRegs -[edi]
+ mov eax, edx
+ ; gcrRegs +[eax]
+ ;; size=2 bbWeight=0 PerfScore 0.00
+G_M39147_IG08: ; bbWeight=0, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=5 bbWeight=0 PerfScore 0.00
-G_M39147_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax]
+ ;; size=8 bbWeight=0 PerfScore 0.00
+G_M39147_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ; gcrRegs -[eax edx]
xor eax, eax
; gcrRegs +[eax]
;; size=2 bbWeight=0 PerfScore 0.00
-G_M39147_IG09: ; bbWeight=0, epilog, nogc, extend
+G_M39147_IG10: ; bbWeight=0, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=5 bbWeight=0 PerfScore 0.00
-G_M39147_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ;; size=8 bbWeight=0 PerfScore 0.00
+G_M39147_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[edi]
mov ecx, 6
call CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
; byrRegs +[eax]
+ mov edx, eax
+ ; byrRegs +[edx]
jmp SHORT G_M39147_IG04
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M39147_IG11: ; bbWeight=0, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=14 bbWeight=0 PerfScore 0.00
+G_M39147_IG12: ; bbWeight=0, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx]
- ; byrRegs -[eax]
+ ; byrRegs -[eax edx]
+ mov dword ptr [ebp-0x14], ebx
mov edx, esi
- mov eax, dword ptr [ecx]
- mov eax, dword ptr [eax+0x2C]
- call [eax+0x14]<unknown method>
+ mov dword ptr [ebp-0x1C], edx
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x2C]
+ mov dword ptr [ebp-0x20], edx
+ mov edx, dword ptr [ebp-0x1C]
+ mov ebx, dword ptr [ebp-0x20]
+ call [ebx+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
+ mov edx, eax
+ ; gcrRegs +[edx]
+ mov ebx, dword ptr [ebp-0x14]
jmp SHORT G_M39147_IG06
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 143, prolog size 8, PerfScore 52.75, instruction count 59, allocated bytes for code 143 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
+; Total bytes of code 190, prolog size 11, PerfScore 53.75, instruction count 77, allocated bytes for code 190 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
; ============================================================
+23 (+35.94%) : 386787.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
@@ -8,15 +8,16 @@
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2
; Final local variable assignments
;
-; V00 arg0 [V00,T02] ( 3, 3 ) int -> esi single-def
-; V01 loc0 [V01,T04] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>>
-; V02 loc1 [V02,T03] ( 4, 4 ) ref -> edi class-hnd single-def <<unknown class>>
+; V00 arg0 [V00,T02] ( 3, 3 ) int -> [ebp-0x10] single-def
+; V01 loc0 [V01,T03] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>>
+; V02 loc1 [V02,T04] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T01] ( 5, 5 ) int -> ebx
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.EncodingProvider>
-; V05 loc4 [V05,T05] ( 3, 2 ) ref -> eax class-hnd <System.Text.Encoding>
+; V05 loc4 [V05,T06] ( 3, 2 ) ref -> eax class-hnd <System.Text.Encoding>
; V06 tmp0 [V06,T00] ( 3, 6 ) ref -> ecx "argument with side effect"
+; V07 cse0 [V07,T05] ( 3, 3 ) int -> [ebp-0x14] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M39147_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
push ebp
@@ -24,53 +25,65 @@ G_M39147_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
push edi
push esi
push ebx
+ sub esp, 8
mov esi, ecx
- ;; size=8 bbWeight=1 PerfScore 4.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M39147_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov edi, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[edi]
test edi, edi
- je SHORT G_M39147_IG05
+ je SHORT G_M39147_IG06
xor ebx, ebx
- cmp dword ptr [edi+0x04], 0
- jle SHORT G_M39147_IG05
- ;; size=18 bbWeight=1 PerfScore 7.50
+ mov eax, dword ptr [edi+0x04]
+ mov dword ptr [ebp-0x14], eax
+ test eax, eax
+ jle SHORT G_M39147_IG06
+ ;; size=22 bbWeight=1 PerfScore 7.75
G_M39147_IG03: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, gword ptr [edi+4*ebx+0x08]
; gcrRegs +[ecx]
+ mov dword ptr [ebp-0x10], esi
mov edx, esi
- mov eax, dword ptr [ecx]
- mov eax, dword ptr [eax+0x2C]
- call [eax+0x14]<unknown method>
+ mov esi, dword ptr [ecx]
+ mov esi, dword ptr [esi+0x2C]
+ call [esi+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
test eax, eax
- jne SHORT G_M39147_IG04
+ jne SHORT G_M39147_IG05
inc ebx
- cmp dword ptr [edi+0x04], ebx
- jg SHORT G_M39147_IG03
- jmp SHORT G_M39147_IG05
- ;; size=26 bbWeight=1 PerfScore 16.75
-G_M39147_IG04: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
- ; gcrRegs -[edi]
+ mov esi, dword ptr [ebp-0x14]
+ cmp esi, ebx
+ jg SHORT G_M39147_IG04
+ jmp SHORT G_M39147_IG06
+ ;; size=31 bbWeight=1 PerfScore 16.00
+G_M39147_IG04: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs -[eax]
+ mov esi, dword ptr [ebp-0x10]
+ jmp SHORT G_M39147_IG03
+ ;; size=5 bbWeight=0.50 PerfScore 1.50
+G_M39147_IG05: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
+ ; gcrRegs -[edi] +[eax]
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=5 bbWeight=0 PerfScore 0.00
-G_M39147_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ;; size=8 bbWeight=0 PerfScore 0.00
+G_M39147_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax]
xor eax, eax
; gcrRegs +[eax]
;; size=2 bbWeight=0 PerfScore 0.00
-G_M39147_IG06: ; bbWeight=0, epilog, nogc, extend
+G_M39147_IG07: ; bbWeight=0, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=5 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 64, prolog size 6, PerfScore 28.75, instruction count 34, allocated bytes for code 64 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
+; Total bytes of code 87, prolog size 9, PerfScore 30.00, instruction count 43, allocated bytes for code 87 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
; ============================================================
librariestestsnotieredcompilation.run.windows.x86.Release.mch
-10 (-38.46%) : 165761.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
@@ -9,29 +9,26 @@
; 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 -> edx single-def
-; V02 arg2 [V02,T01] ( 2, 2 ) ubyte -> eax single-def
-; V03 tmp0 [V03,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V01 arg1 [V01,T00] ( 3, 3 ) ubyte -> edx single-def
+; V02 arg2 [V02,T04] ( 1, 1 ) ubyte -> [esp+0x04] single-def
+; V03 tmp0 [V03,T03] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V04 cse0 [V04,T01] ( 3, 3 ) int -> eax "CSE - unknown"
+; V05 cse1 [V05,T02] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
G_M46726_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx
- mov eax, dword ptr [esp+0x08]
- ;; size=5 bbWeight=1 PerfScore 2.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M46726_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- movzx ecx, dl
- movzx ebx, al
- movzx edx, dl
- movzx eax, al
- cmp ecx, ebx
- cmovge eax, edx
- ;; size=17 bbWeight=1 PerfScore 1.50
+ movzx eax, dl
+ movzx edx, byte ptr [esp+0x04]
+ cmp eax, edx
+ cmovl eax, edx
+ ;; size=13 bbWeight=1 PerfScore 1.75
G_M46726_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret 4
- ;; size=4 bbWeight=1 PerfScore 2.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
-; Total bytes of code 26, prolog size 1, PerfScore 6.00, instruction count 10, allocated bytes for code 26 (MethodHash=888f4979) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 16, prolog size 0, PerfScore 3.75, instruction count 5, allocated bytes for code 16 (MethodHash=888f4979) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
; ============================================================
-10 (-38.46%) : 167197.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
@@ -8,32 +8,29 @@
; 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 -> ecx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def
-; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
+; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> edx "CSE - unknown"
+; V04 cse1 [V04,T03] ( 3, 3 ) int -> eax "CSE - unknown"
;
; Lcl frame size = 0
G_M45949_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- push esi
- ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M45949_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movsx eax, cx
- movsx esi, dx
- movsx ecx, cx
movsx edx, dx
- cmp eax, esi
- mov eax, edx
- cmovge eax, ecx
- ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx
+ cmovl eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M45949_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
pop ebp
ret
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 26, prolog size 4, PerfScore 6.00, instruction count 13, allocated bytes for code 26 (MethodHash=0a454c82) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 16, prolog size 3, PerfScore 3.75, instruction count 8, allocated bytes for code 16 (MethodHash=0a454c82) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================
-10 (-38.46%) : 166222.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
@@ -8,32 +8,29 @@
; 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 -> ecx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def
-; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def
+; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown"
+; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
;
; Lcl frame size = 0
G_M9245_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- push ebx
- ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M9245_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movzx eax, cl
- movzx ebx, dl
- movzx ecx, cl
movzx edx, dl
- cmp eax, ebx
- mov eax, edx
- cmovge eax, ecx
- ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx
+ cmovl eax, edx
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M9245_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
pop ebp
ret
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 26, prolog size 4, PerfScore 6.00, instruction count 13, allocated bytes for code 26 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 16, prolog size 3, PerfScore 3.75, instruction count 8, allocated bytes for code 16 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================
+33 (+22.92%) : 71682.dasm - System.Collections.Immutable.ImmutableSortedDictionary2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair
2[int,System.Canon],System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer
1[System.Canon]):ubyte:this (FullOpts)
@@ -8,30 +8,29 @@
; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4.50) ref -> esi this class-hnd single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]>
-; V01 arg1 [V01,T14] ( 2, 1.50) struct ( 8) [ebp+0x0C] do-not-enreg[SF] ld-addr-op single-def <System.Collections.Generic.KeyValuePair`2[int,System.__Canon]>
+; V00 this [V00,T00] ( 4, 4 ) ref -> esi this class-hnd single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]>
+; V01 arg1 [V01,T13] ( 2, 1.50) struct ( 8) [ebp+0x0C] do-not-enreg[SF] ld-addr-op single-def <System.Collections.Generic.KeyValuePair`2[int,System.__Canon]>
; V02 arg2 [V02,T01] ( 4, 4 ) ref -> edx class-hnd single-def <System.Collections.Generic.IComparer`1[int]>
-; V03 arg3 [V03,T13] ( 2, 1.50) ref -> edi class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.__Canon]>
+; V03 arg3 [V03,T12] ( 2, 1.50) ref -> edi class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.__Canon]>
; V04 loc0 [V04,T08] ( 3, 2.50) ref -> eax class-hnd exact single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]>
;* V05 tmp0 [V05 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T11] ( 2, 2 ) ref -> ebx class-hnd single-def "impAppendStmt" <System.__Canon>
+; V09 tmp4 [V09,T10] ( 2, 2 ) ref -> [ebp-0x14] class-hnd spill-single-def "impAppendStmt" <System.__Canon>
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V11 tmp6 [V11,T10] ( 3, 2 ) int -> eax "VirtualCall with runtime lookup"
+; V11 tmp6 [V11,T09] ( 3, 2 ) int -> [ebp-0x10] "VirtualCall with runtime lookup"
;* V12 tmp7 [V12 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V13 cse0 [V13,T15] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-;* V14 rat0 [V14,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
-;* V15 rat1 [V15,T06] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V16 rat2 [V16,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
-;* V17 rat3 [V17,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
-;* V18 rat4 [V18,T12] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V19 rat5 [V19,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
-; V20 rat6 [V20,T09] ( 3, 2.20) int -> ecx "Spilling to split statement for tree"
-; V21 rat7 [V21,T07] ( 3, 2.80) int -> eax "fgMakeTemp is creating a new local variable"
+;* V13 cse0 [V13,T14] ( 0, 0 ) int -> zero-ref "CSE - unknown"
+; V14 cse1 [V14,T06] ( 3, 1.60) int -> ebx "CSE - unknown"
+;* V15 rat0 [V15,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+;* V16 rat1 [V16,T05] ( 0, 0 ) int -> zero-ref "runtime lookup"
+;* V17 rat2 [V17,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+;* V18 rat3 [V18,T11] ( 0, 0 ) int -> zero-ref "runtime lookup"
+;* V19 rat4 [V19,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V20 rat5 [V20,T07] ( 3, 2.80) int -> ecx "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M9385_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -39,18 +38,19 @@ G_M9385_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
+ sub esp, 8
mov esi, ecx
; gcrRegs +[esi]
mov edi, gword ptr [ebp+0x08]
; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.50
+ ;; size=14 bbWeight=1 PerfScore 5.75
G_M9385_IG02: ; bbWeight=1, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[edx]
- cmp dword ptr [esi], esi
+ mov ebx, dword ptr [esi]
test edx, edx
je SHORT G_M9385_IG10
test edi, edi
- je SHORT G_M9385_IG11
+ je G_M9385_IG11
push edx
mov ecx, esi
; gcrRegs +[ecx]
@@ -60,54 +60,68 @@ G_M9385_IG02: ; bbWeight=1, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=0
; gcrRegs -[ecx] +[eax]
cmp gword ptr [eax+0x08], 0
jne SHORT G_M9385_IG05
- ;; size=28 bbWeight=1 PerfScore 14.75
+ ;; size=32 bbWeight=1 PerfScore 13.75
G_M9385_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
; gcrRegs -[eax edi]
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M9385_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 12
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M9385_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs +[eax edi]
- mov ebx, gword ptr [eax+0x04]
- ; gcrRegs +[ebx]
- mov ecx, dword ptr [esi]
- mov edx, dword ptr [ecx+0x24]
- mov edx, dword ptr [edx]
- mov eax, dword ptr [edx+0x2C]
- ; gcrRegs -[eax]
- test eax, eax
+ mov eax, gword ptr [eax+0x04]
+ mov gword ptr [ebp-0x14], eax
+ ; GC ptr vars +{V09}
+ mov ecx, dword ptr [ebx+0x24]
+ mov ecx, dword ptr [ecx]
+ mov ecx, dword ptr [ecx+0x2C]
+ test ecx, ecx
je SHORT G_M9385_IG07
- ;; size=17 bbWeight=0.50 PerfScore 5.62
-G_M9385_IG06: ; bbWeight=0.40, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=18 bbWeight=0.50 PerfScore 5.12
+G_M9385_IG06: ; bbWeight=0.40, gcVars=00000400 {V09}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax]
+ mov eax, gword ptr [ebp-0x14]
+ ; gcrRegs +[eax]
+ mov edx, ecx
+ mov dword ptr [ebp-0x10], edx
jmp SHORT G_M9385_IG08
- ;; size=2 bbWeight=0.40 PerfScore 0.80
-G_M9385_IG07: ; bbWeight=0.10, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=10 bbWeight=0.40 PerfScore 1.70
+G_M9385_IG07: ; bbWeight=0.10, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[eax]
+ mov ecx, ebx
mov edx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- ;; size=10 bbWeight=0.10 PerfScore 0.12
-G_M9385_IG08: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ mov dword ptr [ebp-0x10], eax
+ mov eax, gword ptr [ebp-0x14]
+ ; gcrRegs +[eax]
+ ;; size=18 bbWeight=0.10 PerfScore 0.35
+G_M9385_IG08: ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
push gword ptr [ebp+0x0C]
mov ecx, edi
; gcrRegs +[ecx]
- mov edx, ebx
+ mov edx, eax
; gcrRegs +[edx]
+ mov eax, dword ptr [ebp-0x10]
+ ; gcrRegs -[eax]
nop
+ ; GC ptr vars -{V09}
call [eax]
- ; gcrRegs -[ecx edx ebx edi]
- ;; size=12 bbWeight=0.50 PerfScore 2.38
+ ; gcrRegs -[ecx edx edi]
+ ;; size=15 bbWeight=0.50 PerfScore 2.88
G_M9385_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 12
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M9385_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
mov ecx, 0x6D3
mov edx, 0xD1FFAB1E
@@ -131,6 +145,6 @@ G_M9385_IG11: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000
int3
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 6, PerfScore 33.30, instruction count 56, allocated bytes for code 144 (MethodHash=8b4ddb56) for method System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair`2[int,System.__Canon],System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
+; Total bytes of code 177, prolog size 9, PerfScore 34.17, instruction count 66, allocated bytes for code 177 (MethodHash=8b4ddb56) for method System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair`2[int,System.__Canon],System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
; ============================================================
+28 (+23.73%) : 54191.dasm - Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String
@@ -7,14 +7,15 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Type[]>
-; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]>
-; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Type[]>
+; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]>
+; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown"
+; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M43234_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -22,87 +23,100 @@ G_M43234_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 12
mov esi, ecx
; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M43234_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04]
+ mov dword ptr [ebp-0x18], edi
+ mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[]
call CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[eax]
- mov edi, eax
- ; gcrRegs +[edi]
- xor ebx, ebx
- mov eax, dword ptr [edi+0x04]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
+ xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax
- test eax, eax
+ mov edx, dword ptr [ebx+0x04]
+ mov dword ptr [ebp-0x14], edx
+ test edx, edx
jle SHORT G_M43234_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00
-G_M43234_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25
+G_M43234_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ cmp edi, edx
jl SHORT G_M43234_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
-G_M43234_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M43234_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- cmp dword ptr [ebp-0x10], ebx
+ inc edi
+ cmp dword ptr [ebp-0x14], edi
+ mov eax, edi
jg SHORT G_M43234_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43
-G_M43234_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34
+G_M43234_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M43234_IG07
;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M43234_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M43234_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M43234_IG09
- mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi
+ jae SHORT G_M43234_IG10
+ mov dword ptr [ebp-0x10], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx]
- mov edx, dword ptr [edx+0x2C]
- call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
+ call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10]
+ lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
; byrRegs -[edx]
- inc ebx
- mov eax, dword ptr [ebp-0x10]
- cmp eax, ebx
- jg SHORT G_M43234_IG06
- ;; size=34 bbWeight=0.04 PerfScore 0.70
-G_M43234_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi
+ mov eax, dword ptr [ebp-0x14]
+ cmp eax, edi
+ jg SHORT G_M43234_IG09
+ ;; size=39 bbWeight=0.04 PerfScore 0.67
+G_M43234_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax]
;; size=2 bbWeight=1.98 PerfScore 0.49
G_M43234_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93
-G_M43234_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93
+G_M43234_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov eax, edi
+ mov edi, dword ptr [ebp-0x18]
+ jmp SHORT G_M43234_IG06
+ ;; size=7 bbWeight=0.02 PerfScore 0.07
+G_M43234_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=391d571d) for method Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=391d571d) for method Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (FullOpts)
; ============================================================
+46 (+29.30%) : 175685.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
@@ -10,20 +10,21 @@
;
; V00 this [V00,T05] ( 8, 13.96) ref -> esi this class-hnd single-def <System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension>
;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.Xsl.XsltContext>
-; V02 arg2 [V02,T07] ( 8, 11.52) ref -> edi class-hnd single-def <System.Object[]>
+; V02 arg2 [V02,T07] ( 6, 10.98) ref -> edi class-hnd single-def <System.Object[]>
;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.XPath.XPathNavigator>
-; V04 loc0 [V04,T00] ( 22, 38.54) int -> ebx
+; V04 loc0 [V04,T00] ( 22, 38.54) int -> [ebp-0x10]
;* V05 tmp0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Object>
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.MethodInfo>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
-; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> eax "arr expr"
-; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> eax "arr expr"
+; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> edx "arr expr"
+; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> ebx "arr expr"
; V10 tmp5 [V10,T03] ( 4, 16 ) ref -> ecx "argument with side effect"
; V11 tmp6 [V11,T04] ( 4, 16 ) int -> edx "argument with side effect"
; V12 tmp7 [V12,T06] ( 3, 11.88) ref -> ecx single-def "argument with side effect"
; V13 tmp8 [V13,T08] ( 2, 7.92) ref -> edx single-def "argument with side effect"
+; V14 cse0 [V14,T09] ( 4, 2.54) int -> [ebp-0x14] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -31,71 +32,84 @@ G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
+ sub esp, 8
mov esi, ecx
; gcrRegs +[esi]
mov edi, gword ptr [ebp+0x0C]
; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.50
-G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=14 bbWeight=1 PerfScore 5.75
+G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ebx, dword ptr [edi+0x04]
- dec ebx
- js SHORT G_M50779_IG07
- ;; size=6 bbWeight=1 PerfScore 3.25
+ mov dword ptr [ebp-0x14], ebx
+ lea eax, [ebx-0x01]
+ test eax, eax
+ jl G_M50779_IG07
+ ;; size=17 bbWeight=1 PerfScore 4.75
G_M50779_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [edi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M50779_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M50779_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [edi+4*ebx+0x08]
+ mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04]
- ; gcrRegs +[eax]
- cmp ebx, dword ptr [eax+0x04]
- jae SHORT G_M50779_IG09
- mov edx, dword ptr [eax+4*ebx+0x08]
- mov eax, gword ptr [esi+0x1C]
- cmp ebx, dword ptr [eax+0x04]
- jae SHORT G_M50779_IG09
- push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04]
+ ; gcrRegs +[edx]
+ cmp eax, dword ptr [edx+0x04]
+ jae G_M50779_IG10
+ mov edx, dword ptr [edx+4*eax+0x08]
+ ; gcrRegs -[edx]
+ mov ebx, gword ptr [esi+0x1C]
+ ; gcrRegs +[ebx]
+ cmp eax, dword ptr [ebx+0x04]
+ jae G_M50779_IG10
+ mov dword ptr [ebp-0x10], eax
+ push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi
; gcrRegs +[ecx]
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
+ mov eax, ebx
jns SHORT G_M50779_IG04
- ;; size=47 bbWeight=3.96 PerfScore 98.01
+ ;; size=64 bbWeight=3.96 PerfScore 109.89
G_M50779_IG05: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
jmp SHORT G_M50779_IG07
;; size=2 bbWeight=1.98 PerfScore 3.96
G_M50779_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp ebx, dword ptr [edi+0x04]
- jae SHORT G_M50779_IG09
- mov ecx, gword ptr [edi+4*ebx+0x08]
+ cmp eax, ebx
+ jae SHORT G_M50779_IG10
+ mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04]
- ; gcrRegs +[eax]
- cmp ebx, dword ptr [eax+0x04]
- jae SHORT G_M50779_IG09
- mov edx, dword ptr [eax+4*ebx+0x08]
- mov eax, gword ptr [esi+0x1C]
- cmp ebx, dword ptr [eax+0x04]
- jae SHORT G_M50779_IG09
- push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04]
+ ; gcrRegs +[edx]
+ cmp eax, dword ptr [edx+0x04]
+ jae SHORT G_M50779_IG10
+ mov edx, dword ptr [edx+4*eax+0x08]
+ ; gcrRegs -[edx]
+ mov ebx, gword ptr [esi+0x1C]
+ ; gcrRegs +[ebx]
+ cmp eax, dword ptr [ebx+0x04]
+ jae SHORT G_M50779_IG10
+ mov dword ptr [ebp-0x10], eax
+ push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi
; gcrRegs +[ecx]
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
- jns SHORT G_M50779_IG06
- ;; size=52 bbWeight=0.04 PerfScore 1.15
+ mov eax, ebx
+ jns SHORT G_M50779_IG09
+ ;; size=60 bbWeight=0.04 PerfScore 1.16
G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, gword ptr [esi+0x18]
; gcrRegs +[ecx]
@@ -111,18 +125,24 @@ G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
; gcrRegs -[ecx edx esi edi] +[eax]
;; size=21 bbWeight=1.98 PerfScore 29.70
G_M50779_IG08: ; bbWeight=1.98, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 8
- ;; size=7 bbWeight=1.98 PerfScore 7.92
-G_M50779_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax]
+ ;; size=10 bbWeight=1.98 PerfScore 8.91
+G_M50779_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi edi]
+ mov ebx, dword ptr [ebp-0x14]
+ jmp SHORT G_M50779_IG06
+ ;; size=5 bbWeight=0.02 PerfScore 0.06
+G_M50779_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 157, prolog size 6, PerfScore 151.49, instruction count 63, allocated bytes for code 157 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
+; Total bytes of code 203, prolog size 9, PerfScore 164.81, instruction count 75, allocated bytes for code 203 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
; ============================================================
realworld.run.windows.x86.checked.mch
-22 (-18.33%) : 22824.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol>
-; V01 arg1 [V01,T04] ( 3, 6 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 this [V00,T04] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol>
+; V01 arg1 [V01,T03] ( 3, 6 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 loc0 [V02,T07] ( 2, 5 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <<unknown class>>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]>
;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]>
@@ -17,18 +17,19 @@
;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V09 tmp4 [V09,T02] ( 4, 13 ) int -> edx "Inline stloc first use temp"
-; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> [ebp-0x18] spill-single-def "field V03._array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T02] ( 4, 13 ) int -> eax "Inline stloc first use temp"
+; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> ebx single-def "field V03._array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T01] ( 4, 13 ) int -> [ebp-0x10] "field V03._index (fldOffset=0x4)" P-INDEP
; V12 tmp7 [V12,T09] ( 3, 3 ) ref -> eax "field V04.array (fldOffset=0x0)" P-INDEP
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.array (fldOffset=0x0)" P-INDEP
-; V14 tmp9 [V14,T10] ( 2, 2 ) ref -> eax single-def "field V07._array (fldOffset=0x0)" P-INDEP
-;* V15 tmp10 [V15,T11] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
+; V14 tmp9 [V14,T11] ( 2, 2 ) ref -> ebx single-def "field V07._array (fldOffset=0x0)" P-INDEP
+;* V15 tmp10 [V15,T12] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
; V16 tmp11 [V16,T05] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
-; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> [ebp-0x1C] spill-single-def "argument with side effect"
-; V18 cse0 [V18,T06] ( 3, 6 ) int -> esi "CSE - aggressive"
+; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> ecx "argument with side effect"
+; V18 cse0 [V18,T06] ( 3, 6 ) int -> edi "CSE - unknown"
+; V19 cse1 [V19,T10] ( 3, 3 ) int -> ebx "CSE - unknown"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -36,17 +37,17 @@ G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 16
- mov esi, ecx
- ; gcrRegs +[esi]
- mov edi, edx
+ sub esp, 8
+ mov edi, ecx
; gcrRegs +[edi]
+ mov esi, edx
+ ; gcrRegs +[esi]
;; size=13 bbWeight=1 PerfScore 5.00
G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0x34]
+ mov ebx, dword ptr [edi]
+ mov eax, dword ptr [ebx+0x34]
call [eax+0x10]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ecx, gword ptr [eax+0x08]
@@ -56,54 +57,43 @@ G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
mov eax, dword ptr [eax+0x54]
call [eax+0x0C]<unknown method>
; gcrRegs -[ecx] +[eax]
+ mov gword ptr [ebp-0x14], eax
+ ; GC ptr vars +{V02}
+ mov ecx, edi
+ ; gcrRegs +[ecx]
+ mov edx, dword ptr [ebx+0x54]
+ call [edx+0x10]<unknown method>
+ ; gcrRegs -[ecx edi]
+ mov edi, dword ptr [eax+0x04]
mov ebx, eax
; gcrRegs +[ebx]
- mov gword ptr [ebp-0x14], ebx
- ; GC ptr vars +{V02}
- mov ecx, esi
- ; gcrRegs +[ecx]
- mov eax, dword ptr [esi]
+ xor eax, eax
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x54]
- call [eax+0x10]<unknown method>
- ; gcrRegs -[ecx esi] +[eax]
- mov esi, dword ptr [eax+0x04]
- mov gword ptr [ebp-0x18], eax
- ; GC ptr vars +{V10}
xor edx, edx
- xor ecx, ecx
- mov dword ptr [ebp-0x10], ecx
- test esi, esi
+ mov dword ptr [ebp-0x10], edx
+ test edi, edi
jle SHORT G_M33036_IG04
- ;; size=53 bbWeight=1 PerfScore 30.50
-G_M33036_IG03: ; bbWeight=4, gcVars=00000180 {V02 V10}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- mov edx, gword ptr [eax+4*edx+0x08]
- ; gcrRegs +[edx]
- mov gword ptr [ebp-0x1C], edx
- ; GC ptr vars +{V17}
- push edi
- mov ecx, edx
+ ;; size=48 bbWeight=1 PerfScore 27.50
+G_M33036_IG03: ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov ecx, gword ptr [ebx+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, ebx
- mov ebx, gword ptr [ebp-0x1C]
- mov ebx, dword ptr [ebx]
- ; gcrRegs -[ebx]
- mov ebx, dword ptr [ebx+0x44]
- ; GC ptr vars -{V17}
- call [ebx+0x08]<unknown method>
- ; gcrRegs -[eax ecx edx]
- mov ebx, dword ptr [ebp-0x10]
- lea edx, [ebx+0x01]
- mov ebx, edx
- cmp esi, ebx
- mov dword ptr [ebp-0x10], ebx
- mov eax, gword ptr [ebp-0x18]
- ; gcrRegs +[eax]
- jg SHORT G_M33036_IG05
- ;; size=41 bbWeight=4 PerfScore 70.00
+ push esi
+ mov edx, gword ptr [ebp-0x14]
+ ; gcrRegs +[edx]
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x44]
+ call [eax+0x08]<unknown method>
+ ; gcrRegs -[ecx edx]
+ mov eax, dword ptr [ebp-0x10]
+ inc eax
+ mov edx, eax
+ cmp edi, edx
+ mov dword ptr [ebp-0x10], edx
+ jg SHORT G_M33036_IG03
+ ;; size=29 bbWeight=4 PerfScore 59.00
G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
- ; gcrRegs -[eax edi]
- ; GC ptr vars -{V02 V10}
+ ; gcrRegs -[ebx esi]
+ ; GC ptr vars -{V02}
lea esp, [ebp-0x0C]
pop ebx
pop esi
@@ -111,14 +101,7 @@ G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
pop ebp
ret
;; size=8 bbWeight=1 PerfScore 3.50
-G_M33036_IG05: ; bbWeight=2, gcVars=00000180 {V02 V10}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[eax edi]
- ; GC ptr vars +{V02 V10}
- mov ebx, gword ptr [ebp-0x14]
- ; gcrRegs +[ebx]
- jmp SHORT G_M33036_IG03
- ;; size=5 bbWeight=2 PerfScore 6.00
-; Total bytes of code 120, prolog size 9, PerfScore 115.00, instruction count 53, allocated bytes for code 120 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
+; Total bytes of code 98, prolog size 9, PerfScore 95.00, instruction count 45, allocated bytes for code 98 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
; ============================================================
-30 (-16.04%) : 14055.dasm - SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
@@ -9,75 +9,68 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 19, 19 ) byref -> ecx this single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) ushort -> edx single-def
-; V02 arg2 [V02,T06] ( 2, 2 ) ushort -> eax single-def
-; V03 arg3 [V03,T07] ( 2, 2 ) ushort -> esi single-def
-; V04 arg4 [V04,T08] ( 2, 2 ) ushort -> [ebp+0x08] single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ushort -> edx single-def
+; V02 arg2 [V02,T18] ( 1, 1 ) ushort -> [ebp+0x10] single-def
+; V03 arg3 [V03,T19] ( 1, 1 ) ushort -> [ebp+0x0C] single-def
+; V04 arg4 [V04,T20] ( 1, 1 ) ushort -> [ebp+0x08] single-def
; V05 tmp0 [V05,T02] ( 2, 4 ) int -> eax "impAppendStmt"
;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref single-def
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref single-def
;* V08 tmp3 [V08 ] ( 0, 0 ) byref -> zero-ref single-def
;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref single-def
-; V10 tmp5 [V10,T09] ( 2, 2 ) int -> edx
+; V10 tmp5 [V10,T10] ( 2, 2 ) int -> edx
; V11 tmp6 [V11,T03] ( 2, 4 ) int -> eax "impAppendStmt"
;* V12 tmp7 [V12 ] ( 0, 0 ) byref -> zero-ref single-def
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref single-def
;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref single-def
;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref single-def
-; V16 tmp11 [V16,T10] ( 2, 2 ) int -> edx
+; V16 tmp11 [V16,T11] ( 2, 2 ) int -> edx
; V17 tmp12 [V17,T04] ( 2, 4 ) int -> eax "impAppendStmt"
;* V18 tmp13 [V18 ] ( 0, 0 ) byref -> zero-ref single-def
;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref single-def
;* V20 tmp15 [V20 ] ( 0, 0 ) byref -> zero-ref single-def
;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref single-def
-; V22 tmp17 [V22,T11] ( 2, 2 ) int -> edx
+; V22 tmp17 [V22,T12] ( 2, 2 ) int -> edx
; V23 tmp18 [V23,T05] ( 2, 4 ) int -> eax "impAppendStmt"
;* V24 tmp19 [V24 ] ( 0, 0 ) byref -> zero-ref single-def
;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref single-def
;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref single-def
;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref single-def
-; V28 tmp23 [V28,T12] ( 2, 2 ) int -> edx
-; V29 tmp24 [V29,T13] ( 2, 2 ) int -> edx "Inline return value spill temp"
-; V30 tmp25 [V30,T14] ( 2, 2 ) int -> eax "Inline return value spill temp"
-; V31 tmp26 [V31,T15] ( 2, 2 ) int -> edx "Inline return value spill temp"
-; V32 tmp27 [V32,T16] ( 2, 2 ) int -> edx "Inline return value spill temp"
+; V28 tmp23 [V28,T13] ( 2, 2 ) int -> edx
+; V29 tmp24 [V29,T14] ( 2, 2 ) int -> eax "Inline return value spill temp"
+; V30 tmp25 [V30,T15] ( 2, 2 ) int -> eax "Inline return value spill temp"
+; V31 tmp26 [V31,T16] ( 2, 2 ) int -> eax "Inline return value spill temp"
+; V32 tmp27 [V32,T17] ( 2, 2 ) int -> eax "Inline return value spill temp"
+; V33 cse0 [V33,T06] ( 3, 3 ) int -> eax "CSE - unknown"
+; V34 cse1 [V34,T07] ( 3, 3 ) int -> eax "CSE - unknown"
+; V35 cse2 [V35,T08] ( 3, 3 ) int -> eax "CSE - unknown"
+; V36 cse3 [V36,T09] ( 3, 3 ) int -> eax "CSE - unknown"
;
; Lcl frame size = 0
G_M18004_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- push edi
- push esi
- push ebx
- mov eax, dword ptr [ebp+0x10]
- mov esi, dword ptr [ebp+0x0C]
- ;; size=12 bbWeight=1 PerfScore 6.25
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M18004_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref
; byrRegs +[ecx]
- movzx ebx, dx
- movzx edx, dx
- mov edi, 32
- cmp ebx, 32
- cmovg edx, edi
- mov word ptr [ecx], dx
- movzx edx, ax
- movzx eax, ax
- cmp edx, 32
- cmovg eax, edi
+ movzx eax, dx
+ mov edx, 32
+ cmp eax, 32
+ cmovg eax, edx
+ mov word ptr [ecx], ax
+ movzx eax, word ptr [ebp+0x10]
+ cmp eax, 32
+ cmovg eax, edx
mov word ptr [ecx+0x02], ax
- movzx eax, si
- movzx edx, si
+ movzx eax, word ptr [ebp+0x0C]
cmp eax, 32
- cmovg edx, edi
- mov word ptr [ecx+0x04], dx
- movzx edi, word ptr [ebp+0x08]
- movzx eax, di
- movzx edx, di
- mov esi, 32
+ cmovg eax, edx
+ mov word ptr [ecx+0x04], ax
+ movzx eax, word ptr [ebp+0x08]
cmp eax, 32
- cmovg edx, esi
- mov word ptr [ecx+0x06], dx
+ cmovg eax, edx
+ mov word ptr [ecx+0x06], ax
mov byte ptr [ecx+0x08], 0
movzx eax, byte ptr [ecx+0x08]
xor edx, edx
@@ -107,15 +100,12 @@ G_M18004_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {e
movzx edx, dl
add eax, edx
mov byte ptr [ecx+0x08], al
- ;; size=168 bbWeight=1 PerfScore 41.50
+ ;; size=150 bbWeight=1 PerfScore 41.50
G_M18004_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
- pop esi
- pop edi
pop ebp
ret 12
- ;; size=7 bbWeight=1 PerfScore 4.00
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 187, prolog size 6, PerfScore 51.75, instruction count 64, allocated bytes for code 187 (MethodHash=241bb9ab) for method SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
+; Total bytes of code 157, prolog size 3, PerfScore 45.25, instruction count 50, allocated bytes for code 157 (MethodHash=241bb9ab) for method SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
; ============================================================
-7 (-12.50%) : 27789.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
@@ -8,8 +8,9 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 4, 4 ) byte -> ebx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) byte -> esi single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) byte -> edx single-def
; V02 loc0 [V02 ] ( 1, 1 ) struct ( 4) [esp+0x00] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC>
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> esi "CSE - unknown"
;
; Lcl frame size = 4
@@ -20,27 +21,24 @@ G_M51831_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
xor eax, eax
mov dword ptr [esp], eax
mov ebx, ecx
- mov esi, edx
- ;; size=12 bbWeight=1 PerfScore 4.75
+ ;; size=10 bbWeight=1 PerfScore 4.50
G_M51831_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
movsx ecx, bl
push ecx
; npt arg push 0
- mov eax, esi
- movsx ecx, al
- push ecx
+ movsx eax, dl
+ mov esi, eax
+ push esi
; npt arg push 1
lea ecx, [esp+0x08]
mov edx, 0x1A00
call [<unknown method>]
; gcr arg pop 2
- mov edx, esi
- movsx edx, dl
- movsx ecx, bl
+ movsx edx, bl
test eax, eax
- mov eax, ecx
- cmovne eax, edx
- ;; size=40 bbWeight=1 PerfScore 8.00
+ mov eax, edx
+ cmovne eax, esi
+ ;; size=35 bbWeight=1 PerfScore 7.50
G_M51831_IG03: ; bbWeight=1, epilog, nogc, extend
pop ecx
pop ebx
@@ -48,6 +46,6 @@ G_M51831_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 56, prolog size 8, PerfScore 15.25, instruction count 25, allocated bytes for code 56 (MethodHash=bb523588) for method Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
+; Total bytes of code 49, prolog size 8, PerfScore 14.50, instruction count 22, allocated bytes for code 49 (MethodHash=bb523588) for method Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
; ============================================================
+27 (+20.93%) : 23201.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
@@ -7,17 +7,20 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 7, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>
-; V01 arg1 [V01,T00] ( 8, 5.50) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>
-; V02 arg2 [V02,T06] ( 1, 0.50) int -> [ebp+0x08] single-def
+; V00 this [V00,T01] ( 6, 4.50) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>
+; V01 arg1 [V01,T00] ( 7, 5 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>
+; V02 arg2 [V02,T08] ( 1, 0.50) int -> [ebp+0x08] single-def
;* V03 tmp0 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <<unknown class>>
; V05 tmp2 [V05,T02] ( 3, 3 ) ref -> eax single-def "argument with side effect"
; V06 tmp3 [V06,T03] ( 3, 3 ) ref -> eax single-def "argument with side effect"
; V07 tmp4 [V07,T04] ( 3, 3 ) ref -> esi single-def "argument with side effect"
; V08 tmp5 [V08,T05] ( 2, 2 ) ref -> edx single-def "argument with side effect"
+; V09 cse0 [V09,T06] ( 3, 1.50) int -> [ebp-0x10] "CSE - unknown"
+; V10 cse1 [V10,T07] ( 3, 1.50) int -> [ebp-0x14] "CSE - unknown"
+; TEMP_01 ref -> [ebp-0x18]
;
-; Lcl frame size = 0
+; Lcl frame size = 12
G_M10552_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
push ebp
@@ -25,11 +28,14 @@ G_M10552_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
push edi
push esi
push ebx
+ sub esp, 12
+ xor eax, eax
+ mov dword ptr [ebp-0x18], eax
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
- ;; size=10 bbWeight=1 PerfScore 4.75
+ ;; size=18 bbWeight=1 PerfScore 6.25
G_M10552_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
cmp edi, esi
jne SHORT G_M10552_IG05
@@ -39,52 +45,54 @@ G_M10552_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M10552_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M10552_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs +[esi edi]
test esi, esi
je SHORT G_M10552_IG06
mov ecx, esi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0x78]
+ mov ebx, dword ptr [esi]
+ mov dword ptr [ebp-0x10], ebx
+ mov eax, dword ptr [ebx+0x78]
call [eax+0x08]<unknown method>
; gcrRegs -[ecx] +[eax]
- mov ebx, eax
- ; gcrRegs +[ebx]
+ mov gword ptr [ebp-0x18], eax
mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [edi]
- ; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x78]
- call [eax+0x08]<unknown method>
- ; gcrRegs -[ecx] +[eax]
- cmp ebx, eax
+ mov edx, dword ptr [edi]
+ mov dword ptr [ebp-0x14], edx
+ mov ebx, dword ptr [edx+0x78]
+ call [ebx+0x08]<unknown method>
+ ; gcrRegs -[ecx]
+ cmp gword ptr [ebp-0x18], eax
je SHORT G_M10552_IG08
- ;; size=30 bbWeight=0.50 PerfScore 8.62
+ ;; size=38 bbWeight=0.50 PerfScore 10.88
G_M10552_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax ebx esi edi]
+ ; gcrRegs -[eax esi edi]
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M10552_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M10552_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs +[esi edi]
+ mov ebx, dword ptr [ebp-0x10]
mov ecx, esi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0x34]
- call [eax+0x04]<unknown method>
+ mov edx, dword ptr [ebx+0x34]
+ call [edx+0x04]<unknown method>
; gcrRegs -[ecx esi] +[eax]
mov ecx, eax
; gcrRegs +[ecx]
@@ -97,11 +105,12 @@ G_M10552_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e
; gcrRegs +[esi]
mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [edi]
+ mov edi, dword ptr [ebp-0x14]
+ ; gcrRegs -[edi]
+ mov eax, dword ptr [edi+0x34]
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x34]
call [eax+0x04]<unknown method>
- ; gcrRegs -[ecx edi] +[eax]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, eax
; gcrRegs +[ecx]
mov eax, dword ptr [eax]
@@ -119,15 +128,16 @@ G_M10552_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e
mov eax, dword ptr [eax+0x58]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx edx esi]
- ;; size=57 bbWeight=0.50 PerfScore 18.88
+ ;; size=59 bbWeight=0.50 PerfScore 17.88
G_M10552_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
-; Total bytes of code 129, prolog size 6, PerfScore 39.75, instruction count 62, allocated bytes for code 129 (MethodHash=e6fad6c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
+; Total bytes of code 156, prolog size 14, PerfScore 43.25, instruction count 70, allocated bytes for code 156 (MethodHash=e6fad6c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
; ============================================================
+41 (+21.13%) : 25491.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon
@@ -11,19 +11,22 @@
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def
; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx
-; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14]
+; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>>
-; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>>
+; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup"
-; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
+; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup"
+; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; TEMP_02 ref -> [ebp-0x24]
+; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 12
+ sub esp, 28
+ xor eax, eax
+ mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx
mov esi, gword ptr [ebp+0x08]
; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [ecx+0x20]
mov edx, dword ptr [edx+0x08]
@@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000
call CORINFO_HELP_RUNTIMEHANDLE_METHOD
mov edx, eax
;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
@@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this]
; gcrRegs -[eax ecx]
mov ebx, dword ptr [esi+0x04]
- dec ebx
- js SHORT G_M23436_IG10
- ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx
+ lea eax, [ebx-0x01]
+ test eax, eax
+ jl G_M23436_IG10
+ ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08]
- ; gcrRegs +[eax]
- mov ecx, eax
+ mov dword ptr [ebp-0x14], eax
+ mov ebx, gword ptr [esi+4*eax+0x08]
+ ; gcrRegs +[ebx]
+ mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
- ; GC ptr vars +{V04}
- mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30]
call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09}
mov edx, eax
; gcrRegs +[edx]
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this]
; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18]
- push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20]
+ push ebx
push 0
mov edx, eax
mov ecx, edi
; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx]
+ mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
jmp SHORT G_M23436_IG10
;; size=2 bbWeight=1.98 PerfScore 3.96
G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04]
- jae SHORT G_M23436_IG12
- mov eax, gword ptr [esi+4*ebx+0x08]
- ; gcrRegs +[eax]
- mov ecx, eax
+ cmp eax, ebx
+ jae SHORT G_M23436_IG13
+ mov dword ptr [ebp-0x14], eax
+ mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx
+ ; gcrRegs +[edx]
+ mov ecx, edx
+ mov gword ptr [ebp-0x24], ecx
+ mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax]
- mov edx, dword ptr [edx+0x30]
- call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30]
+ mov dword ptr [ebp-0x28], ecx
+ mov ecx, gword ptr [ebp-0x24]
+ ; gcrRegs +[ecx]
+ mov ebx, dword ptr [ebp-0x28]
+ call [ebx+0x14]<unknown method>
+ ; gcrRegs -[ecx edx] +[eax]
+ mov ebx, eax
+ ; gcrRegs +[ebx]
mov ecx, edi
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
- ; GC ptr vars +{V09}
- mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx]
call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this]
; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18]
- push gword ptr [ebp-0x14]
+ push ebx
+ push gword ptr [ebp-0x1C]
push 0
mov edx, eax
mov ecx, edi
; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx]
+ mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09
- ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx
+ jns SHORT G_M23436_IG12
+ ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
mov eax, edi
@@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend
pop ebp
ret 4
;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
+ mov ebx, dword ptr [ebp-0x18]
+ jmp SHORT G_M23436_IG09
+ ;; size=5 bbWeight=0.02 PerfScore 0.06
+G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================
+30 (+21.90%) : 25996.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
@@ -8,24 +8,27 @@
; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 6.50) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]>
-; V01 arg1 [V01,T01] ( 7, 6.50) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess>
+; V00 this [V00,T02] ( 6, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]>
+; V01 arg1 [V01,T00] ( 7, 6.50) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess>
;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
;* V03 tmp0 [V03 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V04 tmp1 [V04 ] ( 0, 0 ) struct ( 4) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
;* V05 tmp2 [V05 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V06 tmp3 [V06,T03] ( 4, 6 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol>
+; V06 tmp3 [V06,T03] ( 4, 6 ) ref -> [ebp-0x14] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol>
; V07 tmp4 [V07,T06] ( 2, 4 ) ref -> eax class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
-; V08 tmp5 [V08,T02] ( 9, 7 ) ref -> [ebp-0x10]
-; V09 tmp6 [V09,T07] ( 2, 3 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V08 tmp5 [V08,T01] ( 9, 7 ) ref -> [ebp-0x18]
+; V09 tmp6 [V09,T08] ( 2, 3 ) ref -> [ebp-0x1C] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref "field V04.array (fldOffset=0x0)" P-INDEP
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref "field V05.array (fldOffset=0x0)" P-INDEP
-; V12 tmp9 [V12,T08] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-;* V13 rat0 [V13,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
-;* V14 rat1 [V14,T09] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V15 rat2 [V15,T04] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V12 tmp9 [V12,T09] ( 2, 2 ) ref -> edx single-def "argument with side effect"
+; V13 cse0 [V13,T07] ( 3, 2.50) int -> [ebp-0x10] spill-single-def "CSE - unknown"
+;* V14 rat0 [V14,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+;* V15 rat1 [V15,T10] ( 0, 0 ) int -> zero-ref "runtime lookup"
+;* V16 rat2 [V16,T04] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; TEMP_02 ref -> [ebp-0x20]
+; TEMP_01 int -> [ebp-0x24]
;
-; Lcl frame size = 4
+; Lcl frame size = 24
G_M1024_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -33,111 +36,121 @@ G_M1024_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- push eax
- mov esi, ecx
- ; gcrRegs +[esi]
- mov edi, edx
+ sub esp, 24
+ xor eax, eax
+ mov dword ptr [ebp-0x20], eax
+ mov edi, ecx
; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.75
+ mov esi, edx
+ ; gcrRegs +[esi]
+ ;; size=18 bbWeight=1 PerfScore 6.25
G_M1024_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi], esi
- mov ebx, gword ptr [edi+0x14]
- ; gcrRegs +[ebx]
- mov ecx, ebx
- ; gcrRegs +[ecx]
- call [Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbolExtensions:GetOwnOrInheritedGetMethod(Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]
- ; gcrRegs -[ecx] +[eax]
- test eax, eax
- jne SHORT G_M1024_IG04
- ;; size=17 bbWeight=1 PerfScore 9.50
-G_M1024_IG03: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
- mov ecx, ebx
- ; gcrRegs +[ecx]
- mov eax, dword ptr [ebx]
- mov eax, dword ptr [eax+0x68]
- call [eax]<unknown method>
- ; gcrRegs -[ecx ebx] +[eax]
- mov ebx, eax
- ; gcrRegs +[ebx]
- mov eax, ebx
- ;; size=13 bbWeight=0.50 PerfScore 3.88
-G_M1024_IG04: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[ebx]
- mov ebx, gword ptr [edi+0x10]
- ; gcrRegs +[ebx]
- test eax, eax
- je SHORT G_M1024_IG11
- ;; size=7 bbWeight=1 PerfScore 3.25
-G_M1024_IG05: ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov ebx, dword ptr [edi]
+ mov dword ptr [ebp-0x10], ebx
+ mov eax, gword ptr [esi+0x14]
+ ; gcrRegs +[eax]
+ mov gword ptr [ebp-0x14], eax
+ ; GC ptr vars +{V06}
mov ecx, eax
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x10], eax
+ call [Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbolExtensions:GetOwnOrInheritedGetMethod(Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]
+ ; gcrRegs -[ecx]
+ test eax, eax
+ jne SHORT G_M1024_IG04
+ ;; size=23 bbWeight=1 PerfScore 10.50
+G_M1024_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[eax]
+ mov ecx, gword ptr [ebp-0x14]
+ ; gcrRegs +[ecx]
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x68]
+ ; GC ptr vars -{V06}
+ call [eax]<unknown method>
+ ; gcrRegs -[ecx] +[eax]
+ ;; size=10 bbWeight=0.50 PerfScore 4.00
+G_M1024_IG04: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov edx, gword ptr [esi+0x10]
+ ; gcrRegs +[edx]
+ mov gword ptr [ebp-0x1C], edx
+ ; GC ptr vars +{V09}
+ test eax, eax
+ je SHORT G_M1024_IG11
+ ;; size=10 bbWeight=1 PerfScore 4.25
+G_M1024_IG05: ; bbWeight=0.50, gcVars=00000100 {V09}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[edx]
+ mov ecx, eax
+ ; gcrRegs +[ecx]
+ mov gword ptr [ebp-0x20], ecx
+ mov gword ptr [ebp-0x18], eax
; GC ptr vars +{V08}
- mov edx, dword ptr [eax]
- mov edx, dword ptr [edx+0x70]
- call [edx+0x10]<unknown method>
+ mov ecx, dword ptr [eax]
+ ; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x70]
+ mov dword ptr [ebp-0x24], ecx
+ mov ecx, gword ptr [ebp-0x20]
+ ; gcrRegs +[ecx]
+ mov ebx, dword ptr [ebp-0x24]
+ call [ebx+0x10]<unknown method>
; gcrRegs -[eax ecx]
cmp eax, 1
je SHORT G_M1024_IG07
- ;; size=18 bbWeight=0.50 PerfScore 4.75
-G_M1024_IG06: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=30 bbWeight=0.50 PerfScore 6.75
+G_M1024_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
push 0
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov edx, ebx
+ mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
- mov ebx, dword ptr [esi]
- ; gcrRegs -[ebx]
+ mov ebx, dword ptr [ebp-0x10]
mov ebx, dword ptr [ebx+0xA8]
+ ; GC ptr vars -{V08 V09}
call [ebx+0x08]<unknown method>
; gcrRegs -[ecx edx]
- ;; size=17 bbWeight=0.50 PerfScore 4.25
+ ;; size=19 bbWeight=0.50 PerfScore 4.12
G_M1024_IG07: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- push gword ptr [edi+0x1C]
- push gword ptr [edi+0x24]
- mov ecx, esi
+ push gword ptr [esi+0x1C]
+ push gword ptr [esi+0x24]
+ mov ecx, edi
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x10]
+ mov edx, gword ptr [ebp-0x18]
; gcrRegs +[edx]
- mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0xAC]
+ mov ebx, dword ptr [ebp-0x10]
+ mov eax, dword ptr [ebx+0xAC]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx edx]
- mov ebx, gword ptr [ebp-0x10]
+ mov ebx, gword ptr [ebp-0x18]
; gcrRegs +[ebx]
test ebx, ebx
je SHORT G_M1024_IG09
- ;; size=29 bbWeight=1 PerfScore 14.50
+ ;; size=30 bbWeight=1 PerfScore 13.50
G_M1024_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
- ; GC ptr vars -{V08}
- mov edx, gword ptr [edi+0x10]
+ mov edx, gword ptr [esi+0x10]
; gcrRegs +[edx]
push ebx
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
call [Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitReceiverAfterCall(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):this]
- ; gcrRegs -[ecx edx ebx edi]
+ ; gcrRegs -[ecx edx ebx esi]
;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M1024_IG09: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M1024_IG09: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
xor eax, eax
; gcrRegs +[eax]
;; size=2 bbWeight=1 PerfScore 0.25
G_M1024_IG10: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret
- ;; size=6 bbWeight=1 PerfScore 3.50
-G_M1024_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[ebx edi]
- mov gword ptr [ebp-0x10], eax
- ; GC ptr vars +{V08}
+ ;; size=8 bbWeight=1 PerfScore 3.50
+G_M1024_IG11: ; bbWeight=0.50, gcVars=00000100 {V09}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs +[esi]
+ ; GC ptr vars +{V08 V09}
+ mov gword ptr [ebp-0x18], eax
jmp SHORT G_M1024_IG06
;; size=5 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 137, prolog size 7, PerfScore 54.25, instruction count 59, allocated bytes for code 137 (MethodHash=c709fbff) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
+; Total bytes of code 167, prolog size 14, PerfScore 57.75, instruction count 66, allocated bytes for code 167 (MethodHash=c709fbff) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
; ============================================================
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
PerfScore Overall (FullOpts) |
benchmarks.run.windows.x86.checked.mch |
3,803 |
1,459 |
2,009 |
335 |
-11,299 |
+32,192 |
-0.1936% |
benchmarks.run_pgo.windows.x86.checked.mch |
26,256 |
9,292 |
13,411 |
3,553 |
-50,561 |
+87,396 |
-0.8251% |
benchmarks.run_tiered.windows.x86.checked.mch |
2,951 |
1,123 |
1,563 |
265 |
-8,504 |
+26,533 |
-0.1727% |
coreclr_tests.run.windows.x86.checked.mch |
90,198 |
38,561 |
41,299 |
10,338 |
-250,036 |
+704,439 |
-0.5953% |
libraries.crossgen2.windows.x86.checked.mch |
20,604 |
9,532 |
8,336 |
2,736 |
-67,051 |
+78,790 |
-0.0514% |
libraries.pmi.windows.x86.checked.mch |
27,958 |
11,595 |
14,384 |
1,979 |
-82,870 |
+248,263 |
-0.1357% |
libraries_tests.run.windows.x86.Release.mch |
54,190 |
19,406 |
31,015 |
3,769 |
-174,418 |
+582,489 |
-0.3666% |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
43,015 |
22,203 |
17,895 |
2,917 |
-178,477 |
+260,079 |
-0.1971% |
realworld.run.windows.x86.checked.mch |
5,459 |
2,186 |
2,893 |
380 |
-20,690 |
+52,022 |
-0.1646% |
|
274,434 |
115,357 |
132,805 |
26,272 |
-843,906 |
+2,072,203 |
|
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.windows.x86.checked.mch |
24,508 |
4 |
24,504 |
0 (0.00%) |
186 (0.75%) |
benchmarks.run_pgo.windows.x86.checked.mch |
123,248 |
42,422 |
80,826 |
0 (0.00%) |
320 (0.26%) |
benchmarks.run_tiered.windows.x86.checked.mch |
48,289 |
29,034 |
19,255 |
0 (0.00%) |
150 (0.31%) |
coreclr_tests.run.windows.x86.checked.mch |
584,120 |
326,271 |
257,849 |
1 (0.00%) |
720 (0.12%) |
libraries.crossgen2.windows.x86.checked.mch |
273,693 |
15 |
273,678 |
0 (0.00%) |
1,002 (0.36%) |
libraries.pmi.windows.x86.checked.mch |
309,736 |
6 |
309,730 |
0 (0.00%) |
1,093 (0.35%) |
libraries_tests.run.windows.x86.Release.mch |
624,996 |
427,538 |
197,458 |
0 (0.00%) |
3,316 (0.53%) |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
315,074 |
21,932 |
293,142 |
0 (0.00%) |
1,776 (0.56%) |
realworld.run.windows.x86.checked.mch |
35,766 |
3 |
35,763 |
0 (0.00%) |
270 (0.75%) |
|
2,339,430 |
847,225 |
1,492,205 |
1 (0.00%) |
8,833 (0.38%) |
jit-analyze output
benchmarks.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 6969637 (overridden on cmd)
Total bytes of diff: 6990530 (overridden on cmd)
Total bytes of delta: 20893 (0.30 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
531 : 2856.dasm (5.64 % of base)
519 : 9308.dasm (1.61 % of base)
451 : 5277.dasm (23.75 % of base)
408 : 24502.dasm (3.78 % of base)
403 : 21105.dasm (3.63 % of base)
356 : 12321.dasm (2.77 % of base)
291 : 16595.dasm (23.95 % of base)
234 : 16026.dasm (6.22 % of base)
233 : 14855.dasm (6.27 % of base)
221 : 13534.dasm (6.18 % of base)
218 : 2247.dasm (5.87 % of base)
207 : 7544.dasm (0.66 % of base)
205 : 19958.dasm (3.58 % of base)
199 : 17283.dasm (5.88 % of base)
187 : 12003.dasm (5.07 % of base)
184 : 20734.dasm (4.75 % of base)
182 : 2855.dasm (3.49 % of base)
173 : 19741.dasm (10.96 % of base)
166 : 14819.dasm (2.59 % of base)
160 : 21074.dasm (1.51 % of base)
Top file improvements (bytes):
-697 : 5286.dasm (-4.43 % of base)
-148 : 8896.dasm (-4.80 % of base)
-133 : 4554.dasm (-2.77 % of base)
-121 : 14350.dasm (-9.71 % of base)
-110 : 24039.dasm (-2.93 % of base)
-106 : 12808.dasm (-3.54 % of base)
-102 : 3371.dasm (-7.52 % of base)
-98 : 6853.dasm (-5.22 % of base)
-95 : 12291.dasm (-2.65 % of base)
-94 : 16883.dasm (-1.64 % of base)
-88 : 12307.dasm (-2.76 % of base)
-81 : 814.dasm (-8.54 % of base)
-81 : 2849.dasm (-1.38 % of base)
-76 : 13072.dasm (-2.25 % of base)
-73 : 19260.dasm (-2.38 % of base)
-72 : 16857.dasm (-1.64 % of base)
-63 : 8741.dasm (-3.71 % of base)
-63 : 10163.dasm (-4.19 % of base)
-58 : 10611.dasm (-4.52 % of base)
-54 : 21905.dasm (-4.59 % of base)
94 total files with Code Size differences (43 improved, 51 regressed), 20 unchanged.
Top method regressions (bytes):
531 (5.64 % of base) : 2856.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
519 (1.61 % of base) : 9308.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
451 (23.75 % of base) : 5277.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
408 (3.78 % of base) : 24502.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
403 (3.63 % of base) : 21105.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (FullOpts)
356 (2.77 % of base) : 12321.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
291 (23.95 % of base) : 16595.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
234 (6.22 % of base) : 16026.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (FullOpts)
233 (6.27 % of base) : 14855.dasm - (dynamicClass):ReadMyEventsListerItemFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
221 (6.18 % of base) : 13534.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
218 (5.87 % of base) : 2247.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts)
207 (0.66 % of base) : 7544.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
205 (3.58 % of base) : 19958.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
199 (5.88 % of base) : 17283.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AfterMembersCompletedChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
187 (5.07 % of base) : 12003.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
184 (4.75 % of base) : 20734.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
182 (3.49 % of base) : 2855.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
173 (10.96 % of base) : 19741.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (FullOpts)
166 (2.59 % of base) : 14819.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
160 (1.51 % of base) : 21074.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (FullOpts)
Top method improvements (bytes):
-697 (-4.43 % of base) : 5286.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
-148 (-4.80 % of base) : 8896.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (FullOpts)
-133 (-2.77 % of base) : 4554.dasm - MicroBenchmarks.Serializers.Location:proto_1(byref,MicroBenchmarks.Serializers.Location) (FullOpts)
-121 (-9.71 % of base) : 14350.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
-110 (-2.93 % of base) : 24039.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
-106 (-3.54 % of base) : 12808.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
-102 (-7.52 % of base) : 3371.dasm - System.UriParser:.cctor() (FullOpts)
-98 (-5.22 % of base) : 6853.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this (FullOpts)
-95 (-2.65 % of base) : 12291.dasm - MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:proto_7(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent) (FullOpts)
-94 (-1.64 % of base) : 16883.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)
-88 (-2.76 % of base) : 12307.dasm - MicroBenchmarks.Serializers.CampaignSummaryViewModel:proto_9(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel) (FullOpts)
-81 (-8.54 % of base) : 814.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (FullOpts)
-81 (-1.38 % of base) : 2849.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
-76 (-2.25 % of base) : 13072.dasm - MicroBenchmarks.Serializers.MyEventsListerItem:proto_7(byref,MicroBenchmarks.Serializers.MyEventsListerItem) (FullOpts)
-73 (-2.38 % of base) : 19260.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseVariableDeclarator(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,int,ubyte,ubyte,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken],byref,ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclaratorSyntax:this (FullOpts)
-72 (-1.64 % of base) : 16857.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:GetMergedGlobalAliasesAndUsings(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:this (FullOpts)
-63 (-3.71 % of base) : 8741.dasm - System.Diagnostics.Tracing.ManifestBuilder:.ctor(System.String,System.Guid,System.String,System.Resources.ResourceManager,int):this (FullOpts)
-63 (-4.19 % of base) : 10163.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<DeserializeAsync>d__1[System.__Canon]:MoveNext():this (FullOpts)
-58 (-4.52 % of base) : 10611.dasm - System.Memory.ReadOnlySequence:GlobalSetup():this (FullOpts)
-54 (-10.84 % of base) : 7202.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:AddCharBuffer(System.Type):this (FullOpts)
Top method regressions (percentages):
291 (23.95 % of base) : 16595.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
451 (23.75 % of base) : 5277.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
28 (23.73 % of base) : 8831.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
28 (23.73 % of base) : 15445.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
41 (21.13 % of base) : 19464.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
22 (20.00 % of base) : 20737.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_0(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts)
82 (19.03 % of base) : 16156.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:ReadAssemblyIdentityOrThrow(System.Reflection.Metadata.MetadataReader):Microsoft.CodeAnalysis.AssemblyIdentity (FullOpts)
11 (18.97 % of base) : 8719.dasm - System.Linq.Enumerable+ConcatNIterator`1[int]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[int]:this (FullOpts)
5 (16.67 % of base) : 14631.dasm - System.Text.StringBuilder:Append(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
147 (16.28 % of base) : 1080.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
27 (16.27 % of base) : 18208.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:SynthesizeNullableAttributeIfNecessary(System.Nullable`1[ubyte],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData:this (FullOpts)
38 (15.77 % of base) : 11415.dasm - System.Xml.XmlWellFormedWriter:StartElementContent():this (FullOpts)
39 (15.73 % of base) : 16690.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (FullOpts)
35 (15.62 % of base) : 2881.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:GetSequence(ubyte[],int):System.Buffers.ReadOnlySequence`1[ubyte] (FullOpts)
17 (15.60 % of base) : 21760.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (FullOpts)
23 (15.33 % of base) : 14771.dasm - Benchstone.BenchI.NDhrystone:Func2(ushort[],ushort[]):ubyte (FullOpts)
23 (15.33 % of base) : 24532.dasm - Benchstone.MDBenchI.MDNDhrystone:Func2(ushort[],ushort[]):ubyte (FullOpts)
10 (15.15 % of base) : 6197.dasm - System.Xml.ValueHandle:GetCharsText():System.String:this (FullOpts)
33 (13.87 % of base) : 24533.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc8(int[],int[,],int,int) (FullOpts)
18 (13.85 % of base) : 20399.dasm - Benchstone.BenchI.TreeSort:Trees(int[]):ubyte (FullOpts)
Top method improvements (percentages):
-22 (-18.33 % of base) : 17193.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-18 (-12.50 % of base) : 15148.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
-25 (-11.90 % of base) : 10733.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
-51 (-11.59 % of base) : 16108.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeChildren(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration]:this (FullOpts)
-27 (-11.54 % of base) : 18075.dasm - System.Reflection.Metadata.BlobBuilder:WriteBytes(ubyte,int):this (FullOpts)
-54 (-10.84 % of base) : 7202.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:AddCharBuffer(System.Type):this (FullOpts)
-23 (-10.70 % of base) : 16974.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol:GetSimpleProgramEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol (FullOpts)
-9 (-10.23 % of base) : 11739.dasm - System.Memory.Span`1[ushort]:IndexOfAnyTwoValues():int:this (FullOpts)
-121 (-9.71 % of base) : 14350.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
-13 (-9.63 % of base) : 807.dasm - System.String:PadRight(int,ushort):System.String:this (FullOpts)
-53 (-9.57 % of base) : 3844.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (FullOpts)
-13 (-9.49 % of base) : 656.dasm - System.String:PadLeft(int,ushort):System.String:this (FullOpts)
-24 (-9.30 % of base) : 6793.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+<>c__DisplayClass12_1:<BuildDeserialize>b__2(System.Collections.Generic.KeyValuePair`2[System.String,int]):this (FullOpts)
-81 (-8.54 % of base) : 814.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (FullOpts)
-5 (-8.47 % of base) : 10285.dasm - System.Xml.XmlConverter:ToChars(long,ubyte[],int):int (FullOpts)
-27 (-8.36 % of base) : 20475.dasm - System.Tests.Perf_Enum:InterpolateIntoStringBuilder[int](System.Text.StringBuilder,int) (FullOpts)
-3 (-8.11 % of base) : 7383.dasm - Sigil.Impl.ExtensionMethods:IsTailableCall(System.Reflection.Emit.OpCode):ubyte (FullOpts)
-8 (-8.08 % of base) : 1072.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
-5 (-7.81 % of base) : 726.dasm - System.String:Equals(System.Object):ubyte:this (FullOpts)
-6 (-7.79 % of base) : 3397.dasm - System.Uri:GetLengthWithoutTrailingSpaces(System.String,byref,int) (FullOpts)
benchmarks.run_pgo.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 47456230 (overridden on cmd)
Total bytes of diff: 47493065 (overridden on cmd)
Total bytes of delta: 36835 (0.08 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
557 : 87610.dasm (6.36 % of base)
535 : 22696.dasm (5.67 % of base)
519 : 31033.dasm (1.61 % of base)
410 : 14978.dasm (20.46 % of base)
387 : 102693.dasm (3.42 % of base)
386 : 119908.dasm (3.50 % of base)
356 : 45696.dasm (2.77 % of base)
265 : 27208.dasm (3.06 % of base)
220 : 81832.dasm (5.27 % of base)
218 : 17917.dasm (5.87 % of base)
207 : 6602.dasm (0.66 % of base)
205 : 91714.dasm (3.58 % of base)
197 : 76261.dasm (5.54 % of base)
190 : 73899.dasm (9.68 % of base)
184 : 97774.dasm (4.75 % of base)
173 : 88993.dasm (10.96 % of base)
168 : 102544.dasm (9.37 % of base)
166 : 65901.dasm (2.59 % of base)
161 : 19217.dasm (3.89 % of base)
160 : 102262.dasm (1.51 % of base)
Top file improvements (bytes):
-146 : 29754.dasm (-4.70 % of base)
-135 : 87005.dasm (-4.42 % of base)
-133 : 17452.dasm (-2.77 % of base)
-110 : 20630.dasm (-17.24 % of base)
-107 : 53391.dasm (-3.63 % of base)
-105 : 6745.dasm (-3.36 % of base)
-105 : 75287.dasm (-1.74 % of base)
-98 : 12371.dasm (-5.22 % of base)
-95 : 46780.dasm (-2.63 % of base)
-84 : 116796.dasm (-2.20 % of base)
-81 : 2273.dasm (-7.63 % of base)
-81 : 22687.dasm (-1.38 % of base)
-76 : 52493.dasm (-2.24 % of base)
-72 : 75176.dasm (-1.64 % of base)
-70 : 69141.dasm (-25.83 % of base)
-67 : 88291.dasm (-10.37 % of base)
-59 : 28228.dasm (-23.51 % of base)
-58 : 91559.dasm (-1.46 % of base)
-54 : 111329.dasm (-4.59 % of base)
-54 : 45009.dasm (-1.57 % of base)
97 total files with Code Size differences (38 improved, 59 regressed), 20 unchanged.
Top method regressions (bytes):
557 (6.36 % of base) : 87610.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)
535 (5.67 % of base) : 22696.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
519 (1.61 % of base) : 31033.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
410 (20.46 % of base) : 14978.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
387 (3.42 % of base) : 102693.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
386 (3.50 % of base) : 119908.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (Tier0-FullOpts)
356 (2.77 % of base) : 45696.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
265 (3.06 % of base) : 27208.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
220 (5.27 % of base) : 81832.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IMethodReference):this (Tier1)
218 (5.87 % of base) : 17917.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (Tier0-FullOpts)
207 (0.66 % of base) : 6602.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
205 (3.58 % of base) : 91714.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
197 (5.54 % of base) : 76261.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AfterMembersCompletedChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
190 (9.68 % of base) : 73899.dasm - Microsoft.CodeAnalysis.PEModule:EnsureForwardTypeToAssemblyMap():this (Tier0-FullOpts)
184 (4.75 % of base) : 97774.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier0-FullOpts)
173 (10.96 % of base) : 88993.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier0-FullOpts)
168 (9.37 % of base) : 102544.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:CreateTypeInfoCore(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo (Tier1)
166 (2.59 % of base) : 65901.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
161 (3.89 % of base) : 19217.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
160 (1.51 % of base) : 102262.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
Top method improvements (bytes):
-146 (-4.70 % of base) : 29754.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (Tier0-FullOpts)
-135 (-4.42 % of base) : 87005.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) (Tier0-FullOpts)
-133 (-2.77 % of base) : 17452.dasm - MicroBenchmarks.Serializers.Location:proto_1(byref,MicroBenchmarks.Serializers.Location) (FullOpts)
-110 (-17.24 % of base) : 20630.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (Tier0-FullOpts)
-107 (-3.63 % of base) : 53391.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
-105 (-3.36 % of base) : 6745.dasm - Jil.Deserialize.InlineDeserializer`1[System.__Canon]:ReadObjectAutomata(System.Type):this (Tier0-FullOpts)
-105 (-1.74 % of base) : 75287.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 (Tier0-FullOpts)
-98 (-5.22 % of base) : 12371.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this (Tier0-FullOpts)
-95 (-2.63 % of base) : 46780.dasm - MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:proto_7(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent) (FullOpts)
-84 (-2.20 % of base) : 116796.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
-81 (-7.63 % of base) : 2273.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (Tier0-FullOpts)
-81 (-1.38 % of base) : 22687.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier0-FullOpts)
-76 (-2.24 % of base) : 52493.dasm - MicroBenchmarks.Serializers.MyEventsListerItem:proto_7(byref,MicroBenchmarks.Serializers.MyEventsListerItem) (FullOpts)
-72 (-1.64 % of base) : 75176.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:GetMergedGlobalAliasesAndUsings(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:this (Tier0-FullOpts)
-70 (-25.83 % of base) : 69141.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
-67 (-10.37 % of base) : 88291.dasm - Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxNodeCache:TryGetNode(int,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode,ubyte,byref):Microsoft.CodeAnalysis.GreenNode (Tier1)
-59 (-23.51 % of base) : 28228.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
-58 (-1.46 % of base) : 91559.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-54 (-1.57 % of base) : 45009.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-54 (-4.59 % of base) : 111329.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.MyEventsListerItemTask:this (Tier0-FullOpts)
Top method regressions (percentages):
65 (24.53 % of base) : 88764.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetCandidateMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,System.String,int,Microsoft.CodeAnalysis.CSharp.Binder):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol] (Tier1)
28 (23.73 % of base) : 30178.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
28 (23.73 % of base) : 70115.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
62 (22.63 % of base) : 120244.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
41 (21.13 % of base) : 87125.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
14 (20.90 % of base) : 24362.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
410 (20.46 % of base) : 14978.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
34 (19.43 % of base) : 36990.dasm - System.Text.RegularExpressions.RegexCharClass:TryGetDoubleRange(System.String,byref,byref):ubyte (Tier1)
24 (19.35 % of base) : 88065.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
11 (18.97 % of base) : 29155.dasm - System.Linq.Enumerable+ConcatNIterator`1[int]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[int]:this (Tier0-FullOpts)
21 (16.80 % of base) : 2947.dasm - System.String:CopyStringContent(System.String,int,System.String) (Tier1)
56 (16.18 % of base) : 53198.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
38 (15.77 % of base) : 41926.dasm - System.Xml.XmlWellFormedWriter:StartElementContent():this (Tier0-FullOpts)
35 (15.62 % of base) : 23390.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:GetSequence(ubyte[],int):System.Buffers.ReadOnlySequence`1[ubyte] (Tier0-FullOpts)
17 (15.60 % of base) : 109958.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (Tier0-FullOpts)
23 (15.33 % of base) : 64965.dasm - Benchstone.BenchI.NDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
23 (15.33 % of base) : 120413.dasm - Benchstone.MDBenchI.MDNDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
88 (14.64 % of base) : 65492.dasm - System.Diagnostics.Tracing.EventParameterInfo:GenerateMetadata(uint,byref,uint):ubyte:this (Tier0-FullOpts)
30 (14.29 % of base) : 88151.dasm - System.Linq.OrderedEnumerable`1[System.__Canon]:GetCount(ubyte):int:this (Tier1)
33 (13.87 % of base) : 120414.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc8(int[],int[,],int,int) (Tier0-FullOpts)
Top method improvements (percentages):
-5 (-29.41 % of base) : 103821.dasm - System.Math:Min(short,short):short (Tier1)
-5 (-29.41 % of base) : 11837.dasm - System.Math:Min(short,short):short (Tier1)
-5 (-29.41 % of base) : 24261.dasm - System.Math:Min(short,short):short (Tier1)
-5 (-29.41 % of base) : 86060.dasm - System.Math:Min(short,short):short (Tier1)
-70 (-25.83 % of base) : 69141.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
-59 (-23.51 % of base) : 28228.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
-3 (-20.00 % of base) : 65533.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
-3 (-20.00 % of base) : 32496.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
-3 (-20.00 % of base) : 71288.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
-3 (-20.00 % of base) : 84065.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
-3 (-20.00 % of base) : 86890.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
-3 (-20.00 % of base) : 122562.dasm - System.Math:Min(short,short):short (Tier1)
-3 (-20.00 % of base) : 44502.dasm - System.Math:Min(short,short):short (Tier1)
-3 (-20.00 % of base) : 60382.dasm - System.Math:Min(short,short):short (Tier1)
-3 (-20.00 % of base) : 114699.dasm - System.Math:Min(short,short):short (Tier1)
-3 (-20.00 % of base) : 119193.dasm - System.Math:Min(short,short):short (Tier1)
-3 (-20.00 % of base) : 120666.dasm - System.Math:Min(short,short):short (Tier1)
-3 (-20.00 % of base) : 60941.dasm - System.Math:Min(short,short):short (Tier1)
-3 (-20.00 % of base) : 83380.dasm - System.Math:Min(short,short):short (Tier1)
-3 (-20.00 % of base) : 90589.dasm - System.Math:Min(short,short):short (Tier1)
benchmarks.run_tiered.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 9351120 (overridden on cmd)
Total bytes of diff: 9369149 (overridden on cmd)
Total bytes of delta: 18029 (0.19 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
531 : 12755.dasm (5.64 % of base)
519 : 18304.dasm (1.61 % of base)
451 : 5024.dasm (23.75 % of base)
408 : 48035.dasm (3.78 % of base)
403 : 44029.dasm (3.63 % of base)
356 : 25508.dasm (2.77 % of base)
291 : 34345.dasm (23.95 % of base)
234 : 32654.dasm (6.22 % of base)
233 : 30130.dasm (6.27 % of base)
221 : 28291.dasm (6.19 % of base)
210 : 17069.dasm (5.83 % of base)
207 : 13998.dasm (0.66 % of base)
205 : 41809.dasm (3.58 % of base)
199 : 35565.dasm (5.88 % of base)
184 : 43145.dasm (4.75 % of base)
182 : 12754.dasm (3.49 % of base)
173 : 41606.dasm (10.96 % of base)
166 : 30375.dasm (2.59 % of base)
160 : 43866.dasm (1.51 % of base)
158 : 7264.dasm (5.43 % of base)
Top file improvements (bytes):
-148 : 17880.dasm (-4.80 % of base)
-133 : 9218.dasm (-2.77 % of base)
-114 : 40264.dasm (-4.01 % of base)
-110 : 47511.dasm (-2.93 % of base)
-106 : 27259.dasm (-3.65 % of base)
-98 : 7692.dasm (-5.22 % of base)
-95 : 25336.dasm (-2.65 % of base)
-94 : 34735.dasm (-1.64 % of base)
-88 : 25417.dasm (-2.76 % of base)
-81 : 12742.dasm (-1.38 % of base)
-81 : 2230.dasm (-8.54 % of base)
-76 : 27313.dasm (-2.25 % of base)
-72 : 34596.dasm (-1.64 % of base)
-63 : 23999.dasm (-4.19 % of base)
-54 : 19080.dasm (-2.70 % of base)
-54 : 47041.dasm (-4.59 % of base)
-53 : 15511.dasm (-9.57 % of base)
-53 : 32572.dasm (-0.81 % of base)
-52 : 35376.dasm (-3.74 % of base)
-52 : 31889.dasm (-2.95 % of base)
94 total files with Code Size differences (44 improved, 50 regressed), 20 unchanged.
Top method regressions (bytes):
531 (5.64 % of base) : 12755.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
519 (1.61 % of base) : 18304.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
451 (23.75 % of base) : 5024.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
408 (3.78 % of base) : 48035.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (Tier0-FullOpts)
403 (3.63 % of base) : 44029.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
356 (2.77 % of base) : 25508.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
291 (23.95 % of base) : 34345.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (Tier1)
234 (6.22 % of base) : 32654.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (Tier0-FullOpts)
233 (6.27 % of base) : 30130.dasm - (dynamicClass):ReadMyEventsListerItemFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
221 (6.19 % of base) : 28291.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
210 (5.83 % of base) : 17069.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (Tier0-FullOpts)
207 (0.66 % of base) : 13998.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
205 (3.58 % of base) : 41809.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
199 (5.88 % of base) : 35565.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AfterMembersCompletedChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
184 (4.75 % of base) : 43145.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier0-FullOpts)
182 (3.49 % of base) : 12754.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
173 (10.96 % of base) : 41606.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier0-FullOpts)
166 (2.59 % of base) : 30375.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
160 (1.51 % of base) : 43866.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
158 (5.43 % of base) : 7264.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) (Tier0-FullOpts)
Top method improvements (bytes):
-148 (-4.80 % of base) : 17880.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (Tier0-FullOpts)
-133 (-2.77 % of base) : 9218.dasm - MicroBenchmarks.Serializers.Location:proto_1(byref,MicroBenchmarks.Serializers.Location) (FullOpts)
-114 (-4.01 % of base) : 40264.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) (Tier0-FullOpts)
-110 (-2.93 % of base) : 47511.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
-106 (-3.65 % of base) : 27259.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
-98 (-5.22 % of base) : 7692.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this (Tier0-FullOpts)
-95 (-2.65 % of base) : 25336.dasm - MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:proto_7(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent) (FullOpts)
-94 (-1.64 % of base) : 34735.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 (Tier0-FullOpts)
-88 (-2.76 % of base) : 25417.dasm - MicroBenchmarks.Serializers.CampaignSummaryViewModel:proto_9(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel) (FullOpts)
-81 (-8.54 % of base) : 2230.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (Tier0-FullOpts)
-81 (-1.38 % of base) : 12742.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier0-FullOpts)
-76 (-2.25 % of base) : 27313.dasm - MicroBenchmarks.Serializers.MyEventsListerItem:proto_7(byref,MicroBenchmarks.Serializers.MyEventsListerItem) (FullOpts)
-72 (-1.64 % of base) : 34596.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:GetMergedGlobalAliasesAndUsings(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:this (Tier0-FullOpts)
-63 (-4.19 % of base) : 23999.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<DeserializeAsync>d__1[System.__Canon]:MoveNext():this (Tier0-FullOpts)
-54 (-2.70 % of base) : 19080.dasm - BilinearTest:BilinearInterpol_Vector(double[],double[],double,double,double[],double,double,double):double[]:this (Tier0-FullOpts)
-54 (-4.59 % of base) : 47041.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.MyEventsListerItemTask:this (Tier0-FullOpts)
-53 (-0.81 % of base) : 32572.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
-53 (-9.57 % of base) : 15511.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (Tier0-FullOpts)
-52 (-3.74 % of base) : 35376.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckNonOverrideMember(Microsoft.CodeAnalysis.CSharp.Symbol,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.OverriddenOrHiddenMembersResult,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref) (Tier0-FullOpts)
-52 (-2.95 % of base) : 31889.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:LexSyntaxTrivia(ubyte,ubyte,byref):this (Tier0-FullOpts)
Top method regressions (percentages):
291 (23.95 % of base) : 34345.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (Tier1)
451 (23.75 % of base) : 5024.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
28 (23.73 % of base) : 18168.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
28 (23.73 % of base) : 31293.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
41 (21.13 % of base) : 40330.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
22 (20.00 % of base) : 43082.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_0(byref,System.Text.RegularExpressions.Match):ubyte:this (Tier1)
11 (18.97 % of base) : 19334.dasm - System.Linq.Enumerable+ConcatNIterator`1[int]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[int]:this (Tier0-FullOpts)
147 (16.28 % of base) : 11751.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Tier0-FullOpts)
27 (16.27 % of base) : 38629.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:SynthesizeNullableAttributeIfNecessary(System.Nullable`1[ubyte],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData:this (Tier1)
38 (15.77 % of base) : 24177.dasm - System.Xml.XmlWellFormedWriter:StartElementContent():this (Tier0-FullOpts)
39 (15.73 % of base) : 34666.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (Tier1)
35 (15.62 % of base) : 12884.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:GetSequence(ubyte[],int):System.Buffers.ReadOnlySequence`1[ubyte] (Tier0-FullOpts)
17 (15.60 % of base) : 44745.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (Tier0-FullOpts)
23 (15.33 % of base) : 30061.dasm - Benchstone.BenchI.NDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
23 (15.33 % of base) : 48070.dasm - Benchstone.MDBenchI.MDNDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
33 (13.87 % of base) : 48071.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc8(int[],int[,],int,int) (Tier0-FullOpts)
18 (13.85 % of base) : 42309.dasm - Benchstone.BenchI.TreeSort:Trees(int[]):ubyte (Tier0-FullOpts)
23 (13.37 % of base) : 43641.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[int]:PushNext(System.Collections.Immutable.ImmutableList`1+Node[int]):this (Tier0-FullOpts)
144 (13.32 % of base) : 44154.dasm - Benchstone.MDBenchF.MDRomber:Test():ubyte:this (Tier0-FullOpts)
108 (13.06 % of base) : 1270.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier0-FullOpts)
Top method improvements (percentages):
-22 (-18.33 % of base) : 35423.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
-18 (-12.50 % of base) : 30662.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
-25 (-11.90 % of base) : 22685.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
-51 (-11.59 % of base) : 32775.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeChildren(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration]:this (Tier0-FullOpts)
-27 (-11.54 % of base) : 38798.dasm - System.Reflection.Metadata.BlobBuilder:WriteBytes(ubyte,int):this (Tier1)
-23 (-10.70 % of base) : 34992.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol:GetSimpleProgramEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol (Tier0-FullOpts)
-23 (-10.27 % of base) : 39052.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitToken(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):this (Tier1)
-53 (-9.57 % of base) : 15511.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (Tier0-FullOpts)
-13 (-9.49 % of base) : 2238.dasm - System.String:PadLeft(int,ushort):System.String:this (Tier1)
-24 (-9.30 % of base) : 7724.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+<>c__DisplayClass12_1:<BuildDeserialize>b__2(System.Collections.Generic.KeyValuePair`2[System.String,int]):this (Tier1)
-7 (-8.75 % of base) : 35933.dasm - Microsoft.CodeAnalysis.Compilation:IsTypeMissing(byte):ubyte:this (Tier1)
-81 (-8.54 % of base) : 2230.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (Tier0-FullOpts)
-3 (-8.11 % of base) : 43942.dasm - Sigil.Impl.ExtensionMethods:IsTailableCall(System.Reflection.Emit.OpCode):ubyte (Tier1)
-8 (-8.08 % of base) : 17408.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
-5 (-7.81 % of base) : 3417.dasm - System.String:Equals(System.Object):ubyte:this (Tier1)
-6 (-7.79 % of base) : 3396.dasm - System.Uri:GetLengthWithoutTrailingSpaces(System.String,byref,int) (Tier0-FullOpts)
-8 (-7.77 % of base) : 237.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
-8 (-7.77 % of base) : 13100.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
-8 (-7.69 % of base) : 8184.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
-19 (-7.34 % of base) : 42339.dasm - JetStream.Statistics:findOptimalSegmentation(double[],JetStream.SampleVarianceUpperTriangularMatrix,int):JetStream.Statistics+OptimalSegmentation (Tier0-FullOpts)
coreclr_tests.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 315999892 (overridden on cmd)
Total bytes of diff: 316454295 (overridden on cmd)
Total bytes of delta: 454403 (0.14 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
6824 : 514642.dasm (4.58 % of base)
6824 : 514647.dasm (4.58 % of base)
6672 : 515039.dasm (6.77 % of base)
6672 : 515053.dasm (6.77 % of base)
6672 : 520711.dasm (6.77 % of base)
6672 : 520713.dasm (6.77 % of base)
5972 : 515175.dasm (4.98 % of base)
5860 : 515111.dasm (4.93 % of base)
3939 : 515143.dasm (3.82 % of base)
3929 : 515079.dasm (3.74 % of base)
2543 : 514829.dasm (2.75 % of base)
2281 : 520745.dasm (14.12 % of base)
2281 : 515155.dasm (14.12 % of base)
2081 : 520726.dasm (12.52 % of base)
2020 : 520737.dasm (13.46 % of base)
2015 : 514843.dasm (1.81 % of base)
2015 : 515488.dasm (1.81 % of base)
1993 : 515087.dasm (11.91 % of base)
1989 : 515107.dasm (13.01 % of base)
1978 : 514850.dasm (1.68 % of base)
Top file improvements (bytes):
-1213 : 350506.dasm (-5.38 % of base)
-697 : 486257.dasm (-4.43 % of base)
-670 : 378717.dasm (-3.34 % of base)
-547 : 470974.dasm (-9.71 % of base)
-496 : 282538.dasm (-26.78 % of base)
-433 : 472165.dasm (-7.36 % of base)
-343 : 283847.dasm (-7.68 % of base)
-343 : 521219.dasm (-7.68 % of base)
-326 : 471983.dasm (-5.13 % of base)
-256 : 204123.dasm (-2.37 % of base)
-256 : 474021.dasm (-2.39 % of base)
-250 : 377459.dasm (-5.67 % of base)
-247 : 474244.dasm (-1.73 % of base)
-239 : 474252.dasm (-1.82 % of base)
-234 : 248182.dasm (-4.52 % of base)
-221 : 476338.dasm (-10.92 % of base)
-206 : 476037.dasm (-8.58 % of base)
-206 : 476145.dasm (-8.58 % of base)
-203 : 383487.dasm (-7.39 % of base)
-192 : 2443.dasm (-6.57 % of base)
95 total files with Code Size differences (49 improved, 46 regressed), 20 unchanged.
Top method regressions (bytes):
6824 (4.58 % of base) : 514642.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
6824 (4.58 % of base) : 514647.dasm - decimalrem:TestEntryPoint():int (FullOpts)
6672 (6.77 % of base) : 515039.dasm - overlddiv:TestEntryPoint():int (FullOpts)
6672 (6.77 % of base) : 520711.dasm - overlddiv:TestEntryPoint():int (FullOpts)
6672 (6.77 % of base) : 515053.dasm - overldrem:TestEntryPoint():int (FullOpts)
6672 (6.77 % of base) : 520713.dasm - overldrem:TestEntryPoint():int (FullOpts)
5972 (4.98 % of base) : 515175.dasm - r8rem:TestEntryPoint():int (FullOpts)
5860 (4.93 % of base) : 515111.dasm - r4rem:TestEntryPoint():int (FullOpts)
3939 (3.82 % of base) : 515143.dasm - r8div:TestEntryPoint():int (FullOpts)
3929 (3.74 % of base) : 515079.dasm - r4div:TestEntryPoint():int (FullOpts)
2543 (2.75 % of base) : 514829.dasm - i4div:TestEntryPoint():int (FullOpts)
2281 (14.12 % of base) : 520745.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
2281 (14.12 % of base) : 515155.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
2081 (12.52 % of base) : 520726.dasm - r4NaNadd:TestEntryPoint():int (FullOpts)
2020 (13.46 % of base) : 520737.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
2015 (1.81 % of base) : 514843.dasm - i8div:TestEntryPoint():int (FullOpts)
2015 (1.81 % of base) : 515488.dasm - u8div:TestEntryPoint():int (FullOpts)
1993 (11.91 % of base) : 515087.dasm - r4NaNadd:TestEntryPoint():int (FullOpts)
1989 (13.01 % of base) : 515107.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
1978 (1.68 % of base) : 514850.dasm - i8rem:TestEntryPoint():int (FullOpts)
Top method improvements (bytes):
-1213 (-5.38 % of base) : 350506.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-697 (-4.43 % of base) : 486257.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
-670 (-3.34 % of base) : 378717.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-547 (-9.71 % of base) : 470974.dasm - div_r4._div:main():int (FullOpts)
-496 (-26.78 % of base) : 282538.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (Tier1)
-433 (-7.36 % of base) : 472165.dasm - sub_r4._sub:main():int (FullOpts)
-343 (-7.68 % of base) : 521219.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (FullOpts)
-343 (-7.68 % of base) : 283847.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (Tier0-FullOpts)
-326 (-5.13 % of base) : 471983.dasm - mul_r4._mul:main():int (FullOpts)
-256 (-2.39 % of base) : 474021.dasm - Dynamic.CollectionTest:CustomCollection():this (FullOpts)
-256 (-2.37 % of base) : 204123.dasm - Dynamic.CollectionTest:CustomCollection():this (Tier0-FullOpts)
-250 (-5.67 % of base) : 377459.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Tier1)
-247 (-1.73 % of base) : 474244.dasm - Dynamic.EventTest:MultipleHandlers():this (FullOpts)
-239 (-1.82 % of base) : 474252.dasm - Dynamic.EventTest:MultipleSources():this (FullOpts)
-234 (-4.52 % of base) : 248182.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (Instrumented Tier1)
-221 (-10.92 % of base) : 476338.dasm - Vector2_3_4Test:RunVector4Tests() (FullOpts)
-206 (-8.58 % of base) : 476037.dasm - GenericsTest:TestVector256F() (FullOpts)
-206 (-8.58 % of base) : 476145.dasm - GenericsTest:TestVectorF256() (FullOpts)
-203 (-7.39 % of base) : 383487.dasm - XUnitWrapperLibrary.TestSummary:GetTestResultOutput(System.String):System.String:this (FullOpts)
-192 (-6.57 % of base) : 2443.dasm - XUnitWrapperLibrary.TestSummary:GetTestResultOutput(System.String):System.String:this (Tier0-FullOpts)
Top method regressions (percentages):
332 (41.81 % of base) : 528516.dasm - Test+Matrix4x4:TestEntryPoint():int (FullOpts)
678 (37.73 % of base) : 583238.dasm - X:SetDirect(System.String,ubyte):ubyte (FullOpts)
68 (29.44 % of base) : 515980.dasm - structinreg.Program1:test15(structinreg.Test15):int (FullOpts)
32 (27.59 % of base) : 513573.dasm - Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
32 (27.59 % of base) : 519759.dasm - Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
68 (27.31 % of base) : 515977.dasm - structinreg.Program1:test4(structinreg.Test4):int (FullOpts)
321 (26.18 % of base) : 584132.dasm - Value0:CheckValues():ubyte:this (FullOpts)
321 (24.26 % of base) : 584134.dasm - Value1:CheckValues():ubyte:this (FullOpts)
321 (24.26 % of base) : 584136.dasm - Value2:CheckValues():ubyte:this (FullOpts)
321 (24.26 % of base) : 584138.dasm - Value3:CheckValues():ubyte:this (FullOpts)
321 (24.26 % of base) : 584140.dasm - Value4:CheckValues():ubyte:this (FullOpts)
321 (24.26 % of base) : 584142.dasm - Value5:CheckValues():ubyte:this (FullOpts)
6 (24.00 % of base) : 477513.dasm - Point:DistanceSquared(Point):int:this (FullOpts)
291 (23.95 % of base) : 486833.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
451 (23.75 % of base) : 486249.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
41 (21.13 % of base) : 489289.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
41 (21.13 % of base) : 237851.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
59 (21.00 % of base) : 584781.dasm - Microsoft.Diagnostics.Tracing.TraceEvent:XmlAttribHex(System.Text.StringBuilder,System.String,ulong):System.Text.StringBuilder (FullOpts)
14 (20.90 % of base) : 228167.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
58 (20.64 % of base) : 371848.dasm - Microsoft.Build.Evaluation.SemiColonTokenizer+Enumerator:MoveNext():ubyte:this (Tier0-FullOpts)
Top method improvements (percentages):
-5 (-29.41 % of base) : 50004.dasm - System.Math:Max(byte,byte):byte (Tier1)
-5 (-29.41 % of base) : 49992.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
-496 (-26.78 % of base) : 282538.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (Tier1)
-125 (-20.29 % of base) : 228962.dasm - System.String:CompareOrdinalHelper(System.String,System.String):int (Instrumented Tier1)
-3 (-20.00 % of base) : 231000.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
-3 (-20.00 % of base) : 282392.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
-11 (-18.97 % of base) : 228240.dasm - Tests_len3_6:Test_tst_29(System.String):ubyte (FullOpts)
-11 (-18.97 % of base) : 228689.dasm - Tests_len34_13:Test_tst_29(System.String):ubyte (FullOpts)
-11 (-18.97 % of base) : 228302.dasm - Tests_len4_7:Test_tst_29(System.String):ubyte (FullOpts)
-11 (-18.97 % of base) : 228364.dasm - Tests_len5_8:Test_tst_29(System.String):ubyte (FullOpts)
-22 (-18.33 % of base) : 487447.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-22 (-18.33 % of base) : 233776.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
-120 (-16.76 % of base) : 471993.dasm - neg_r4._neg:main():int (FullOpts)
-102 (-14.01 % of base) : 371711.dasm - System.Threading.ReaderWriterLockSlim:ExitWriteLock():this (Instrumented Tier1)
-16 (-13.56 % of base) : 581352.dasm - ILCompiler.RuntimeDeterminedTypeHelper:GetHashCode(Internal.TypeSystem.MethodDesc):int (FullOpts)
-184 (-13.29 % of base) : 472213.dasm - TestCasts.Program:TestConvertFromFloatToI1() (FullOpts)
-35 (-13.16 % of base) : 472573.dasm - Xunit.AssertExtensions:CollectionEqual[System.__Canon](System.__Canon[],System.__Canon[]) (FullOpts)
-35 (-13.16 % of base) : 204183.dasm - Xunit.AssertExtensions:CollectionEqual[System.__Canon](System.__Canon[],System.__Canon[]) (Tier0-FullOpts)
-48 (-13.08 % of base) : 584426.dasm - Tracing.Tests.Listener+<GetFailedTargetEvents>d__17:MoveNext():ubyte:this (FullOpts)
-8 (-12.90 % of base) : 529974.dasm - ILGEN_0xc2f3d0c8:Method_0x5cc2(double):int (FullOpts)
libraries.crossgen2.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 35570616 (overridden on cmd)
Total bytes of diff: 35582355 (overridden on cmd)
Total bytes of delta: 11739 (0.03 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
836 : 247027.dasm (12.23 % of base)
457 : 228421.dasm (2.07 % of base)
368 : 251772.dasm (19.82 % of base)
335 : 36247.dasm (6.09 % of base)
333 : 254588.dasm (15.50 % of base)
282 : 116211.dasm (0.42 % of base)
265 : 75757.dasm (2.63 % of base)
233 : 23260.dasm (11.92 % of base)
224 : 186326.dasm (5.75 % of base)
224 : 145190.dasm (5.75 % of base)
208 : 74597.dasm (10.12 % of base)
201 : 257002.dasm (7.56 % of base)
201 : 238596.dasm (7.56 % of base)
188 : 173528.dasm (6.21 % of base)
176 : 37918.dasm (3.07 % of base)
176 : 70583.dasm (3.07 % of base)
170 : 25395.dasm (0.28 % of base)
163 : 36354.dasm (14.17 % of base)
162 : 111380.dasm (4.51 % of base)
161 : 5092.dasm (9.53 % of base)
Top file improvements (bytes):
-484 : 115281.dasm (-2.65 % of base)
-396 : 36577.dasm (-8.68 % of base)
-383 : 274183.dasm (-8.05 % of base)
-381 : 133189.dasm (-7.99 % of base)
-281 : 41039.dasm (-1.29 % of base)
-281 : 73591.dasm (-1.29 % of base)
-180 : 192726.dasm (-6.11 % of base)
-175 : 35270.dasm (-1.24 % of base)
-170 : 192911.dasm (-8.59 % of base)
-150 : 176676.dasm (-15.56 % of base)
-150 : 134906.dasm (-15.56 % of base)
-146 : 192628.dasm (-4.85 % of base)
-139 : 151068.dasm (-7.60 % of base)
-120 : 17481.dasm (-7.36 % of base)
-119 : 109546.dasm (-4.94 % of base)
-108 : 191860.dasm (-9.51 % of base)
-102 : 227904.dasm (-6.25 % of base)
-102 : 135123.dasm (-11.81 % of base)
-102 : 176876.dasm (-11.46 % of base)
-102 : 35475.dasm (-8.19 % of base)
94 total files with Code Size differences (43 improved, 51 regressed), 20 unchanged.
Top method regressions (bytes):
836 (12.23 % of base) : 247027.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
457 (2.07 % of base) : 228421.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)
368 (19.82 % of base) : 251772.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
335 (6.09 % of base) : 36247.dasm - System.Data.RBTree`1[int]:RBInsert(int,int,int,int,ubyte):int:this (FullOpts)
333 (15.50 % of base) : 254588.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:LoadPropertyMappingTable(int,System.Object[,]) (FullOpts)
282 (0.42 % of base) : 116211.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
265 (2.63 % of base) : 75757.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)
233 (11.92 % of base) : 23260.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
224 (5.75 % of base) : 186326.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
224 (5.75 % of base) : 145190.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
208 (10.12 % of base) : 74597.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):this (FullOpts)
201 (7.56 % of base) : 257002.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (FullOpts)
201 (7.56 % of base) : 238596.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (FullOpts)
188 (6.21 % of base) : 173528.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:InferTypeArgumentsFromLambdaArgument(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol):ubyte:this (FullOpts)
176 (3.07 % of base) : 70583.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1055_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
176 (3.07 % of base) : 37918.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1056_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
170 (0.28 % of base) : 25395.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
163 (14.17 % of base) : 36354.dasm - System.Data.ForeignKeyConstraint:CascadeUpdate(System.Data.DataRow):this (FullOpts)
162 (4.51 % of base) : 111380.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this (FullOpts)
161 (9.53 % of base) : 5092.dasm - System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
Top method improvements (bytes):
-484 (-2.65 % of base) : 115281.dasm - Microsoft.Diagnostics.Tracing.Parsers.MicrosoftAntimalwareEngineTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
-396 (-8.68 % of base) : 36577.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
-383 (-8.05 % of base) : 274183.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
-381 (-7.99 % of base) : 133189.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
-281 (-1.29 % of base) : 41039.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)
-281 (-1.29 % of base) : 73591.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)
-180 (-6.11 % of base) : 192726.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
-175 (-1.24 % of base) : 35270.dasm - System.Data.BinaryNode:EvalBinaryOp(int,System.Data.ExpressionNode,System.Data.ExpressionNode,System.Data.DataRow,int,int[]):System.Object:this (FullOpts)
-170 (-8.59 % of base) : 192911.dasm - Newtonsoft.Json.Utilities.JavaScriptUtils:WriteEscapedJavaScriptString(System.IO.TextWriter,System.String,ushort,ubyte,ubyte[],int,Newtonsoft.Json.IArrayPool`1[ushort],byref) (FullOpts)
-150 (-15.56 % of base) : 176676.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
-150 (-15.56 % of base) : 134906.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
-146 (-4.85 % of base) : 192628.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
-139 (-7.60 % of base) : 151068.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSignatureComparer:DetailedParameterCompare(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol],byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol],byref,int,int):int (FullOpts)
-120 (-7.36 % of base) : 17481.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
-119 (-4.94 % of base) : 109546.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteEnumMethod(System.Xml.Serialization.EnumMapping):this (FullOpts)
-108 (-9.51 % of base) : 191860.dasm - Newtonsoft.Json.JsonConvert:ToString(System.Object):System.String (FullOpts)
-102 (-11.81 % of base) : 135123.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
-102 (-11.46 % of base) : 176876.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
-102 (-8.19 % of base) : 35475.dasm - System.Data.Common.SqlConvert:ConvertToSqlDouble(System.Object):System.Data.SqlTypes.SqlDouble (FullOpts)
-102 (-6.25 % of base) : 227904.dasm - System.Data.OleDb.ColumnBinding:Value(System.Object):this (FullOpts)
Top method regressions (percentages):
11 (44.00 % of base) : 165351.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
11 (44.00 % of base) : 165333.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
11 (44.00 % of base) : 165332.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
11 (44.00 % of base) : 165352.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
46 (29.87 % of base) : 105829.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
57 (27.54 % of base) : 240742.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (FullOpts)
18 (24.00 % of base) : 113336.dasm - Microsoft.Diagnostics.Tracing.StartStopActivityComputer:<.ctor>b__0_0(Microsoft.Diagnostics.Tracing.Etlx.TraceActivity,Microsoft.Diagnostics.Tracing.TraceEvent):this (FullOpts)
20 (23.81 % of base) : 143689.dasm - Microsoft.CodeAnalysis.BatchNode`1[System.__Canon]:WithTrackingName(System.String):Microsoft.CodeAnalysis.IIncrementalGeneratorNode`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
20 (23.81 % of base) : 184841.dasm - Microsoft.CodeAnalysis.BatchNode`1[System.__Canon]:WithTrackingName(System.String):Microsoft.CodeAnalysis.IIncrementalGeneratorNode`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
27 (22.88 % of base) : 143331.dasm - Microsoft.CodeAnalysis.IOperation+OperationList+Reversed:<ToImmutableArray>g__reverseArray|5_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] (FullOpts)
27 (22.88 % of base) : 184498.dasm - Microsoft.CodeAnalysis.IOperation+OperationList+Reversed:<ToImmutableArray>g__reverseArray|5_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] (FullOpts)
8 (21.62 % of base) : 37005.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
8 (21.62 % of base) : 69652.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
8 (21.62 % of base) : 264294.dasm - System.Speech.Internal.Synthesis.WaveHeader:ReleaseData():this (FullOpts)
9 (21.43 % of base) : 270676.dasm - System.Net.NameResolutionPal+GetAddrInfoExState:UnregisterAndGetCancellationToken():System.Threading.CancellationToken:this (FullOpts)
27 (20.77 % of base) : 161621.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:IsIdentifier(System.String):ubyte (FullOpts)
35 (20.11 % of base) : 25998.dasm - Microsoft.FSharp.Quotations.PatternsModule+ByteStream:ReadBytes(int):ubyte[]:this (FullOpts)
12 (20.00 % of base) : 191240.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.__Canon[],int,int) (FullOpts)
22 (20.00 % of base) : 247207.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_0(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts)
368 (19.82 % of base) : 251772.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
Top method improvements (percentages):
-7 (-21.88 % of base) : 242109.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
-6 (-18.75 % of base) : 226061.dasm - System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
-6 (-18.18 % of base) : 135342.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
-6 (-18.18 % of base) : 177067.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
-14 (-18.18 % of base) : 218883.dasm - System.ComponentModel.DoubleConverter:ToString(System.Object,System.Globalization.NumberFormatInfo):System.String:this (FullOpts)
-14 (-17.50 % of base) : 261254.dasm - System.DirectoryServices.SearchResultCollection:get_SearchObject():System.DirectoryServices.UnsafeNativeMethods+IDirectorySearch:this (FullOpts)
-38 (-16.03 % of base) : 36628.dasm - System.Data.RBTree`1[int]:RecomputeSize(int):this (FullOpts)
-38 (-16.03 % of base) : 36586.dasm - System.Data.RBTree`1[System.__Canon]:RecomputeSize(int):this (FullOpts)
-6 (-15.79 % of base) : 34370.dasm - System.Data.Common.Int32Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
-6 (-15.79 % of base) : 34454.dasm - System.Data.Common.SingleStorage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
-6 (-15.79 % of base) : 34522.dasm - System.Data.Common.UInt32Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
-6 (-15.79 % of base) : 248459.dasm - System.Data.Odbc.OdbcDataReader:GetInt32(int):int:this (FullOpts)
-35 (-15.77 % of base) : 170841.dasm - Microsoft.CodeAnalysis.Operations.VisualBasicOperationFactory:CreateBoundLateMemberAccessOperation(Microsoft.CodeAnalysis.VisualBasic.BoundLateMemberAccess):Microsoft.CodeAnalysis.Operations.IDynamicMemberReferenceOperation:this (FullOpts)
-8 (-15.69 % of base) : 242213.dasm - System.Dynamic.DynamicObject+MetaDynamic:GetDynamicMemberNames():System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
-150 (-15.56 % of base) : 176676.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
-150 (-15.56 % of base) : 134906.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
-6 (-15.38 % of base) : 177077.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:IsNotConfigurable():ubyte:this (FullOpts)
-6 (-15.38 % of base) : 33761.dasm - System.Data.Common.CharStorage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
-6 (-15.38 % of base) : 34357.dasm - System.Data.Common.Int16Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
-6 (-15.38 % of base) : 34509.dasm - System.Data.Common.UInt16Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
libraries.pmi.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 48824461 (overridden on cmd)
Total bytes of diff: 48989854 (overridden on cmd)
Total bytes of delta: 165393 (0.34 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
534 : 186908.dasm (2.20 % of base)
533 : 115.dasm (5.66 % of base)
451 : 201970.dasm (23.75 % of base)
449 : 176900.dasm (31.29 % of base)
449 : 55596.dasm (9.91 % of base)
393 : 123740.dasm (13.12 % of base)
374 : 186922.dasm (8.28 % of base)
365 : 134029.dasm (10.40 % of base)
358 : 190584.dasm (14.55 % of base)
348 : 79758.dasm (5.22 % of base)
343 : 237418.dasm (15.29 % of base)
334 : 138146.dasm (10.79 % of base)
324 : 144984.dasm (12.08 % of base)
324 : 106687.dasm (12.08 % of base)
314 : 40272.dasm (3.72 % of base)
312 : 138167.dasm (11.28 % of base)
308 : 133436.dasm (10.73 % of base)
299 : 68149.dasm (7.52 % of base)
299 : 270316.dasm (13.19 % of base)
291 : 108916.dasm (23.95 % of base)
Top file improvements (bytes):
-961 : 70380.dasm (-17.14 % of base)
-697 : 201975.dasm (-4.43 % of base)
-422 : 69433.dasm (-10.03 % of base)
-414 : 75271.dasm (-8.85 % of base)
-401 : 69425.dasm (-9.43 % of base)
-383 : 303145.dasm (-8.06 % of base)
-381 : 143146.dasm (-8.00 % of base)
-367 : 75667.dasm (-3.85 % of base)
-343 : 33718.dasm (-1.49 % of base)
-335 : 69763.dasm (-8.42 % of base)
-327 : 62829.dasm (-7.17 % of base)
-319 : 230254.dasm (-8.28 % of base)
-319 : 216574.dasm (-8.28 % of base)
-318 : 69764.dasm (-7.37 % of base)
-318 : 82585.dasm (-6.85 % of base)
-299 : 175166.dasm (-11.88 % of base)
-293 : 75414.dasm (-3.77 % of base)
-293 : 75417.dasm (-5.95 % of base)
-266 : 79571.dasm (-11.57 % of base)
-248 : 97867.dasm (-7.12 % of base)
93 total files with Code Size differences (44 improved, 49 regressed), 20 unchanged.
Top method regressions (bytes):
534 (2.20 % of base) : 186908.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)
533 (5.66 % of base) : 115.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
451 (23.75 % of base) : 201970.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
449 (31.29 % of base) : 176900.dasm - Internal.JitInterface.CorInfoImpl:ComputeJitPgoInstrumentationSchema(System.Func`2[System.Object,int],Internal.Pgo.PgoSchemaElem[],byref,System.IO.MemoryStream,System.Func`2[Internal.TypeSystem.TypeDesc,ubyte]) (FullOpts)
449 (9.91 % of base) : 55596.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEDeltaAssemblyBuilder:GetSynthesizedTypesFromMetadata(System.Reflection.Metadata.MetadataReader,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder):Microsoft.CodeAnalysis.Emit.SynthesizedTypeMaps (FullOpts)
393 (13.12 % of base) : 123740.dasm - Microsoft.Diagnostics.Tracing.UnhandledTraceEvent:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
374 (8.28 % of base) : 186922.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
365 (10.40 % of base) : 134029.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
358 (14.55 % of base) : 190584.dasm - Newtonsoft.Json.Schema.JsonSchemaWriter:WriteSchema(Newtonsoft.Json.Schema.JsonSchema):this (FullOpts)
348 (5.22 % of base) : 79758.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:DecodeWellKnownAttributeAppliedToMethod(byref):this (FullOpts)
343 (15.29 % of base) : 237418.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFilterBuilder(System.String,System.DateTime,System.DateTime,ubyte,int):System.String (FullOpts)
334 (10.79 % of base) : 138146.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
324 (12.08 % of base) : 144984.dasm - Microsoft.Cci.TypeNameSerializer:GetSerializedTypeName(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.String (FullOpts)
324 (12.08 % of base) : 106687.dasm - Microsoft.Cci.TypeNameSerializer:GetSerializedTypeName(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.String (FullOpts)
314 (3.72 % of base) : 40272.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)
312 (11.28 % of base) : 138167.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData:ToXml(int,System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
308 (10.73 % of base) : 133436.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.EventTraceHeaderTraceData:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
299 (7.52 % of base) : 68149.dasm - System.Data.XmlDataTreeWriter:XmlDataRowWriter(System.Data.DataRow,System.String):this (FullOpts)
299 (13.19 % of base) : 270316.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)
291 (23.95 % of base) : 108916.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
Top method improvements (bytes):
-961 (-17.14 % of base) : 70380.dasm - System.Data.RBTree`1[ubyte]:RBDeleteX(int,int,int):int:this (FullOpts)
-697 (-4.43 % of base) : 201975.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
-422 (-10.03 % of base) : 69433.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
-414 (-8.85 % of base) : 75271.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindNameOfExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.NameOfExpressionSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
-401 (-9.43 % of base) : 69425.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
-383 (-8.06 % of base) : 303145.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
-381 (-8.00 % of base) : 143146.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
-367 (-3.85 % of base) : 75667.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,int,int,int,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.MemberModifiers:this (FullOpts)
-343 (-1.49 % of base) : 33718.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)
-335 (-8.42 % of base) : 69763.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
-327 (-7.17 % of base) : 62829.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
-319 (-8.28 % of base) : 230254.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSection,int):System.String:this (FullOpts)
-319 (-8.28 % of base) : 216574.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSection,int):System.String:this (FullOpts)
-318 (-6.85 % of base) : 82585.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.VisualBasic.BoundArrayAccess,ubyte):this (FullOpts)
-318 (-7.37 % of base) : 69764.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
-299 (-11.88 % of base) : 175166.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteDerivedSerializable(System.Xml.Serialization.SerializableMapping,System.Xml.Serialization.SerializableMapping,System.String,ubyte):this (FullOpts)
-293 (-3.77 % of base) : 75414.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureAndProduceBoundNode(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.VisualBasic.BoundTypeExpression,Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.Location):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
-293 (-5.95 % of base) : 75417.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASetOfCandidates(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
-266 (-11.57 % of base) : 79571.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:CheckStructureCircularity(Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):ubyte:this (FullOpts)
-248 (-7.12 % of base) : 97867.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:LateMakeArgumentArrayArgument(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
Top method regressions (percentages):
59 (33.15 % of base) : 204226.dasm - Microsoft.Build.Framework.TargetFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
59 (33.15 % of base) : 204267.dasm - Microsoft.Build.Framework.TaskFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
53 (32.12 % of base) : 204163.dasm - Microsoft.Build.Framework.PropertyInitialValueSetEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
449 (31.29 % of base) : 176900.dasm - Internal.JitInterface.CorInfoImpl:ComputeJitPgoInstrumentationSchema(System.Func`2[System.Object,int],Internal.Pgo.PgoSchemaElem[],byref,System.IO.MemoryStream,System.Func`2[Internal.TypeSystem.TypeDesc,ubyte]) (FullOpts)
59 (30.89 % of base) : 204316.dasm - Microsoft.Build.Framework.TaskStartedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
46 (29.30 % of base) : 171467.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
274 (28.60 % of base) : 303258.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
274 (28.60 % of base) : 229280.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
29 (24.58 % of base) : 249769.dasm - System.Linq.Enumerable+ListPartition`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
22 (24.44 % of base) : 203993.dasm - Microsoft.Build.Framework.ExternalProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
22 (24.44 % of base) : 204129.dasm - Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
15 (24.19 % of base) : 174250.dasm - System.Xml.Serialization.SchemaObjectWriter:WriteIndent():this (FullOpts)
23 (23.96 % of base) : 231797.dasm - System.Data.Odbc.CStringTokenizer:GetTokenFromBracket(int):int:this (FullOpts)
291 (23.95 % of base) : 108916.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
291 (23.95 % of base) : 147126.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
451 (23.75 % of base) : 201970.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
29 (21.80 % of base) : 123854.dasm - Microsoft.Diagnostics.Tracing.Utilities.FastStream:ReadAsciiStringUpToAny(System.String,System.Text.StringBuilder):this (FullOpts)
54 (21.77 % of base) : 272818.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (FullOpts)
26 (21.67 % of base) : 170478.dasm - System.Xml.Xsl.Xslt.XslAstAnalyzer+XPathAnalyzer:ResolvePrefix(System.String):System.String:this (FullOpts)
23 (21.50 % of base) : 296578.dasm - Microsoft.Extensions.Hosting.HostApplicationBuilder+<>c__DisplayClass30_0`1[System.__Canon]:<ConfigureContainer>b__0():System.IServiceProvider:this (FullOpts)
Top method improvements (percentages):
-10 (-45.45 % of base) : 74104.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
-10 (-45.45 % of base) : 74100.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
-10 (-45.45 % of base) : 74096.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
-10 (-45.45 % of base) : 74157.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
-10 (-38.46 % of base) : 74048.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
-10 (-38.46 % of base) : 74041.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
-10 (-38.46 % of base) : 74137.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[short]:Invoke(short,short):short (FullOpts)
-7 (-36.84 % of base) : 11420.dasm - System.Diagnostics.Tracing.Statics:Combine(int,ubyte):ubyte (FullOpts)
-3 (-20.00 % of base) : 74161.dasm - System.Numerics.Tensors.TensorPrimitives+MinMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
-3 (-20.00 % of base) : 74153.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
-22 (-18.33 % of base) : 59014.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-119 (-18.25 % of base) : 174932.dasm - System.Xml.Serialization.XmlSchemas:IsDataSet(System.Xml.Schema.XmlSchema):ubyte (FullOpts)
-10 (-17.54 % of base) : 246058.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
-961 (-17.14 % of base) : 70380.dasm - System.Data.RBTree`1[ubyte]:RBDeleteX(int,int,int):int:this (FullOpts)
-7 (-16.28 % of base) : 28111.dasm - Microsoft.FSharp.Core.Operators+NonStructuralComparison:Min$W[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[ubyte,ubyte]],ubyte,ubyte):ubyte (FullOpts)
-17 (-16.19 % of base) : 245491.dasm - System.Linq.Expressions.Interpreter.CastInstruction+CastInstructionT`1[System.__Canon]:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
-38 (-16.10 % of base) : 70350.dasm - System.Data.RBTree`1[System.__Canon]:RecomputeSize(int):this (FullOpts)
-38 (-16.10 % of base) : 70411.dasm - System.Data.RBTree`1[ubyte]:RecomputeSize(int):this (FullOpts)
-206 (-15.97 % of base) : 242141.dasm - System.IO.Packaging.ZipPackage+ContentTypeHelper:ParseContentTypesFile(System.Collections.ObjectModel.ReadOnlyCollection`1[System.IO.Compression.ZipArchiveEntry]):this (FullOpts)
-3 (-15.79 % of base) : 74130.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
libraries_tests.run.windows.x86.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 181401826 (overridden on cmd)
Total bytes of diff: 181809897 (overridden on cmd)
Total bytes of delta: 408071 (0.22 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1074 : 444438.dasm (6.85 % of base)
1074 : 443697.dasm (6.87 % of base)
954 : 178424.dasm (1.42 % of base)
738 : 226286.dasm (6.53 % of base)
738 : 409641.dasm (6.53 % of base)
726 : 604468.dasm (12.44 % of base)
718 : 280079.dasm (14.88 % of base)
686 : 280099.dasm (14.68 % of base)
605 : 82769.dasm (9.31 % of base)
596 : 402035.dasm (7.86 % of base)
596 : 402038.dasm (8.51 % of base)
596 : 57361.dasm (7.40 % of base)
596 : 402039.dasm (8.53 % of base)
546 : 280102.dasm (14.86 % of base)
544 : 594896.dasm (12.17 % of base)
537 : 7542.dasm (5.67 % of base)
529 : 625969.dasm (4.49 % of base)
529 : 373970.dasm (4.49 % of base)
529 : 263429.dasm (4.49 % of base)
529 : 345783.dasm (4.49 % of base)
Top file improvements (bytes):
-1213 : 152301.dasm (-5.38 % of base)
-1213 : 573163.dasm (-5.38 % of base)
-1213 : 160748.dasm (-5.38 % of base)
-1213 : 75751.dasm (-5.38 % of base)
-1212 : 46348.dasm (-5.37 % of base)
-1148 : 96256.dasm (-5.13 % of base)
-961 : 219660.dasm (-17.15 % of base)
-714 : 333301.dasm (-3.55 % of base)
-400 : 233482.dasm (-6.12 % of base)
-391 : 218191.dasm (-5.94 % of base)
-375 : 220886.dasm (-8.94 % of base)
-368 : 219521.dasm (-8.95 % of base)
-348 : 234274.dasm (-2.98 % of base)
-338 : 220445.dasm (-8.54 % of base)
-321 : 250445.dasm (-0.85 % of base)
-312 : 220481.dasm (-7.19 % of base)
-302 : 598387.dasm (-5.91 % of base)
-283 : 483234.dasm (-3.35 % of base)
-273 : 546521.dasm (-6.63 % of base)
-270 : 251362.dasm (-3.04 % of base)
100 total files with Code Size differences (51 improved, 49 regressed), 20 unchanged.
Top method regressions (bytes):
1074 (6.85 % of base) : 444438.dasm - (dynamicClass):ReadAllTypes2FromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
1074 (6.87 % of base) : 443697.dasm - (dynamicClass):ReadAllTypesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
954 (1.42 % of base) : 178424.dasm - System.CodeDom.Compiler.Tests.CSharpCodeGeneratorTests+<GenerateCodeFromType_TestData>d__25:MoveNext():ubyte:this (Tier0-FullOpts)
738 (6.53 % of base) : 226286.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
738 (6.53 % of base) : 409641.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
726 (12.44 % of base) : 604468.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE11ED309466AF57DE9D7AB55C09A60EE21567522F71D3843DB41A5B03BB97697__Match_InstanceMethods_DefaultTimeout_SourceGenerated_ThrowsImpl_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
718 (14.88 % of base) : 280079.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithTrailingStar():this (Tier1)
686 (14.68 % of base) : 280099.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithLeadingStar():this (Tier1)
605 (9.31 % of base) : 82769.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeWellKnownAttributeImpl(byref):this (Tier1)
596 (7.40 % of base) : 57361.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeWellKnownAttributeImpl(byref):this (Tier1)
596 (7.86 % of base) : 402035.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess1():int:this (Tier0-FullOpts)
596 (8.51 % of base) : 402038.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess3():int:this (Tier0-FullOpts)
596 (8.53 % of base) : 402039.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess4():int:this (Tier0-FullOpts)
546 (14.86 % of base) : 280102.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternDotIsStar():this (Tier1)
544 (12.17 % of base) : 594896.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30951_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
537 (5.67 % of base) : 7542.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
529 (4.49 % of base) : 625969.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
529 (4.49 % of base) : 373970.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
529 (4.49 % of base) : 263429.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
529 (4.49 % of base) : 345783.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):
-1213 (-5.38 % of base) : 152301.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-1213 (-5.38 % of base) : 573163.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-1213 (-5.38 % of base) : 160748.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-1213 (-5.38 % of base) : 75751.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-1212 (-5.37 % of base) : 46348.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-1148 (-5.13 % of base) : 96256.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-961 (-17.15 % of base) : 219660.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (Tier0-FullOpts)
-714 (-3.55 % of base) : 333301.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-400 (-6.12 % of base) : 233482.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_RefArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_RefArgs (Tier1)
-391 (-5.94 % of base) : 218191.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_RefArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_RefArgs (Tier1)
-375 (-8.94 % of base) : 220886.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (Tier0-FullOpts)
-368 (-8.95 % of base) : 219521.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (Tier0-FullOpts)
-348 (-2.98 % of base) : 234274.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
-338 (-8.54 % of base) : 220445.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (Tier0-FullOpts)
-321 (-0.85 % of base) : 250445.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Tier0-FullOpts)
-312 (-7.19 % of base) : 220481.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (Tier0-FullOpts)
-302 (-5.91 % of base) : 598387.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalConstantSignature(Microsoft.Cci.ILocalDefinition):System.Reflection.Metadata.BlobHandle:this (Tier1)
-283 (-3.35 % of base) : 483234.dasm - System.Security.Cryptography.X509Certificates.Tests.PfxFormatTests:TwoCerts_TwoKeys_ManySafeContentsValues(ubyte,ubyte):this (Tier1)
-273 (-6.63 % of base) : 546521.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestSingleStrings() (Tier0-FullOpts)
-270 (-3.04 % of base) : 251362.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.operate.compound.basic.context02c.context02c.Test:RunTest():System.Object:this (Tier0-FullOpts)
Top method regressions (percentages):
23 (35.94 % of base) : 386787.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
47 (32.87 % of base) : 459707.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
38 (32.48 % of base) : 386783.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
46 (29.30 % of base) : 383480.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (Tier0-FullOpts)
274 (28.60 % of base) : 286021.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
274 (28.60 % of base) : 215351.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
274 (28.60 % of base) : 285969.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
274 (28.60 % of base) : 58875.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
57 (25.45 % of base) : 460302.dasm - System.Reflection.MemberInfo:HasSameMetadataDefinitionAsCore[System.__Canon](System.Reflection.MemberInfo):ubyte:this (Tier1)
235 (24.15 % of base) : 152456.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.SyntaxTrivia,System.__Canon]:TryGetValue(Microsoft.CodeAnalysis.SyntaxTrivia,byref):ubyte:this (Tier1)
39 (23.93 % of base) : 54441.dasm - Microsoft.CodeAnalysis.CSharp.NullableAnnotationExtensions+<>c:<GetPublicSymbols>b__13_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.ITypeSymbol:this (Tier1)
39 (23.78 % of base) : 72773.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:TryEnqueue(System.Threading.PortableThreadPool+IOCompletionPoller+Event):ubyte:this (Instrumented Tier1)
28 (23.73 % of base) : 145488.dasm - Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (Tier0-FullOpts)
113 (23.20 % of base) : 57009.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:IsEquivalentTo(Microsoft.CodeAnalysis.GreenNode):ubyte:this (Tier1)
38 (23.17 % of base) : 78447.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor:VisitExpressionWithStackGuard(byref,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
36 (23.08 % of base) : 581518.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter:VisitSequence(Microsoft.CodeAnalysis.CSharp.BoundSequence):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
477 (23.02 % of base) : 9925.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
53 (22.84 % of base) : 405270.dasm - System.Xml.XmlWriter:WriteQualifiedName(System.String,System.String):this (Tier1)
54 (21.77 % of base) : 100229.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (Tier0-FullOpts)
44 (21.26 % of base) : 378663.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitString(System.IO.BinaryWriter,System.String) (Tier1)
Top method improvements (percentages):
-10 (-45.45 % of base) : 363711.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
-10 (-45.45 % of base) : 363938.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Tier1)
-10 (-45.45 % of base) : 363713.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
-10 (-45.45 % of base) : 363945.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
-10 (-45.45 % of base) : 365230.dasm - System.Int16:Max(short,short):short (Instrumented Tier1)
-10 (-45.45 % of base) : 365547.dasm - System.Int16:Max(short,short):short (Tier1)
-10 (-45.45 % of base) : 365189.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)
-10 (-45.45 % of base) : 365360.dasm - System.Int16:Min(short,short):short (Tier1)
-10 (-45.45 % of base) : 365548.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (Tier1)
-10 (-45.45 % of base) : 363939.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)
-10 (-38.46 % of base) : 364005.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (Tier1)
-8 (-33.33 % of base) : 365445.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
-96 (-26.52 % of base) : 552582.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateImmutableEnumerableCreateRangeDelegate[System.__Canon,System.__Canon]():System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
-84 (-26.01 % of base) : 558131.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateAddMethodDelegate[System.__Canon]():System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
-84 (-25.23 % of base) : 553529.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateFieldGetter[System.__Canon](System.Reflection.FieldInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
-84 (-25.23 % of base) : 560527.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateFieldSetter[System.__Canon](System.Reflection.FieldInfo):System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
-84 (-25.23 % of base) : 552460.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreatePropertySetter[System.__Canon](System.Reflection.PropertyInfo):System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
-74 (-24.34 % of base) : 142780.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
-74 (-24.34 % of base) : 64013.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
-74 (-24.34 % of base) : 150645.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.__Canon,System.__Canon]]:get_IsCached():ubyte:this (Tier1)
librariestestsnotieredcompilation.run.windows.x86.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 102225812 (overridden on cmd)
Total bytes of diff: 102307414 (overridden on cmd)
Total bytes of delta: 81602 (0.08 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
994 : 209238.dasm (6.43 % of base)
994 : 208826.dasm (6.45 % of base)
954 : 65191.dasm (1.42 % of base)
726 : 304954.dasm (12.44 % of base)
533 : 3814.dasm (5.66 % of base)
515 : 238554.dasm (5.39 % of base)
470 : 268241.dasm (9.11 % of base)
463 : 6304.dasm (7.14 % of base)
451 : 5204.dasm (23.75 % of base)
445 : 1847.dasm (6.95 % of base)
436 : 33202.dasm (21.02 % of base)
436 : 33964.dasm (21.02 % of base)
436 : 33133.dasm (21.02 % of base)
436 : 34036.dasm (20.69 % of base)
436 : 34097.dasm (20.69 % of base)
436 : 34420.dasm (21.02 % of base)
425 : 60156.dasm (1.76 % of base)
418 : 125059.dasm (6.32 % of base)
413 : 165471.dasm (8.26 % of base)
413 : 99247.dasm (5.67 % of base)
Top file improvements (bytes):
-961 : 94034.dasm (-17.15 % of base)
-697 : 5212.dasm (-4.43 % of base)
-644 : 180497.dasm (-6.75 % of base)
-450 : 116309.dasm (-3.07 % of base)
-450 : 115662.dasm (-3.07 % of base)
-449 : 116146.dasm (-3.02 % of base)
-425 : 95964.dasm (-10.25 % of base)
-405 : 95138.dasm (-9.66 % of base)
-402 : 112680.dasm (-2.61 % of base)
-395 : 118240.dasm (-2.88 % of base)
-387 : 115536.dasm (-3.14 % of base)
-384 : 26765.dasm (-3.81 % of base)
-383 : 132011.dasm (-8.06 % of base)
-375 : 111089.dasm (-2.45 % of base)
-338 : 94835.dasm (-8.54 % of base)
-327 : 278597.dasm (-8.10 % of base)
-321 : 117080.dasm (-0.85 % of base)
-319 : 92279.dasm (-8.28 % of base)
-318 : 98247.dasm (-7.37 % of base)
-291 : 118220.dasm (-2.73 % of base)
95 total files with Code Size differences (46 improved, 49 regressed), 20 unchanged.
Top method regressions (bytes):
994 (6.43 % of base) : 209238.dasm - (dynamicClass):ReadAllTypes2FromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
994 (6.45 % of base) : 208826.dasm - (dynamicClass):ReadAllTypesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
954 (1.42 % of base) : 65191.dasm - System.CodeDom.Compiler.Tests.CSharpCodeGeneratorTests+<GenerateCodeFromType_TestData>d__25:MoveNext():ubyte:this (FullOpts)
726 (12.44 % of base) : 304954.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE11ED309466AF57DE9D7AB55C09A60EE21567522F71D3843DB41A5B03BB97697__Match_InstanceMethods_DefaultTimeout_SourceGenerated_ThrowsImpl_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
533 (5.66 % of base) : 3814.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
515 (5.39 % of base) : 238554.dasm - System.ServiceModel.Syndication.Tests.AtomPub10ServiceDocumentFormatterTests+<>c:<ReadFrom_FullDocument_ReturnsExpected>b__18_0(System.ServiceModel.Syndication.ServiceDocument):this (FullOpts)
470 (9.11 % of base) : 268241.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteHelloWorld(System.Text.Json.JsonWriterOptions):this (FullOpts)
463 (7.14 % of base) : 6304.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1056_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
451 (23.75 % of base) : 5204.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
445 (6.95 % of base) : 1847.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
436 (21.02 % of base) : 33202.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
436 (21.02 % of base) : 33964.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
436 (21.02 % of base) : 33133.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
436 (20.69 % of base) : 34036.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
436 (20.69 % of base) : 34097.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
436 (21.02 % of base) : 34420.dasm - Microsoft.Extensions.Configuration.Xml.Test.ConfigurationProviderXmlTest:Has_debug_view():this (FullOpts)
425 (1.76 % of base) : 60156.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)
418 (6.32 % of base) : 125059.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F41B8911E2F21D4DC5E3A6E6E037C09C91843DEA626D26CDD1D82984E3611395A__GetRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
413 (5.67 % of base) : 99247.dasm - System.Data.Tests.DataColumnCollectionTest:Add():this (FullOpts)
413 (8.26 % of base) : 165471.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanScalarIntoSpan[ubyte,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ubyte],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ubyte],ubyte]](System.ReadOnlySpan`1[ubyte],ubyte,System.Span`1[ubyte]) (FullOpts)
Top method improvements (bytes):
-961 (-17.15 % of base) : 94034.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
-697 (-4.43 % of base) : 5212.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
-644 (-6.75 % of base) : 180497.dasm - System.Xml.XmlReaderTests.ReadCharsTests:GenerateTestXml(byref):System.String (FullOpts)
-450 (-3.07 % of base) : 116309.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004c.enum004c.Test:MainMethod():int (FullOpts)
-450 (-3.07 % of base) : 115662.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004e.enum004e.Test:MainMethod():int (FullOpts)
-449 (-3.02 % of base) : 116146.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004.enum004.Test:MainMethod():int (FullOpts)
-425 (-10.25 % of base) : 95964.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
-405 (-9.66 % of base) : 95138.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
-402 (-2.61 % of base) : 112680.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.cnst001.cnst001.Test:MainMethod():int (FullOpts)
-395 (-2.88 % of base) : 118240.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.cnst002.cnst002.Test:MainMethod():int (FullOpts)
-387 (-3.14 % of base) : 115536.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum001.enum001.A:MainMethod():int (FullOpts)
-384 (-3.81 % of base) : 26765.dasm - Microsoft.CSharp.RuntimeBinder.Tests.DefaultParameterTests:MarshalAsOptionalsCorrectDefault():this (FullOpts)
-383 (-8.06 % of base) : 132011.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
-375 (-2.45 % of base) : 111089.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum005b.enum005b.Test:MainMethod():int (FullOpts)
-338 (-8.54 % of base) : 94835.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
-327 (-8.10 % of base) : 278597.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
-321 (-0.85 % of base) : 117080.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (FullOpts)
-319 (-8.28 % of base) : 92279.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSection,int):System.String:this (FullOpts)
-318 (-7.37 % of base) : 98247.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
-291 (-2.73 % of base) : 118220.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum005.enum005.Test:MainMethod():int (FullOpts)
Top method regressions (percentages):
239 (36.38 % of base) : 169152.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4ToStringTest():this (FullOpts)
46 (29.30 % of base) : 175685.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
274 (28.60 % of base) : 92351.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
274 (28.60 % of base) : 132131.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
274 (28.60 % of base) : 132149.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
274 (28.60 % of base) : 16740.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
113 (24.84 % of base) : 214211.dasm - System.Tests.DoubleTests_GenericMath:AbsTest() (FullOpts)
291 (23.95 % of base) : 50637.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
291 (23.95 % of base) : 44647.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
291 (23.95 % of base) : 5868.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
451 (23.75 % of base) : 5204.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
28 (23.73 % of base) : 54191.dasm - Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (FullOpts)
33 (22.92 % of base) : 71682.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair`2[int,System.__Canon],System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
15 (22.06 % of base) : 23512.dasm - Microsoft.CodeAnalysis.SymbolKey+SymbolKeyWriter:<.ctor>b__16_1(Microsoft.CodeAnalysis.IParameterSymbol):this (FullOpts)
54 (21.77 % of base) : 34667.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (FullOpts)
30 (21.74 % of base) : 15501.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
23 (21.50 % of base) : 40085.dasm - Microsoft.Extensions.Hosting.HostApplicationBuilder+<>c__DisplayClass30_0`1[System.__Canon]:<ConfigureContainer>b__0():System.IServiceProvider:this (FullOpts)
27 (21.26 % of base) : 45764.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
41 (21.13 % of base) : 9571.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
27 (21.09 % of base) : 11101.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
Top method improvements (percentages):
-10 (-38.46 % of base) : 167111.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
-10 (-38.46 % of base) : 167197.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
-10 (-38.46 % of base) : 166222.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
-10 (-38.46 % of base) : 167264.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
-10 (-38.46 % of base) : 165761.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
-10 (-38.46 % of base) : 165888.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
-8 (-33.33 % of base) : 167091.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
-5 (-23.81 % of base) : 167101.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
-5 (-23.81 % of base) : 165702.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Min(ubyte,ubyte):ubyte:this (FullOpts)
-5 (-23.81 % of base) : 165561.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MinMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
-55 (-20.00 % of base) : 79028.dasm - System.Collections.Tests.IGenericSharedAPI_Tests`1[int]:IGenericSharedAPI_Add_AfterRemovingAnyValue(int):this (FullOpts)
-36 (-19.35 % of base) : 111934.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Indexers.Oneclass2indexers.oneparamdifftypesconv017.oneparamdifftypesconv017.I,ushort):System.Object (FullOpts)
-151 (-19.31 % of base) : 11336.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
-102 (-18.72 % of base) : 17876.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:AfterRightChildOfBinaryLogicalOperatorHasBeenVisited(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,byref,byref):this (FullOpts)
-22 (-18.33 % of base) : 7448.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-119 (-18.31 % of base) : 173144.dasm - System.Xml.Serialization.XmlSchemas:IsDataSet(System.Xml.Schema.XmlSchema):ubyte (FullOpts)
-961 (-17.15 % of base) : 94034.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
-102 (-16.24 % of base) : 165678.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[ubyte]:Min_Tensor_Negative0LesserThanPositive0():this (FullOpts)
-38 (-16.10 % of base) : 94035.dasm - System.Data.RBTree`1[int]:RecomputeSize(int):this (FullOpts)
-38 (-16.10 % of base) : 94702.dasm - System.Data.RBTree`1[System.__Canon]:RecomputeSize(int):this (FullOpts)
realworld.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 11028236 (overridden on cmd)
Total bytes of diff: 11059568 (overridden on cmd)
Total bytes of delta: 31332 (0.28 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
992 : 1493.dasm (7.61 % of base)
632 : 1062.dasm (5.25 % of base)
535 : 31843.dasm (5.66 % of base)
533 : 1302.dasm (3.38 % of base)
498 : 34923.dasm (2.39 % of base)
477 : 13859.dasm (23.02 % of base)
461 : 21036.dasm (7.15 % of base)
436 : 16129.dasm (5.83 % of base)
395 : 8667.dasm (2.15 % of base)
334 : 1065.dasm (1.43 % of base)
330 : 1053.dasm (3.14 % of base)
310 : 1340.dasm (5.87 % of base)
291 : 21416.dasm (23.95 % of base)
283 : 1030.dasm (1.26 % of base)
278 : 26313.dasm (7.65 % of base)
263 : 31842.dasm (4.33 % of base)
256 : 1348.dasm (6.93 % of base)
253 : 1139.dasm (1.85 % of base)
250 : 21325.dasm (3.20 % of base)
245 : 1399.dasm (5.45 % of base)
Top file improvements (bytes):
-697 : 13868.dasm (-4.43 % of base)
-327 : 29170.dasm (-8.10 % of base)
-294 : 11872.dasm (-17.37 % of base)
-262 : 1069.dasm (-1.17 % of base)
-253 : 14805.dasm (-12.42 % of base)
-227 : 26147.dasm (-13.99 % of base)
-171 : 10762.dasm (-4.20 % of base)
-155 : 1568.dasm (-2.90 % of base)
-148 : 25193.dasm (-17.01 % of base)
-144 : 13006.dasm (-8.35 % of base)
-128 : 1459.dasm (-6.47 % of base)
-123 : 10459.dasm (-2.45 % of base)
-121 : 1652.dasm (-9.71 % of base)
-110 : 24973.dasm (-2.53 % of base)
-110 : 30088.dasm (-8.30 % of base)
-108 : 12189.dasm (-2.37 % of base)
-103 : 8052.dasm (-3.83 % of base)
-102 : 1100.dasm (-2.16 % of base)
-102 : 1675.dasm (-7.52 % of base)
-99 : 10621.dasm (-5.11 % of base)
89 total files with Code Size differences (41 improved, 48 regressed), 20 unchanged.
Top method regressions (bytes):
992 (7.61 % of base) : 1493.dasm - BepuPhysics.Constraints.Contact.Contact4Functions:BepuPhysics.Constraints.ITwoBodyConstraintFunctions<BepuPhysics.Constraints.Contact.Contact4PrestepData,BepuPhysics.Constraints.Contact.Contact4AccumulatedImpulses>.Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
632 (5.25 % of base) : 1062.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
535 (5.66 % of base) : 31843.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
533 (3.38 % of base) : 1302.dasm - DemoBenchmarks.RagdollTubeBenchmark:AddRagdoll(System.Numerics.Vector3,System.Numerics.Quaternion,int,BepuPhysics.CollidableProperty`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupCollisionFilter],BepuPhysics.Simulation):DemoBenchmarks.RagdollTubeBenchmark+RagdollHandles (FullOpts)
498 (2.39 % of base) : 34923.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:LoadModuleManifest(System.String,System.Management.Automation.ExternalScriptInfo,System.Collections.Hashtable,System.Collections.Hashtable,int,System.Version,System.Version,System.Version,System.Nullable`1[System.Guid],byref,byref):System.Management.Automation.PSModuleInfo:this (FullOpts)
477 (23.02 % of base) : 13859.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
461 (7.15 % of base) : 21036.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1055_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
436 (5.83 % of base) : 16129.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
395 (2.15 % of base) : 8667.dasm - FSharp.Compiler.ConstraintSolver+SolveMemberConstraint@1402-8:Invoke(Microsoft.FSharp.Core.Unit):FSharp.Compiler.ErrorLogger+OperationResult`1[FSharp.Compiler.ConstraintSolver+TraitConstraintSolution]:this (FullOpts)
334 (1.43 % of base) : 1065.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TrianglePairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
330 (3.14 % of base) : 1053.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxTriangleTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
310 (5.87 % of base) : 1340.dasm - BepuPhysics.IslandAwakener:PrepareJobs(byref,ubyte,int):System.ValueTuple`2[int,int]:this (FullOpts)
291 (23.95 % of base) : 21416.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
283 (1.26 % of base) : 1030.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
278 (7.65 % of base) : 26313.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitSwitchSection(Microsoft.CodeAnalysis.CSharp.BoundSwitchSection,ubyte):this (FullOpts)
263 (4.33 % of base) : 31842.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
256 (6.93 % of base) : 1348.dasm - BepuPhysics.IslandSleeper:Sleep(byref,BepuUtilities.IThreadDispatcher,ubyte,int,int,ubyte):this (FullOpts)
253 (1.85 % of base) : 1139.dasm - BepuPhysics.Constraints.HingeFunctions:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
250 (3.20 % of base) : 21325.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
245 (5.45 % of base) : 1399.dasm - BepuPhysics.CollisionDetection.NarrowPhase`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupFilteredCallbacks]:AddBatchEntries(int,byref,byref,byref,byref,BepuPhysics.Collidables.TypedIndex,BepuPhysics.Collidables.TypedIndex,int,int,float,byref,byref,byref,byref):this (FullOpts)
Top method improvements (bytes):
-697 (-4.43 % of base) : 13868.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
-327 (-8.10 % of base) : 29170.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
-294 (-17.37 % of base) : 11872.dasm - FSharp.Compiler.CheckExpressions+BindingNormalization:NormalizeStaticMemberBinding(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.Syntax.SynMemberFlags,FSharp.Compiler.Syntax.SynValData,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],FSharp.Compiler.Syntax.SynValTyparDecls,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynPat],FSharp.Compiler.Text.Range,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs):FSharp.Compiler.CheckExpressions+NormalizedBindingPatternInfo (FullOpts)
-262 (-1.17 % of base) : 1069.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
-253 (-12.42 % of base) : 14805.dasm - SixLabors.ImageSharp.Formats.Png.PngDecoderCore:TryReadChunk(byref):ubyte:this (FullOpts)
-227 (-13.99 % of base) : 26147.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIsPatternExpression(Microsoft.CodeAnalysis.CSharp.BoundIsPatternExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-171 (-4.20 % of base) : 10762.dasm - <StartupCode$FSharp-Compiler-Service>.$Sformat:.cctor() (FullOpts)
-155 (-2.90 % of base) : 1568.dasm - BepuPhysics.Trees.Tree:GetOverlapsBetweenDifferentNodes[BepuPhysics.CollisionDetection.CollidableOverlapFinder`1+IntertreeOverlapHandler[DemoBenchmarks.ShapePileBenchmark+DemoNarrowPhaseCallbacks]](byref,byref,byref,byref):this (FullOpts)
-148 (-17.01 % of base) : 25193.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
-144 (-8.35 % of base) : 13006.dasm - FSharp.Compiler.NameResolution:ResolveFieldPrim(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.TypedTree+TType,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident],FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]):Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.NameResolution+FieldResolution]] (FullOpts)
-128 (-6.47 % of base) : 1459.dasm - BepuPhysics.PoseIntegrator`1[DemoBenchmarks.RagdollTubeBenchmark+DemoPoseIntegratorCallbacks]:IntegrateBundlesAfterSubstepping(byref,int,int,float,float,int,int):this (FullOpts)
-123 (-2.45 % of base) : 10459.dasm - FSharp.Compiler.MethodOverrides+DispatchSlotChecking:CheckDispatchSlotsAreImplemented(FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.InfoReader+InfoReader,FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+TcResultsSink,ubyte,FSharp.Compiler.TypedTree+TType,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+RequiredSlot],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+OverrideInfo],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+OverrideInfo]):ubyte (FullOpts)
-121 (-9.71 % of base) : 1652.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
-110 (-8.30 % of base) : 30088.dasm - Microsoft.CodeAnalysis.CSharp.AsyncStateMachine:.ctor(Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,ubyte):this (FullOpts)
-110 (-2.53 % of base) : 24973.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
-108 (-2.37 % of base) : 12189.dasm - FSharp.Compiler.CheckComputationExpressions:tryTcSequenceExprBody@1880(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.ConstraintSolver+OverallTy,FSharp.Compiler.Text.Range,FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv]] (FullOpts)
-103 (-3.83 % of base) : 8052.dasm - FSharp.Compiler.CheckExpressions+BindingNormalization:normPattern@2471(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.CheckExpressions+IsObjExprBinding,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.Syntax.SynValData,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs,FSharp.Compiler.AccessibilityLogic+AccessorDomain,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags],FSharp.Compiler.Syntax.SynPat):FSharp.Compiler.CheckExpressions+NormalizedBindingPatternInfo (FullOpts)
-102 (-2.16 % of base) : 1100.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CompoundPairOverlapFinder`2[BepuPhysics.Collidables.Compound,BepuPhysics.Collidables.Compound]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
-102 (-7.52 % of base) : 1675.dasm - System.UriParser:.cctor() (FullOpts)
-99 (-5.11 % of base) : 10621.dasm - FSharp.Compiler.NameResolution:ResolveTypeLongIdentInModuleOrNamespace(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.NameResolution+TypeNameResolutionInfo,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.NameResolution+PermitDirectReferenceToGeneratedType,FSharp.Compiler.NameResolution+ResolutionInfo,int,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+EntityRef,FSharp.Compiler.TypedTree+ModuleOrNamespaceType,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]):Internal.Utilities.Library.ResultOrException`1[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.TypedTree+EntityRef]]] (FullOpts)
Top method regressions (percentages):
291 (23.95 % of base) : 21416.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
477 (23.02 % of base) : 13859.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
30 (21.90 % of base) : 25996.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
41 (21.13 % of base) : 25491.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
27 (20.93 % of base) : 23201.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
30 (20.27 % of base) : 27201.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitAssignmentOfNullCoalescingAssignment(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator,Microsoft.CodeAnalysis.CSharp.BoundPropertyAccess):this (FullOpts)
27 (19.71 % of base) : 24606.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.EventSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,int):ubyte:this (FullOpts)
82 (19.03 % of base) : 20589.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:ReadAssemblyIdentityOrThrow(System.Reflection.Metadata.MetadataReader):Microsoft.CodeAnalysis.AssemblyIdentity (FullOpts)
38 (18.91 % of base) : 26633.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindInterpolatedString>g__unescapeInterpolatedStringLiteral|557_0(System.String):System.String (FullOpts)
17 (17.53 % of base) : 33730.dasm - System.Management.Automation.ScriptBlock+SuspiciousContentChecker:CheckForMatches(uint[],int):System.String (FullOpts)
69 (17.00 % of base) : 21462.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (FullOpts)
5 (16.67 % of base) : 33586.dasm - System.Text.StringBuilder:Append(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
147 (16.28 % of base) : 14434.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
27 (16.27 % of base) : 30731.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:SynthesizeNullableAttributeIfNecessary(System.Nullable`1[ubyte],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData:this (FullOpts)
99 (15.59 % of base) : 24378.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbol(Microsoft.CodeAnalysis.MetadataHelpers+AssemblyQualifiedTypeName,byref):System.__Canon:this (FullOpts)
50 (14.88 % of base) : 22586.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.DynamicTypeDecoder:TransformNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
19 (14.84 % of base) : 25917.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitCompoundAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundCompoundAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
19 (14.73 % of base) : 35447.dasm - System.Dynamic.DynamicMetaObject:GetExpressions(System.Dynamic.DynamicMetaObject[]):System.Linq.Expressions.Expression[] (FullOpts)
13 (13.83 % of base) : 15607.dasm - System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1[int]:Enqueue(int):this (FullOpts)
108 (13.09 % of base) : 482.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (FullOpts)
Top method improvements (percentages):
-22 (-18.33 % of base) : 22824.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-294 (-17.37 % of base) : 11872.dasm - FSharp.Compiler.CheckExpressions+BindingNormalization:NormalizeStaticMemberBinding(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.Syntax.SynMemberFlags,FSharp.Compiler.Syntax.SynValData,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],FSharp.Compiler.Syntax.SynValTyparDecls,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynPat],FSharp.Compiler.Text.Range,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs):FSharp.Compiler.CheckExpressions+NormalizedBindingPatternInfo (FullOpts)
-148 (-17.01 % of base) : 25193.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
-95 (-16.16 % of base) : 25859.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:AfterRightChildOfBinaryLogicalOperatorHasBeenVisited(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,byref,byref):this (FullOpts)
-30 (-16.04 % of base) : 14055.dasm - SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
-227 (-13.99 % of base) : 26147.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIsPatternExpression(Microsoft.CodeAnalysis.CSharp.BoundIsPatternExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-7 (-12.50 % of base) : 27789.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
-7 (-12.50 % of base) : 27790.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Min(byte,byte):byte (FullOpts)
-7 (-12.50 % of base) : 26298.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[ubyte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+ByteTC]:Max(ubyte,ubyte):ubyte (FullOpts)
-7 (-12.50 % of base) : 26299.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[ubyte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+ByteTC]:Min(ubyte,ubyte):ubyte (FullOpts)
-253 (-12.42 % of base) : 14805.dasm - SixLabors.ImageSharp.Formats.Png.PngDecoderCore:TryReadChunk(byref):ubyte:this (FullOpts)
-10 (-12.05 % of base) : 25842.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitForStatement(Microsoft.CodeAnalysis.CSharp.BoundForStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-51 (-11.59 % of base) : 20412.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeChildren(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration]:this (FullOpts)
-27 (-11.54 % of base) : 30630.dasm - System.Reflection.Metadata.BlobBuilder:WriteBytes(ubyte,int):this (FullOpts)
-81 (-10.87 % of base) : 21768.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArgumentEvaluateEpilogue(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState],ubyte,int):Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult:this (FullOpts)
-29 (-10.86 % of base) : 6735.dasm - FSharp.Compiler.TypedTreeBasics:primEntityRefEq$cont@387(ubyte,FSharp.Compiler.TypedTree+CcuThunk,FSharp.Compiler.TypedTree+EntityRef,FSharp.Compiler.TypedTree+EntityRef,Microsoft.FSharp.Core.Unit):ubyte (FullOpts)
-7 (-10.77 % of base) : 10519.dasm - FSharp.Compiler.Syntax.PrettyNaming+choice@429:Invoke(System.Tuple`2[ushort,System.String]):ubyte:this (FullOpts)
-23 (-10.70 % of base) : 20867.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol:GetSimpleProgramEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol (FullOpts)
-23 (-10.27 % of base) : 28969.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitToken(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):this (FullOpts)
-26 (-10.20 % of base) : 13745.dasm - ILLinkBenchmarks.Utilities:GetCurrentOSPlatform():System.Runtime.InteropServices.OSPlatform (FullOpts)