Assembly Diffs
linux arm
Diffs are based on 2,250,511 contexts (832,197 MinOpts, 1,418,314 FullOpts).
MISSED contexts: base: 73,582 (3.17%), diff: 73,583 (3.17%)
Overall (-109,592 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.arm.checked.mch |
17,295,604 |
-544 |
benchmarks.run_pgo.linux.arm.checked.mch |
67,071,704 |
+7,746 |
benchmarks.run_tiered.linux.arm.checked.mch |
20,251,824 |
-388 |
coreclr_tests.run.linux.arm.checked.mch |
325,365,536 |
-105,696 |
libraries.pmi.linux.arm.checked.mch |
50,242,096 |
-4,558 |
libraries_tests.run.linux.arm.Release.mch |
239,569,132 |
-680 |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
94,235,488 |
-3,206 |
realworld.run.linux.arm.checked.mch |
13,483,316 |
-2,266 |
FullOpts (-109,592 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.arm.checked.mch |
16,808,432 |
-544 |
benchmarks.run_pgo.linux.arm.checked.mch |
55,292,992 |
+7,746 |
benchmarks.run_tiered.linux.arm.checked.mch |
12,101,278 |
-388 |
coreclr_tests.run.linux.arm.checked.mch |
112,937,508 |
-105,696 |
libraries.pmi.linux.arm.checked.mch |
50,135,872 |
-4,558 |
libraries_tests.run.linux.arm.Release.mch |
117,215,170 |
-680 |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
84,205,624 |
-3,206 |
realworld.run.linux.arm.checked.mch |
13,055,792 |
-2,266 |
Example diffs
benchmarks.run.linux.arm.checked.mch
-8 (-16.00%) : 7384.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
@@ -12,7 +12,7 @@
;* 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"
+; V04 cse0 [V04,T00] ( 3, 3 ) byref -> r0 "CSE - aggressive"
;
; Lcl frame size = 4
@@ -22,29 +22,29 @@ G_M5950_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M5950_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
- ldrb r0, [r0]
- cmp r0, 0
+ ldrb r3, [r0]
+ cmp r3, 0
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]
+G_M5950_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
+ ; byrRegs +[r0]
+ movs r3, 1
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M5950_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldrb r0, [r0]
- ;; size=10 bbWeight=1 PerfScore 3.00
+G_M5950_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
+ ldrb r0, [r0+0x01]
+ ; byrRegs -[r0]
+ ;; size=2 bbWeight=1 PerfScore 1.00
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 11.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 +56,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 (-14.12%) : 47411.dasm - System.Numerics.Tests.Perf_Vector4:NormalizeBenchmark():System.Numerics.Vector4:this (FullOpts)
@@ -49,11 +49,11 @@
; V38 tmp37 [V38,T07] ( 2, 2 ) float -> registers "field V12.Y (fldOffset=0x4)" P-INDEP
; V39 tmp38 [V39,T08] ( 2, 2 ) float -> [sp+0x04] spill-single-def "field V12.Z (fldOffset=0x8)" P-INDEP
; V40 tmp39 [V40,T09] ( 2, 2 ) float -> [sp+0x00] spill-single-def "field V12.W (fldOffset=0xc)" P-INDEP
-; V41 tmp40 [V41,T01] ( 4, 4 ) float -> f2 "V03.[000..004)"
-; V42 tmp41 [V42,T02] ( 4, 4 ) float -> f3 "V03.[004..008)"
-; V43 tmp42 [V43,T03] ( 4, 4 ) float -> f0 "V03.[008..012)"
-; V44 tmp43 [V44,T04] ( 4, 4 ) float -> f1 "V03.[012..016)"
-; V45 tmp44 [V45,T05] ( 2, 4 ) int -> r0 "Spilling address for field-by-field copy"
+; V41 tmp40 [V41,T02] ( 4, 4 ) float -> f2 "V03.[000..004)"
+; V42 tmp41 [V42,T03] ( 4, 4 ) float -> f3 "V03.[004..008)"
+; V43 tmp42 [V43,T04] ( 4, 4 ) float -> f0 "V03.[008..012)"
+; V44 tmp43 [V44,T05] ( 4, 4 ) float -> f1 "V03.[012..016)"
+; V45 tmp44 [V45,T01] ( 5, 10 ) int -> r0 "Spilling address for field-by-field copy"
;
; Lcl frame size = 12
@@ -73,15 +73,9 @@ G_M1280_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
movt r0, 0xd1ff
vldr s2, [r0]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- vldr s3, [r0]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- vldr s0, [r0]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- vldr s1, [r0]
+ vldr s3, [r0+0x04]
+ vldr s0, [r0+0x08]
+ vldr s1, [r0+0x0C]
vmul s8, s2, s2
vmul s9, s3, s3
vadd s8, s8, s9
@@ -100,7 +94,7 @@ G_M1280_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
vmov s1, s3
vldr s2, [sp+0x04] // [V39 tmp38]
vldr s3, [sp] // [V40 tmp39]
- ;; size=120 bbWeight=1 PerfScore 30.00
+ ;; size=96 bbWeight=1 PerfScore 24.00
G_M1280_IG04: ; bbWeight=1, epilog, nogc, extend
add sp, 12
pop {pc}
@@ -116,7 +110,7 @@ G_M1280_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefR
b SHORT G_M1280_IG03
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 170, prolog size 4, PerfScore 40.00, instruction count 47, allocated bytes for code 170 (MethodHash=f8ecfaff) for method System.Numerics.Tests.Perf_Vector4:NormalizeBenchmark():System.Numerics.Vector4:this (FullOpts)
+; Total bytes of code 146, prolog size 4, PerfScore 34.00, instruction count 41, allocated bytes for code 146 (MethodHash=f8ecfaff) for method System.Numerics.Tests.Perf_Vector4:NormalizeBenchmark():System.Numerics.Vector4:this (FullOpts)
; ============================================================
Unwind Info:
@@ -128,7 +122,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 85 (0x00055) Actual length = 170 (0x0000aa)
+ Function Length : 73 (0x00049) Actual length = 146 (0x000092)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-13.04%) : 38546.dasm - System.Numerics.Tests.Perf_Plane:EqualityOperatorBenchmark():ubyte:this (FullOpts)
@@ -35,8 +35,8 @@
;* V24 tmp22 [V24,T09] ( 0, 0 ) float -> zero-ref single-def "V01.[004..008)"
;* V25 tmp23 [V25,T10] ( 0, 0 ) float -> zero-ref single-def "V01.[008..012)"
;* V26 tmp24 [V26,T11] ( 0, 0 ) float -> zero-ref single-def "V01.[012..016)"
-; V27 tmp25 [V27,T01] ( 2, 4 ) int -> r0 "Spilling address for field-by-field copy"
-;* V28 cse0 [V28,T00] ( 0, 0 ) float -> zero-ref "CSE - aggressive"
+; V27 tmp25 [V27,T00] ( 5, 10 ) int -> r0 "Spilling address for field-by-field copy"
+;* V28 cse0 [V28,T01] ( 0, 0 ) float -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -56,21 +56,15 @@ G_M64249_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movw r0, 0xd1ff
movt r0, 0xd1ff
vldr s8, [r0]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- vldr s9, [r0]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- vldr s10, [r0]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- vldr s11, [r0]
+ vldr s9, [r0+0x04]
+ vldr s10, [r0+0x08]
+ vldr s11, [r0+0x0C]
movs r0, 0
vmov.i2f s12, r0
vcmp s8, s12
vmrs APSR, FPSCR
bne SHORT G_M64249_IG09
- ;; size=64 bbWeight=1 PerfScore 17.00
+ ;; size=40 bbWeight=1 PerfScore 11.00
G_M64249_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movs r0, 0
vmov.i2f s8, r0
@@ -121,7 +115,7 @@ G_M64249_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
b SHORT G_M64249_IG03
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 184, prolog size 6, PerfScore 38.50, instruction count 58, allocated bytes for code 184 (MethodHash=73300506) for method System.Numerics.Tests.Perf_Plane:EqualityOperatorBenchmark():ubyte:this (FullOpts)
+; Total bytes of code 160, prolog size 6, PerfScore 32.50, instruction count 52, allocated bytes for code 160 (MethodHash=73300506) for method System.Numerics.Tests.Perf_Plane:EqualityOperatorBenchmark():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -133,7 +127,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 92 (0x0005c) Actual length = 184 (0x0000b8)
+ 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)
+32 (+47.06%) : 83.dasm - System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
@@ -8,12 +8,12 @@
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 1 ) ubyte -> r3
+; V02 loc1 [V02,T05] ( 2, 1 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V08 tmp4 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -21,56 +21,70 @@
;* V10 tmp6 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V13 tmp9 [V13,T01] ( 3, 2.50) int -> r4 "field V06.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T04] ( 2, 1 ) int -> r2 "field V09.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V13 tmp9 [V13,T01] ( 3, 2.50) int -> r5 "field V06.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T04] ( 3, 1.50) int -> r6 "field V09.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 cse0 [V15,T03] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
; Lcl frame size = 4
G_M41847_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
-G_M41847_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r4, [r0+0x0C]
- ands r1, r4, 2
- cmp r1, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M41847_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r4+0x0C]
+ ands r0, r5, 2
+ cmp r0, 0
beq SHORT G_M41847_IG05
;; size=10 bbWeight=1 PerfScore 4.00
-G_M41847_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+G_M41847_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ mov r0, r4
+ ; gcrRegs +[r0]
movw r1, 0xd1ff
movt r1, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // System.RuntimeType:IsSubclassOf(System.Type):ubyte:this
- ; gcrRegs -[r0]
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ; gcrRegs -[r0 r4]
+ ;; size=22 bbWeight=0.50 PerfScore 3.50
G_M41847_IG04: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M41847_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r4+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M41847_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[r4]
+ ldr r5, [r5+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M41847_IG06
- movs r3, 0
- b SHORT G_M41847_IG07
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M41847_IG06: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M41847_IG07: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M41847_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M41847_IG07
+ movs r0, 0
+ b SHORT G_M41847_IG08
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M41847_IG07: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M41847_IG08: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+G_M41847_IG08: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, epilog, nogc
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 68, prolog size 8, PerfScore 14.50, instruction count 23, allocated bytes for code 68 (MethodHash=8e725c88) for method System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
+; Total bytes of code 100, prolog size 8, PerfScore 20.50, instruction count 34, allocated bytes for code 100 (MethodHash=8e725c88) for method System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -82,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 68 (0x000044)
+ Function Length : 50 (0x00032) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -94,7 +108,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
+32 (+66.67%) : 1173.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r0
+; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -22,48 +22,62 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 1 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T06] ( 3, 1.50) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T05] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M42905_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M42905_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M42905_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
beq SHORT G_M42905_IG04
;; size=10 bbWeight=1 PerfScore 4.00
-G_M42905_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- movs r3, 0
- b SHORT G_M42905_IG06
+G_M42905_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r0, 0
+ b SHORT G_M42905_IG07
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M42905_IG04: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M42905_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M42905_IG05
- movs r3, 0
- b SHORT G_M42905_IG06
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M42905_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M42905_IG06: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M42905_IG07: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M42905_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M42905_IG06
+ movs r0, 0
+ b SHORT G_M42905_IG07
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M42905_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M42905_IG07: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r0
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M42905_IG08: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 48, prolog size 6, PerfScore 14.00, instruction count 19, allocated bytes for code 48 (MethodHash=06085866) for method System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 80 (MethodHash=06085866) for method System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -75,11 +89,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
+32 (+66.67%) : 1140.dasm - System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r0
+; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -22,48 +22,62 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 1 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T06] ( 3, 1.50) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T05] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M48242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M48242_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M48242_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
beq SHORT G_M48242_IG04
;; size=10 bbWeight=1 PerfScore 4.00
-G_M48242_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- movs r3, 0
- b SHORT G_M48242_IG06
+G_M48242_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r0, 0
+ b SHORT G_M48242_IG07
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M48242_IG04: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M48242_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M48242_IG05
- movs r3, 0
- b SHORT G_M48242_IG06
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M48242_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M48242_IG06: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M48242_IG07: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M48242_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M48242_IG06
+ movs r0, 0
+ b SHORT G_M48242_IG07
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M48242_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M48242_IG07: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r0
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M48242_IG08: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 48, prolog size 6, PerfScore 14.00, instruction count 19, allocated bytes for code 48 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 80 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -75,11 +89,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
benchmarks.run_pgo.linux.arm.checked.mch
-12 (-4.17%) : 138294.dasm - System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (Tier0-FullOpts)
@@ -18,7 +18,7 @@
; V07 tmp2 [V07 ] ( 1, 1 ) ubyte -> [sp+0x0C] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V08 tmp3 [V08,T00] ( 3, 24 ) ref -> r8 class-hnd exact "Inlining Arg" <System.Threading.TimerHolder>
;* V09 tmp4 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V10 tmp5 [V10,T04] ( 8, 6 ) ref -> r4 class-hnd exact "dup spill" <<unknown class>>
+; V10 tmp5 [V10,T04] ( 10, 7 ) ref -> r4 class-hnd exact "dup spill" <<unknown class>>
;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref
; V12 PSPSym [V12,T10] ( 1, 1 ) int -> [sp+0x10] do-not-enreg[V] "PSPSym"
; V13 cse0 [V13,T08] ( 2, 4.50) byref -> r7 hoist "CSE - aggressive"
@@ -130,9 +130,8 @@ G_M41124_IG07: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}
mov r0, r4
; gcrRegs +[r0]
movs r1, 1
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r4]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x18]
blx r3 // <unknown method>
; gcrRegs -[r0]
@@ -145,7 +144,7 @@ G_M41124_IG07: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}
blx r3 // System.GC:SuppressFinalize(System.Object)
; gcrRegs -[r0 r4]
; gcr arg pop 0
- ;; size=32 bbWeight=0.50 PerfScore 6.00
+ ;; size=26 bbWeight=0.50 PerfScore 5.50
G_M41124_IG08: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
mov r0, r5
; gcrRegs +[r0]
@@ -177,9 +176,8 @@ G_M41124_IG11: ; bbWeight=0, gcVars=00000008 {V01}, gcrefRegs=0000 {}, by
mov r0, r4
; gcrRegs +[r0]
movs r1, 1
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r4]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x18]
blx r3 // <unknown method>
; gcrRegs -[r0]
@@ -192,7 +190,7 @@ G_M41124_IG11: ; bbWeight=0, gcVars=00000008 {V01}, gcrefRegs=0000 {}, by
blx r3 // System.GC:SuppressFinalize(System.Object)
; gcrRegs -[r0 r4]
; gcr arg pop 0
- ;; size=42 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M41124_IG12: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
mov r0, r5
; gcrRegs +[r0]
@@ -208,7 +206,7 @@ G_M41124_IG13: ; bbWeight=0, funclet epilog, nogc, extend
pop {r4,r5,r6,r7,r8,r11,pc}
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 288, prolog size 20, PerfScore 157.50, instruction count 106, allocated bytes for code 288 (MethodHash=0e595f5b) for method System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (Tier0-FullOpts)
+; Total bytes of code 276, prolog size 20, PerfScore 157.00, instruction count 104, allocated bytes for code 276 (MethodHash=0e595f5b) for method System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -220,7 +218,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 108 (0x0006c) Actual length = 216 (0x0000d8)
+ Function Length : 105 (0x00069) Actual length = 210 (0x0000d2)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
@@ -237,7 +235,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 72 (0x000048)
+ Function Length : 33 (0x00021) Actual length = 66 (0x000042)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-8 (-3.15%) : 22531.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
@@ -118,9 +118,7 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0010 {r4},
mov r0, r5
; gcrRegs +[r0]
ldr r3, [r5]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x0C]
blx r3 // <unknown method>
; gcrRegs -[r0]
@@ -145,7 +143,7 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0010 {r4},
blx lr // <unknown method>
; gcrRegs -[r0 r6-r7]
; gcr arg pop 0
- ;; size=70 bbWeight=2 PerfScore 50.00
+ ;; size=62 bbWeight=2 PerfScore 46.00
G_M60946_IG07: ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4}, byref, isz
ldr r3, [r4+0x04]
ldr r2, [r4]
@@ -205,7 +203,7 @@ G_M60946_IG13: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 254, prolog size 14, PerfScore 332.00, instruction count 100, allocated bytes for code 254 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
+; Total bytes of code 246, prolog size 14, PerfScore 328.00, instruction count 98, allocated bytes for code 246 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -217,7 +215,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 127 (0x0007f) Actual length = 254 (0x0000fe)
+ Function Length : 123 (0x0007b) Actual length = 246 (0x0000f6)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-2.41%) : 72270.dasm - System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 13 single block inlinees; 11 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 35, 21.96) ref -> r4 this class-hnd single-def <System.Xml.XmlBinaryNodeWriter>
+; V00 this [V00,T00] ( 37, 22.96) ref -> r4 this class-hnd single-def <System.Xml.XmlBinaryNodeWriter>
; V01 arg1 [V01,T05] ( 8, 3.58) ref -> r6 class-hnd single-def <ubyte[]>
; V02 arg2 [V02,T03] ( 10, 10.23) int -> r5 single-def
; V03 arg3 [V03,T06] ( 4, 3 ) ref -> r7 class-hnd single-def <ubyte[]>
@@ -164,15 +164,14 @@ G_M41340_IG09: ; bbWeight=0.50, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0000
G_M41340_IG10: ; bbWeight=0.50, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0000 {}, byref
mov r0, r4
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r4]
+ ldr r3, [r3+0x44]
ldr r3, [r3+0x14]
blx r3 // System.Xml.XmlStreamNodeWriter:FlushBuffer():this
; gcrRegs -[r0]
; gcr arg pop 0
movs r3, 0
- ;; size=18 bbWeight=0.50 PerfScore 3.50
+ ;; size=12 bbWeight=0.50 PerfScore 3.00
G_M41340_IG11: ; bbWeight=0.50, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0000 {}, byref, isz
ldr r2, [r4+0x04]
; gcrRegs +[r2]
@@ -203,15 +202,14 @@ G_M41340_IG12: ; bbWeight=0.50, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0000
G_M41340_IG13: ; bbWeight=0.50, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0000 {}, byref
mov r0, r4
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r4]
+ ldr r3, [r3+0x44]
ldr r3, [r3+0x14]
blx r3 // System.Xml.XmlStreamNodeWriter:FlushBuffer():this
; gcrRegs -[r0]
; gcr arg pop 0
movs r3, 0
- ;; size=18 bbWeight=0.50 PerfScore 3.50
+ ;; size=12 bbWeight=0.50 PerfScore 3.00
G_M41340_IG14: ; bbWeight=0.50, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0000 {}, byref
ldr r2, [r4+0x04]
; gcrRegs +[r2]
@@ -367,7 +365,7 @@ G_M41340_IG26: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 498, prolog size 22, PerfScore 128.66, instruction count 193, allocated bytes for code 498 (MethodHash=af1d5e83) for method System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
+; Total bytes of code 486, prolog size 22, PerfScore 127.66, instruction count 191, allocated bytes for code 486 (MethodHash=af1d5e83) for method System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -379,7 +377,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 249 (0x000f9) Actual length = 498 (0x0001f2)
+ Function Length : 243 (0x000f3) Actual length = 486 (0x0001e6)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+40 (+83.33%) : 137035.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
@@ -9,13 +9,13 @@
; 3 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T04] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T05] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T04] ( 3, 2 ) int -> r7
+; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -23,47 +23,61 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T02] ( 3, 3 ) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 2 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T02] ( 3, 3 ) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T03] ( 3, 3 ) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 0
G_M48242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M48242_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
- bne SHORT G_M48242_IG06
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
- beq SHORT G_M48242_IG03
- movs r3, 0
- b SHORT G_M48242_IG04
- ;; size=28 bbWeight=1 PerfScore 11.00
-G_M48242_IG03: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
+ push {r4,r5,r6,r7,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M48242_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
+ bne SHORT G_M48242_IG08
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
+ bne SHORT G_M48242_IG07
+ ;; size=28 bbWeight=1 PerfScore 10.00
+G_M48242_IG03: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M48242_IG04
+ movs r7, 0
+ b SHORT G_M48242_IG05
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M48242_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r7, 1
;; size=2 bbWeight=1 PerfScore 1.00
-G_M48242_IG04: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
- ; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M48242_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+G_M48242_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r7
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M48242_IG06: ; bbWeight=1, epilog, nogc, extend
+ pop {r4,r5,r6,r7,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M48242_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
- movs r3, 0
- b SHORT G_M48242_IG04
+G_M48242_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ b SHORT G_M48242_IG03
+ ;; size=30 bbWeight=0 PerfScore 0.00
+G_M48242_IG08: ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r7, 0
+ b SHORT G_M48242_IG05
;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 48, prolog size 6, PerfScore 17.00, instruction count 19, allocated bytes for code 48 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
+; Total bytes of code 88, prolog size 8, PerfScore 20.00, instruction count 31, allocated bytes for code 88 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -75,7 +89,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 44 (0x0002c) Actual length = 88 (0x000058)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -83,7 +97,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 F0 pop {r4,r5,r6,r7,r11,lr} ; opsize 32
FF end
FF end
+40 (+83.33%) : 141932.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
@@ -9,13 +9,13 @@
; 3 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T04] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T05] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T04] ( 3, 2 ) int -> r7
+; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -23,47 +23,61 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T02] ( 3, 3 ) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 2 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T02] ( 3, 3 ) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T03] ( 3, 3 ) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 0
G_M48242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M48242_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
- bne SHORT G_M48242_IG06
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
- beq SHORT G_M48242_IG03
- movs r3, 0
- b SHORT G_M48242_IG04
- ;; size=28 bbWeight=1 PerfScore 11.00
-G_M48242_IG03: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
+ push {r4,r5,r6,r7,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M48242_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
+ bne SHORT G_M48242_IG08
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
+ bne SHORT G_M48242_IG07
+ ;; size=28 bbWeight=1 PerfScore 10.00
+G_M48242_IG03: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M48242_IG04
+ movs r7, 0
+ b SHORT G_M48242_IG05
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M48242_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r7, 1
;; size=2 bbWeight=1 PerfScore 1.00
-G_M48242_IG04: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
- ; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M48242_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+G_M48242_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r7
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M48242_IG06: ; bbWeight=1, epilog, nogc, extend
+ pop {r4,r5,r6,r7,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M48242_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
- movs r3, 0
- b SHORT G_M48242_IG04
+G_M48242_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ b SHORT G_M48242_IG03
+ ;; size=30 bbWeight=0 PerfScore 0.00
+G_M48242_IG08: ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r7, 0
+ b SHORT G_M48242_IG05
;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 48, prolog size 6, PerfScore 17.00, instruction count 19, allocated bytes for code 48 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
+; Total bytes of code 88, prolog size 8, PerfScore 20.00, instruction count 31, allocated bytes for code 88 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -75,7 +89,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 44 (0x0002c) Actual length = 88 (0x000058)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -83,7 +97,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 F0 pop {r4,r5,r6,r7,r11,lr} ; opsize 32
FF end
FF end
+40 (+83.33%) : 154864.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
@@ -9,13 +9,13 @@
; 3 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T04] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T05] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T04] ( 3, 2 ) int -> r7
+; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -23,47 +23,61 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T02] ( 3, 3 ) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 2 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T02] ( 3, 3 ) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T03] ( 3, 3 ) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 0
G_M48242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M48242_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
- bne SHORT G_M48242_IG06
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
- beq SHORT G_M48242_IG03
- movs r3, 0
- b SHORT G_M48242_IG04
- ;; size=28 bbWeight=1 PerfScore 11.00
-G_M48242_IG03: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
+ push {r4,r5,r6,r7,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M48242_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
+ bne SHORT G_M48242_IG08
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
+ bne SHORT G_M48242_IG07
+ ;; size=28 bbWeight=1 PerfScore 10.00
+G_M48242_IG03: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M48242_IG04
+ movs r7, 0
+ b SHORT G_M48242_IG05
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M48242_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r7, 1
;; size=2 bbWeight=1 PerfScore 1.00
-G_M48242_IG04: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
- ; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M48242_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+G_M48242_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r7
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M48242_IG06: ; bbWeight=1, epilog, nogc, extend
+ pop {r4,r5,r6,r7,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M48242_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
- movs r3, 0
- b SHORT G_M48242_IG04
+G_M48242_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ b SHORT G_M48242_IG03
+ ;; size=30 bbWeight=0 PerfScore 0.00
+G_M48242_IG08: ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r7, 0
+ b SHORT G_M48242_IG05
;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 48, prolog size 6, PerfScore 17.00, instruction count 19, allocated bytes for code 48 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
+; Total bytes of code 88, prolog size 8, PerfScore 20.00, instruction count 31, allocated bytes for code 88 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -75,7 +89,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 44 (0x0002c) Actual length = 88 (0x000058)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -83,7 +97,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 F0 pop {r4,r5,r6,r7,r11,lr} ; opsize 32
FF end
FF end
benchmarks.run_tiered.linux.arm.checked.mch
-6 (-16.67%) : 68621.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
@@ -8,10 +8,10 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceProvider>
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceProvider>
; V01 arg1 [V01,T02] ( 3, 2.50) ref -> r1 class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T01] ( 3, 5 ) ref -> r0 class-hnd exact single-def "dup spill" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator>
+; V03 tmp1 [V03,T00] ( 4, 6 ) ref -> r0 class-hnd exact single-def "dup spill" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
;* V05 tmp3 [V05 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator+CallSiteValidatorState>
;* V06 tmp4 [V06,T03] ( 0, 0 ) ref -> zero-ref single-def "field V05.<Singleton>k__BackingField (fldOffset=0x0)" P-INDEP
@@ -35,18 +35,17 @@ G_M15777_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M15777_IG04: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0-r1]
movs r2, 0
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x10]
blx r3 // <unknown method>
; gcrRegs -[r1]
- ;; size=16 bbWeight=0.50 PerfScore 3.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.50
G_M15777_IG05: ; bbWeight=0.50, epilog, nogc, extend
pop {r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 36, prolog size 6, PerfScore 9.00, instruction count 13, allocated bytes for code 36 (MethodHash=296dc25e) for method Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
+; Total bytes of code 30, prolog size 6, PerfScore 8.50, instruction count 12, allocated bytes for code 30 (MethodHash=296dc25e) for method Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
; ============================================================
Unwind Info:
@@ -58,7 +57,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 36 (0x000024)
+ Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-16.00%) : 20697.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
@@ -12,7 +12,7 @@
;* 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"
+; V04 cse0 [V04,T00] ( 3, 3 ) byref -> r0 "CSE - aggressive"
;
; Lcl frame size = 4
@@ -22,29 +22,29 @@ G_M5950_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M5950_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
- ldrb r0, [r0]
- cmp r0, 0
+ ldrb r3, [r0]
+ cmp r3, 0
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]
+G_M5950_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
+ ; byrRegs +[r0]
+ movs r3, 1
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M5950_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldrb r0, [r0]
- ;; size=10 bbWeight=1 PerfScore 3.00
+G_M5950_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
+ ldrb r0, [r0+0x01]
+ ; byrRegs -[r0]
+ ;; size=2 bbWeight=1 PerfScore 1.00
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 (Tier1)
+; Total bytes of code 42, prolog size 2, PerfScore 11.50, instruction count 15, allocated bytes for code 42 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -56,7 +56,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 ----
-12 (-6.74%) : 12907.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (Tier1)
@@ -11,7 +11,7 @@
; V00 this [V00,T00] ( 8, 5 ) ref -> [sp+0x04] this class-hnd EH-live single-def <System.IO.MemoryMappedFiles.MemoryMappedFile>
;* V01 arg1 [V01 ] ( 0, 0 ) ubyte -> zero-ref single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T01] ( 8, 4 ) ref -> r4 class-hnd exact "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T01] ( 10, 5 ) ref -> r4 class-hnd exact "dup spill" <<unknown class>>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
; V06 tmp4 [V06,T02] ( 3, 3 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <<unknown class>>
@@ -73,9 +73,8 @@ G_M36171_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
beq SHORT G_M36171_IG06
mov r0, r4
movs r1, 1
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r4]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x18]
; GC ptr vars -{V00}
blx r3 // <unknown method>
@@ -89,7 +88,7 @@ G_M36171_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
blx r3 // System.GC:SuppressFinalize(System.Object)
; gcrRegs -[r0 r4]
; gcr arg pop 0
- ;; size=38 bbWeight=0.50 PerfScore 7.50
+ ;; size=32 bbWeight=0.50 PerfScore 7.00
G_M36171_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
add sp, 12
pop {r4,r11,pc}
@@ -112,9 +111,8 @@ G_M36171_IG08: ; bbWeight=0, gcVars=00000001 {V00}, gcrefRegs=0000 {}, by
beq SHORT G_M36171_IG09
mov r0, r4
movs r1, 1
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r4]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x18]
; GC ptr vars -{V00}
blx r3 // <unknown method>
@@ -128,12 +126,12 @@ G_M36171_IG08: ; bbWeight=0, gcVars=00000001 {V00}, gcrefRegs=0000 {}, by
blx r3 // System.GC:SuppressFinalize(System.Object)
; gcrRegs -[r0 r4]
; gcr arg pop 0
- ;; size=48 bbWeight=0 PerfScore 0.00
+ ;; size=42 bbWeight=0 PerfScore 0.00
G_M36171_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
pop {r3,r4,r11,pc}
;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 178, prolog size 16, PerfScore 31.00, instruction count 68, allocated bytes for code 178 (MethodHash=43f372b4) for method System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (Tier1)
+; Total bytes of code 166, prolog size 16, PerfScore 30.50, instruction count 66, allocated bytes for code 166 (MethodHash=43f372b4) for method System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (Tier1)
; ============================================================
Unwind Info:
@@ -145,7 +143,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 58 (0x0003a) Actual length = 116 (0x000074)
+ Function Length : 55 (0x00037) Actual length = 110 (0x00006e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
@@ -162,7 +160,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
+ Function Length : 28 (0x0001c) Actual length = 56 (0x000038)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+32 (+47.06%) : 2358.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
@@ -8,12 +8,12 @@
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 1 ) ubyte -> r3
+; V02 loc1 [V02,T05] ( 2, 1 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V08 tmp4 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -21,56 +21,70 @@
;* V10 tmp6 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V13 tmp9 [V13,T01] ( 3, 2.50) int -> r4 "field V06.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T04] ( 2, 1 ) int -> r2 "field V09.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V13 tmp9 [V13,T01] ( 3, 2.50) int -> r5 "field V06.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T04] ( 3, 1.50) int -> r6 "field V09.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 cse0 [V15,T03] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
; Lcl frame size = 4
G_M41847_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
-G_M41847_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r4, [r0+0x0C]
- ands r1, r4, 2
- cmp r1, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M41847_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r4+0x0C]
+ ands r0, r5, 2
+ cmp r0, 0
beq SHORT G_M41847_IG05
;; size=10 bbWeight=1 PerfScore 4.00
-G_M41847_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+G_M41847_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ mov r0, r4
+ ; gcrRegs +[r0]
movw r1, 0xd1ff
movt r1, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // System.RuntimeType:IsSubclassOf(System.Type):ubyte:this
- ; gcrRegs -[r0]
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ; gcrRegs -[r0 r4]
+ ;; size=22 bbWeight=0.50 PerfScore 3.50
G_M41847_IG04: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M41847_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r4+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M41847_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[r4]
+ ldr r5, [r5+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M41847_IG06
- movs r3, 0
- b SHORT G_M41847_IG07
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M41847_IG06: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M41847_IG07: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M41847_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M41847_IG07
+ movs r0, 0
+ b SHORT G_M41847_IG08
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M41847_IG07: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M41847_IG08: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+G_M41847_IG08: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, epilog, nogc
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 68, prolog size 8, PerfScore 14.50, instruction count 23, allocated bytes for code 68 (MethodHash=8e725c88) for method System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
+; Total bytes of code 100, prolog size 8, PerfScore 20.50, instruction count 34, allocated bytes for code 100 (MethodHash=8e725c88) for method System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -82,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 68 (0x000044)
+ Function Length : 50 (0x00032) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -94,7 +108,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
+32 (+66.67%) : 3181.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Tier1)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r0
+; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -22,48 +22,62 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 1 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T06] ( 3, 1.50) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T05] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M42905_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M42905_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M42905_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
beq SHORT G_M42905_IG04
;; size=10 bbWeight=1 PerfScore 4.00
-G_M42905_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- movs r3, 0
- b SHORT G_M42905_IG06
+G_M42905_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r0, 0
+ b SHORT G_M42905_IG07
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M42905_IG04: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M42905_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M42905_IG05
- movs r3, 0
- b SHORT G_M42905_IG06
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M42905_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M42905_IG06: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M42905_IG07: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M42905_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M42905_IG06
+ movs r0, 0
+ b SHORT G_M42905_IG07
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M42905_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M42905_IG07: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r0
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M42905_IG08: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 48, prolog size 6, PerfScore 14.00, instruction count 19, allocated bytes for code 48 (MethodHash=06085866) for method System.RuntimeType:get_IsActualEnum():ubyte:this (Tier1)
+; Total bytes of code 80, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 80 (MethodHash=06085866) for method System.RuntimeType:get_IsActualEnum():ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -75,11 +89,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
+32 (+66.67%) : 3244.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r0
+; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -22,48 +22,62 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 1 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T06] ( 3, 1.50) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T05] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M48242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M48242_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M48242_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
beq SHORT G_M48242_IG04
;; size=10 bbWeight=1 PerfScore 4.00
-G_M48242_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- movs r3, 0
- b SHORT G_M48242_IG06
+G_M48242_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r0, 0
+ b SHORT G_M48242_IG07
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M48242_IG04: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M48242_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M48242_IG05
- movs r3, 0
- b SHORT G_M48242_IG06
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M48242_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M48242_IG06: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M48242_IG07: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M48242_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M48242_IG06
+ movs r0, 0
+ b SHORT G_M48242_IG07
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M48242_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M48242_IG07: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r0
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M48242_IG08: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 48, prolog size 6, PerfScore 14.00, instruction count 19, allocated bytes for code 48 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
+; Total bytes of code 80, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 80 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -75,11 +89,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
coreclr_tests.run.linux.arm.checked.mch
-8 (-16.00%) : 115828.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
@@ -12,7 +12,7 @@
;* 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"
+; V04 cse0 [V04,T00] ( 3, 3 ) byref -> r0 "CSE - aggressive"
;
; Lcl frame size = 4
@@ -22,29 +22,29 @@ G_M5950_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M5950_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
- ldrb r0, [r0]
- cmp r0, 0
+ ldrb r3, [r0]
+ cmp r3, 0
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]
+G_M5950_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
+ ; byrRegs +[r0]
+ movs r3, 1
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ strb r3, [r2]
;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M5950_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldrb r0, [r0]
- ;; size=10 bbWeight=1 PerfScore 3.00
+G_M5950_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
+ ldrb r0, [r0+0x01]
+ ; byrRegs -[r0]
+ ;; size=2 bbWeight=1 PerfScore 1.00
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 11.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 +56,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 ----
-12 (-15.79%) : 144170.dasm - Program:Main():int (FullOpts)
@@ -11,8 +11,8 @@
;# 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" <C>
;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <D>
-; V03 tmp3 [V03,T00] ( 2, 4 ) ref -> r0 single-def "argument with side effect"
-; V04 tmp4 [V04,T01] ( 2, 4 ) ref -> r0 single-def "argument with side effect"
+; V03 tmp3 [V03,T00] ( 3, 6 ) ref -> r0 single-def "argument with side effect"
+; V04 tmp4 [V04,T01] ( 3, 6 ) ref -> r0 single-def "argument with side effect"
;
; Lcl frame size = 0
@@ -27,9 +27,8 @@ G_M24375_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_NEWSFAST
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x30]
ldr r3, [r3]
blx r3 // <unknown method>
movw r0, 0xd1ff
@@ -39,19 +38,18 @@ G_M24375_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_NEWSFAST
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x10]
blx r3 // <unknown method>
movs r0, 100
; gcrRegs -[r0]
- ;; size=66 bbWeight=1 PerfScore 21.00
+ ;; size=54 bbWeight=1 PerfScore 19.00
G_M24375_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 76, prolog size 6, PerfScore 24.00, instruction count 24, allocated bytes for code 76 (MethodHash=d9b8a0c8) for method Program:Main():int (FullOpts)
+; Total bytes of code 64, prolog size 6, PerfScore 22.00, instruction count 22, allocated bytes for code 64 (MethodHash=d9b8a0c8) for method Program:Main():int (FullOpts)
; ============================================================
Unwind Info:
@@ -63,7 +61,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 38 (0x00026) Actual length = 76 (0x00004c)
+ Function Length : 32 (0x00020) Actual length = 64 (0x000040)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-14 (-14.58%) : 168812.dasm - GitHub_18522:TestEntryPoint():int (FullOpts)
@@ -9,11 +9,11 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 2, 4 ) int -> r0 "impAppendStmt"
+; V01 tmp1 [V01,T01] ( 2, 4 ) int -> r1 "impAppendStmt"
;* V02 tmp2 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <S0>
;* V03 tmp3 [V03 ] ( 0, 0 ) ushort -> zero-ref "field V02.F0 (fldOffset=0x0)" P-INDEP
;* V04 cse0 [V04,T02] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V05 cse1 [V05,T01] ( 2, 2 ) int -> r0 "CSE - aggressive"
+; V05 cse1 [V05,T00] ( 4, 4 ) int -> r0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -32,18 +32,15 @@ G_M45760_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M45760_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
- movw r1, 0xd1ff
- movt r1, 0xd1ff
- movs r3, 170
+ movs r1, 170
+ strh r1, [r0+0x02]
+ mov r1, r0
+ movs r3, 0
strh r3, [r1]
- movs r1, 0
- strh r1, [r0]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldrh r0, [r0]
+ ldrh r0, [r0+0x02]
cmp r0, 170
beq SHORT G_M45760_IG06
- ;; size=38 bbWeight=1 PerfScore 13.00
+ ;; size=24 bbWeight=1 PerfScore 10.00
G_M45760_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r0, 0
;; size=2 bbWeight=0.50 PerfScore 0.50
@@ -66,7 +63,7 @@ G_M45760_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
b SHORT G_M45760_IG03
;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 96, prolog size 6, PerfScore 23.00, instruction count 32, allocated bytes for code 96 (MethodHash=afe14d3f) for method GitHub_18522:TestEntryPoint():int (FullOpts)
+; Total bytes of code 82, prolog size 6, PerfScore 20.00, instruction count 29, allocated bytes for code 82 (MethodHash=afe14d3f) for method GitHub_18522:TestEntryPoint():int (FullOpts)
; ============================================================
Unwind Info:
@@ -78,7 +75,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 96 (0x000060)
+ Function Length : 41 (0x00029) Actual length = 82 (0x000052)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+44 (+733.33%) : 90758.dasm - bleu.bleun:main():int (FullOpts)
@@ -2,44 +2,71 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; sp based frame
+; r11 based frame
; partially interruptible
; No matching PGO data
; Final local variable assignments
;
-;* V00 loc0 [V00,T00] ( 0, 0 ) int -> zero-ref
+; V00 loc0 [V00,T00] ( 3, 2.50) int -> r0
;* V01 loc1 [V01,T01] ( 0, 0 ) int -> zero-ref
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
-G_M53027_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,lr}
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M53027_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53027_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+ push {r11,lr}
+ mov r11, sp
+ ;; size=6 bbWeight=1 PerfScore 2.00
+G_M53027_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ cmp r0, r3
+ bhi SHORT G_M53027_IG05
+ ;; size=20 bbWeight=1 PerfScore 6.00
+G_M53027_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ cmp r0, r3
+ bhs SHORT G_M53027_IG05
movs r0, 100
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M53027_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r3,pc}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ ;; size=14 bbWeight=0.50 PerfScore 2.50
+G_M53027_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M53027_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movs r0, 0
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M53027_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 6, prolog size 2, PerfScore 3.00, instruction count 3, allocated bytes for code 6 (MethodHash=f00530dc) for method ble_u.ble_un:main():int (FullOpts)
+; Total bytes of code 50, prolog size 6, PerfScore 12.00, instruction count 16, allocated bytes for code 50 (MethodHash=f00530dc) for method ble_u.ble_un:main():int (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 0
+ Epilog Count : 2
F bit : 0
- E bit : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 3 (0x00003) Actual length = 6 (0x000006)
- --- One epilog, unwind codes at 0
+ Function Length : 25 (0x00019) Actual length = 50 (0x000032)
+ ---- 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)
+ ---- Scope 1
+ 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)
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 08 pop {r3,lr} ; opsize 16
+ A8 00 pop {r11,lr} ; opsize 32
FF end
FF end
+44 (+733.33%) : 90855.dasm - cgtu.cgt:main():int (FullOpts)
@@ -2,44 +2,71 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; sp based frame
+; r11 based frame
; partially interruptible
; No matching PGO data
; Final local variable assignments
;
-;* V00 loc0 [V00,T00] ( 0, 0 ) int -> zero-ref
+; V00 loc0 [V00,T00] ( 3, 2.50) int -> r0
;* V01 loc1 [V01,T01] ( 0, 0 ) int -> zero-ref
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
-G_M42840_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,lr}
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M42840_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42840_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+ push {r11,lr}
+ mov r11, sp
+ ;; size=6 bbWeight=1 PerfScore 2.00
+G_M42840_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ cmp r0, r3
+ bgt SHORT G_M42840_IG05
+ ;; size=20 bbWeight=1 PerfScore 6.00
+G_M42840_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ cmp r0, r3
+ bge SHORT G_M42840_IG05
movs r0, 100
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M42840_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r3,pc}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ ;; size=14 bbWeight=0.50 PerfScore 2.50
+G_M42840_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M42840_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movs r0, 0
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M42840_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 6, prolog size 2, PerfScore 3.00, instruction count 3, allocated bytes for code 6 (MethodHash=7a6958a7) for method cgt_u._cgt:main():int (FullOpts)
+; Total bytes of code 50, prolog size 6, PerfScore 12.00, instruction count 16, allocated bytes for code 50 (MethodHash=7a6958a7) for method cgt_u._cgt:main():int (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 0
+ Epilog Count : 2
F bit : 0
- E bit : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 3 (0x00003) Actual length = 6 (0x000006)
- --- One epilog, unwind codes at 0
+ Function Length : 25 (0x00019) Actual length = 50 (0x000032)
+ ---- 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)
+ ---- Scope 1
+ 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)
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 08 pop {r3,lr} ; opsize 16
+ A8 00 pop {r11,lr} ; opsize 32
FF end
FF end
+44 (+733.33%) : 90736.dasm - bgtu.bgt:main():int (FullOpts)
@@ -2,44 +2,71 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; sp based frame
+; r11 based frame
; partially interruptible
; No matching PGO data
; Final local variable assignments
;
-;* V00 loc0 [V00,T00] ( 0, 0 ) int -> zero-ref
+; V00 loc0 [V00,T00] ( 3, 2.50) int -> r0
;* V01 loc1 [V01,T01] ( 0, 0 ) int -> zero-ref
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
-G_M46072_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,lr}
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M46072_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46072_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+ push {r11,lr}
+ mov r11, sp
+ ;; size=6 bbWeight=1 PerfScore 2.00
+G_M46072_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ cmp r0, r3
+ bgt SHORT G_M46072_IG05
+ ;; size=20 bbWeight=1 PerfScore 6.00
+G_M46072_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ cmp r0, r3
+ bge SHORT G_M46072_IG05
movs r0, 100
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M46072_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r3,pc}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ ;; size=14 bbWeight=0.50 PerfScore 2.50
+G_M46072_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M46072_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ movs r0, 0
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M46072_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r11,pc}
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 6, prolog size 2, PerfScore 3.00, instruction count 3, allocated bytes for code 6 (MethodHash=54174c07) for method bgt_u._bgt:main():int (FullOpts)
+; Total bytes of code 50, prolog size 6, PerfScore 12.00, instruction count 16, allocated bytes for code 50 (MethodHash=54174c07) for method bgt_u._bgt:main():int (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 0
+ Epilog Count : 2
F bit : 0
- E bit : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 3 (0x00003) Actual length = 6 (0x000006)
- --- One epilog, unwind codes at 0
+ Function Length : 25 (0x00019) Actual length = 50 (0x000032)
+ ---- 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)
+ ---- Scope 1
+ 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)
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 08 pop {r3,lr} ; opsize 16
+ A8 00 pop {r11,lr} ; opsize 32
FF end
FF end
libraries.pmi.linux.arm.checked.mch
-6 (-16.67%) : 198373.dasm - Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary2[ubyte,System.Nullable
1[int]]:GetHashCode():int:this (FullOpts)
@@ -7,9 +7,9 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) byref -> r0 this single-def
+; V00 this [V00,T01] ( 3, 3 ) byref -> r0 this single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 3, 5 ) ref -> r0 class-hnd exact single-def "dup spill" <<unknown class>>
+; V02 tmp1 [V02,T00] ( 4, 6 ) ref -> r0 class-hnd exact single-def "dup spill" <<unknown class>>
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 0
@@ -35,18 +35,17 @@ G_M21500_IG04: ; bbWeight=0.50, epilog, nogc, extend
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M21500_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x0C]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=6 bbWeight=0.50 PerfScore 1.50
G_M21500_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop {r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
;; size=6 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 36, prolog size 6, PerfScore 9.00, instruction count 13, allocated bytes for code 36 (MethodHash=bb53ac03) for method Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[ubyte,System.Nullable`1[int]]:GetHashCode():int:this (FullOpts)
+; Total bytes of code 30, prolog size 6, PerfScore 8.50, instruction count 12, allocated bytes for code 30 (MethodHash=bb53ac03) for method Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[ubyte,System.Nullable`1[int]]:GetHashCode():int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -58,7 +57,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 36 (0x000024)
+ Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-6 (-16.67%) : 209665.dasm - Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary2[ubyte,System.Nullable
1[int]]:GetHashCode():int:this (FullOpts)
@@ -7,9 +7,9 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) byref -> r0 this single-def
+; V00 this [V00,T01] ( 3, 3 ) byref -> r0 this single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 3, 5 ) ref -> r0 class-hnd exact single-def "dup spill" <<unknown class>>
+; V02 tmp1 [V02,T00] ( 4, 6 ) ref -> r0 class-hnd exact single-def "dup spill" <<unknown class>>
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 0
@@ -35,18 +35,17 @@ G_M21500_IG04: ; bbWeight=0.50, epilog, nogc, extend
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M21500_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x0C]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=6 bbWeight=0.50 PerfScore 1.50
G_M21500_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop {r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
;; size=6 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 36, prolog size 6, PerfScore 9.00, instruction count 13, allocated bytes for code 36 (MethodHash=bb53ac03) for method Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[ubyte,System.Nullable`1[int]]:GetHashCode():int:this (FullOpts)
+; Total bytes of code 30, prolog size 6, PerfScore 8.50, instruction count 12, allocated bytes for code 30 (MethodHash=bb53ac03) for method Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[ubyte,System.Nullable`1[int]]:GetHashCode():int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -58,7 +57,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 36 (0x000024)
+ Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-6 (-16.67%) : 237461.dasm - System.Net.FtpControlStream:get_WelcomeMessage():System.String:this (FullOpts)
@@ -7,9 +7,9 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.Net.FtpControlStream>
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.Net.FtpControlStream>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 3, 5 ) ref -> r0 class-hnd exact single-def "dup spill" <<unknown class>>
+; V02 tmp1 [V02,T00] ( 4, 6 ) ref -> r0 class-hnd exact single-def "dup spill" <<unknown class>>
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 0
@@ -33,18 +33,17 @@ G_M24354_IG04: ; bbWeight=0.50, epilog, nogc, extend
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M24354_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x04]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=6 bbWeight=0.50 PerfScore 1.50
G_M24354_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop {r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
;; size=6 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 36, prolog size 6, PerfScore 9.00, instruction count 13, allocated bytes for code 36 (MethodHash=2e28a0dd) for method System.Net.FtpControlStream:get_WelcomeMessage():System.String:this (FullOpts)
+; Total bytes of code 30, prolog size 6, PerfScore 8.50, instruction count 12, allocated bytes for code 30 (MethodHash=2e28a0dd) for method System.Net.FtpControlStream:get_WelcomeMessage():System.String:this (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +55,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 36 (0x000024)
+ Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+2 (+2.94%) : 267336.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
@@ -30,6 +30,7 @@ G_M2750_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
+ ldr r3, [r3+0x68]
ldr r3, [r3+0x08]
blx r3 // <unknown method>
; gcrRegs +[r0]
@@ -43,12 +44,12 @@ G_M2750_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_REF
; gcrRegs -[r1]
- ;; size=52 bbWeight=1.00 PerfScore 16.00
+ ;; size=54 bbWeight=1.00 PerfScore 17.00
G_M2750_IG03: ; bbWeight=1.00, epilog, nogc, extend
pop {r2,r3,r11,pc}
;; size=4 bbWeight=1.00 PerfScore 1.00
-; Total bytes of code 68, prolog size 12, PerfScore 21.00, instruction count 21, allocated bytes for code 68 (MethodHash=43b3f541) for method System.Composition.Hosting.Providers.ExportFactory.ExportFactoryWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
+; Total bytes of code 70, prolog size 12, PerfScore 22.00, instruction count 22, allocated bytes for code 70 (MethodHash=43b3f541) for method System.Composition.Hosting.Providers.ExportFactory.ExportFactoryWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -60,7 +61,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 68 (0x000044)
+ Function Length : 35 (0x00023) Actual length = 70 (0x000046)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+2 (+3.12%) : 71242.dasm - Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper:GetExporterInfo():System.String (FullOpts)
@@ -28,6 +28,7 @@ G_M33901_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
+ ldr r3, [r3+0x34]
ldr r3, [r3+0x14]
blx r3 // <unknown method>
; gcrRegs +[r0]
@@ -45,13 +46,13 @@ G_M33901_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
- ;; size=52 bbWeight=1.00 PerfScore 18.00
+ ;; size=54 bbWeight=1.00 PerfScore 19.00
G_M33901_IG03: ; bbWeight=1.00, epilog, nogc, extend
pop {r11,lr}
bx r3 // <unknown method>
;; size=6 bbWeight=1.00 PerfScore 2.00
-; Total bytes of code 64, prolog size 6, PerfScore 22.00, instruction count 22, allocated bytes for code 64 (MethodHash=59f27b92) for method Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper:GetExporterInfo():System.String (FullOpts)
+; Total bytes of code 66, prolog size 6, PerfScore 23.00, instruction count 23, allocated bytes for code 66 (MethodHash=59f27b92) for method Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper:GetExporterInfo():System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -63,7 +64,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 64 (0x000040)
+ Function Length : 33 (0x00021) Actual length = 66 (0x000042)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+2 (+3.57%) : 223749.dasm - Microsoft.Build.Shared.FileUtilities:get_ExecutingAssemblyPath():System.String (FullOpts)
@@ -25,6 +25,7 @@ G_M26176_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
+ ldr r3, [r3+0x34]
ldr r3, [r3+0x14]
blx r3 // <unknown method>
; gcrRegs +[r0]
@@ -35,13 +36,13 @@ G_M26176_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
- ;; size=44 bbWeight=1.00 PerfScore 14.00
+ ;; size=46 bbWeight=1.00 PerfScore 15.00
G_M26176_IG03: ; bbWeight=1.00, epilog, nogc, extend
pop {r11,lr}
bx r3 // System.IO.Path:GetFullPath(System.String):System.String
;; size=6 bbWeight=1.00 PerfScore 2.00
-; Total bytes of code 56, prolog size 6, PerfScore 18.00, instruction count 18, allocated bytes for code 56 (MethodHash=6f0499bf) for method Microsoft.Build.Shared.FileUtilities:get_ExecutingAssemblyPath():System.String (FullOpts)
+; Total bytes of code 58, prolog size 6, PerfScore 19.00, instruction count 19, allocated bytes for code 58 (MethodHash=6f0499bf) for method Microsoft.Build.Shared.FileUtilities:get_ExecutingAssemblyPath():System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 28 (0x0001c) Actual length = 56 (0x000038)
+ Function Length : 29 (0x0001d) Actual length = 58 (0x00003a)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
libraries_tests.run.linux.arm.Release.mch
-6 (-16.67%) : 135145.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
@@ -12,7 +12,7 @@
; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceProvider>
; V01 arg1 [V01,T02] ( 3, 2.04) ref -> r1 class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T01] ( 3, 4.09) ref -> r0 class-hnd exact single-def "dup spill" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator>
+; V03 tmp1 [V03,T01] ( 4, 4.17) ref -> r0 class-hnd exact single-def "dup spill" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
;* V05 tmp3 [V05 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator+CallSiteValidatorState>
;* V06 tmp4 [V06,T03] ( 0, 0 ) ref -> zero-ref single-def "field V05.<Singleton>k__BackingField (fldOffset=0x0)" P-INDEP
@@ -36,18 +36,17 @@ G_M15777_IG03: ; bbWeight=0.96, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M15777_IG04: ; bbWeight=0.04, gcVars=00000000 {}, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0-r1]
movs r2, 0
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x10]
blx r3 // <unknown method>
; gcrRegs -[r1]
- ;; size=16 bbWeight=0.04 PerfScore 0.26
+ ;; size=10 bbWeight=0.04 PerfScore 0.22
G_M15777_IG05: ; bbWeight=0.04, epilog, nogc, extend
pop {r11,pc}
;; size=4 bbWeight=0.04 PerfScore 0.04
-; Total bytes of code 36, prolog size 6, PerfScore 6.26, instruction count 13, allocated bytes for code 36 (MethodHash=296dc25e) for method Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
+; Total bytes of code 30, prolog size 6, PerfScore 6.22, instruction count 12, allocated bytes for code 30 (MethodHash=296dc25e) for method Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 36 (0x000024)
+ Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-6 (-16.67%) : 122743.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
@@ -12,7 +12,7 @@
; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceProvider>
; V01 arg1 [V01,T02] ( 3, 2.04) ref -> r1 class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T01] ( 3, 4.07) ref -> r0 class-hnd exact single-def "dup spill" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator>
+; V03 tmp1 [V03,T01] ( 4, 4.15) ref -> r0 class-hnd exact single-def "dup spill" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
;* V05 tmp3 [V05 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator+CallSiteValidatorState>
;* V06 tmp4 [V06,T03] ( 0, 0 ) ref -> zero-ref single-def "field V05.<Singleton>k__BackingField (fldOffset=0x0)" P-INDEP
@@ -36,18 +36,17 @@ G_M15777_IG03: ; bbWeight=0.96, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M15777_IG04: ; bbWeight=0.04, gcVars=00000000 {}, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0-r1]
movs r2, 0
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x10]
blx r3 // <unknown method>
; gcrRegs -[r1]
- ;; size=16 bbWeight=0.04 PerfScore 0.22
+ ;; size=10 bbWeight=0.04 PerfScore 0.18
G_M15777_IG05: ; bbWeight=0.04, epilog, nogc, extend
pop {r11,pc}
;; size=4 bbWeight=0.04 PerfScore 0.04
-; Total bytes of code 36, prolog size 6, PerfScore 6.22, instruction count 13, allocated bytes for code 36 (MethodHash=296dc25e) for method Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
+; Total bytes of code 30, prolog size 6, PerfScore 6.18, instruction count 12, allocated bytes for code 30 (MethodHash=296dc25e) for method Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 36 (0x000024)
+ Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-15.38%) : 641898.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
@@ -13,7 +13,7 @@
;* 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"
+; V04 cse0 [V04,T00] ( 3, 3 ) byref -> r3 "CSE - aggressive"
;
; Lcl frame size = 4
@@ -21,32 +21,31 @@ G_M5950_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push {r3,lr}
;; size=2 bbWeight=1 PerfScore 1.00
G_M5950_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldrb r0, [r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldrb r0, [r3]
cmp r0, 0
beq SHORT G_M5950_IG05
;; size=14 bbWeight=1 PerfScore 5.00
-G_M5950_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldrb r0, [r0]
- ;; size=10 bbWeight=1 PerfScore 3.00
+G_M5950_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref
+ ; byrRegs +[r3]
+ ldrb r0, [r3+0x01]
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M5950_IG04: ; bbWeight=1, epilog, nogc, extend
pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-G_M5950_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- movs r3, 1
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- strb r3, [r2]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- strb r3, [r2]
+G_M5950_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, gcvars, byref, isz
+ movs r2, 1
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ strb r2, [r1]
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ strb r2, [r1]
b SHORT G_M5950_IG03
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 52, prolog size 2, PerfScore 10.00, instruction count 18, allocated bytes for code 52 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
+; Total bytes of code 44, prolog size 2, PerfScore 8.00, instruction count 16, allocated bytes for code 44 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -58,7 +57,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
+ Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+32 (+66.67%) : 3598.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Instrumented Tier1)
@@ -8,13 +8,13 @@
; 1 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r0
+; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -22,48 +22,62 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 1 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T06] ( 3, 1.50) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T05] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M42905_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M42905_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M42905_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
beq SHORT G_M42905_IG04
;; size=10 bbWeight=1 PerfScore 4.00
-G_M42905_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- movs r3, 0
- b SHORT G_M42905_IG06
+G_M42905_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r0, 0
+ b SHORT G_M42905_IG07
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M42905_IG04: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M42905_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M42905_IG05
- movs r3, 0
- b SHORT G_M42905_IG06
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M42905_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M42905_IG06: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M42905_IG07: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M42905_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M42905_IG06
+ movs r0, 0
+ b SHORT G_M42905_IG07
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M42905_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M42905_IG07: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r0
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M42905_IG08: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 48, prolog size 6, PerfScore 14.00, instruction count 19, allocated bytes for code 48 (MethodHash=06085866) for method System.RuntimeType:get_IsActualEnum():ubyte:this (Instrumented Tier1)
+; Total bytes of code 80, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 80 (MethodHash=06085866) for method System.RuntimeType:get_IsActualEnum():ubyte:this (Instrumented Tier1)
; ============================================================
Unwind Info:
@@ -75,11 +89,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
+32 (+66.67%) : 657503.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
@@ -9,13 +9,13 @@
; 1 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T04] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T06] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T05] ( 3, 2 ) int -> r3
+; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -23,47 +23,60 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T02] ( 3, 3 ) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 2 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T03] ( 3, 3 ) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T04] ( 3, 3 ) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> r1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M48242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M48242_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
- bne SHORT G_M48242_IG06
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M48242_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
+ bne SHORT G_M48242_IG07
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M48242_IG03
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ ; gcrRegs -[r0]
+ ;; size=50 bbWeight=1 PerfScore 17.00
+G_M48242_IG03: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M48242_IG04
movs r3, 0
- b SHORT G_M48242_IG04
- ;; size=28 bbWeight=1 PerfScore 11.00
-G_M48242_IG03: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+ b SHORT G_M48242_IG05
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M48242_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
movs r3, 1
;; size=2 bbWeight=1 PerfScore 1.00
-G_M48242_IG04: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
- ; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M48242_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+G_M48242_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r3
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M48242_IG06: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M48242_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
+G_M48242_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
movs r3, 0
- b SHORT G_M48242_IG04
+ b SHORT G_M48242_IG05
;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 48, prolog size 6, PerfScore 17.00, instruction count 19, allocated bytes for code 48 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
+; Total bytes of code 80, prolog size 8, PerfScore 27.00, instruction count 29, allocated bytes for code 80 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -75,7 +88,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -83,7 +96,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
+32 (+66.67%) : 173296.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
@@ -9,13 +9,13 @@
; 1 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T04] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T06] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T05] ( 3, 2 ) int -> r3
+; V06 tmp2 [V06,T01] ( 2, 4 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -23,47 +23,60 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T02] ( 3, 3 ) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 2 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T03] ( 3, 3 ) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T04] ( 3, 3 ) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> r1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M48242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M48242_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
- bne SHORT G_M48242_IG06
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M48242_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
+ bne SHORT G_M48242_IG07
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M48242_IG03
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ ; gcrRegs -[r0]
+ ;; size=50 bbWeight=1 PerfScore 17.00
+G_M48242_IG03: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M48242_IG04
movs r3, 0
- b SHORT G_M48242_IG04
- ;; size=28 bbWeight=1 PerfScore 11.00
-G_M48242_IG03: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+ b SHORT G_M48242_IG05
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M48242_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
movs r3, 1
;; size=2 bbWeight=1 PerfScore 1.00
-G_M48242_IG04: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
- ; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M48242_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+G_M48242_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r3
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M48242_IG06: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M48242_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
+G_M48242_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
movs r3, 0
- b SHORT G_M48242_IG04
+ b SHORT G_M48242_IG05
;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 48, prolog size 6, PerfScore 17.00, instruction count 19, allocated bytes for code 48 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
+; Total bytes of code 80, prolog size 8, PerfScore 27.00, instruction count 29, allocated bytes for code 80 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -75,7 +88,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -83,7 +96,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
librariestestsnotieredcompilation.run.linux.arm.Release.mch
-6 (-16.67%) : 2758.dasm - Microsoft.VisualStudio.Composition.ByValueEquality+AssemblyNameComparer:GetHashCode(System.Reflection.AssemblyName):int:this (FullOpts)
@@ -9,9 +9,9 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <Microsoft.VisualStudio.Composition.ByValueEquality+AssemblyNameComparer>
-; V01 arg1 [V01,T00] ( 3, 3 ) ref -> r1 class-hnd single-def <System.Reflection.AssemblyName>
+; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r1 class-hnd single-def <System.Reflection.AssemblyName>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T01] ( 3, 5 ) ref -> r0 class-hnd exact single-def "dup spill" <System.String>
+; V03 tmp1 [V03,T00] ( 4, 6 ) ref -> r0 class-hnd exact single-def "dup spill" <System.String>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 0
@@ -36,18 +36,17 @@ G_M19135_IG04: ; bbWeight=0.50, epilog, nogc, extend
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M19135_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x0C]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=6 bbWeight=0.50 PerfScore 1.50
G_M19135_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop {r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
;; size=6 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 36, prolog size 6, PerfScore 9.00, instruction count 13, allocated bytes for code 36 (MethodHash=e126b540) for method Microsoft.VisualStudio.Composition.ByValueEquality+AssemblyNameComparer:GetHashCode(System.Reflection.AssemblyName):int:this (FullOpts)
+; Total bytes of code 30, prolog size 6, PerfScore 8.50, instruction count 12, allocated bytes for code 30 (MethodHash=e126b540) for method Microsoft.VisualStudio.Composition.ByValueEquality+AssemblyNameComparer:GetHashCode(System.Reflection.AssemblyName):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 36 (0x000024)
+ Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-6 (-16.67%) : 83554.dasm - System.ComponentModel.DesignerCategoryAttribute:GetHashCode():int:this (FullOpts)
@@ -8,9 +8,9 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.ComponentModel.DesignerCategoryAttribute>
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.ComponentModel.DesignerCategoryAttribute>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 3, 5 ) ref -> r0 class-hnd exact single-def "dup spill" <System.String>
+; V02 tmp1 [V02,T00] ( 4, 6 ) ref -> r0 class-hnd exact single-def "dup spill" <System.String>
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 0
@@ -34,18 +34,17 @@ G_M17841_IG04: ; bbWeight=0.50, epilog, nogc, extend
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M17841_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x0C]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=6 bbWeight=0.50 PerfScore 1.50
G_M17841_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop {r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
;; size=6 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 36, prolog size 6, PerfScore 9.00, instruction count 13, allocated bytes for code 36 (MethodHash=dda4ba4e) for method System.ComponentModel.DesignerCategoryAttribute:GetHashCode():int:this (FullOpts)
+; Total bytes of code 30, prolog size 6, PerfScore 8.50, instruction count 12, allocated bytes for code 30 (MethodHash=dda4ba4e) for method System.ComponentModel.DesignerCategoryAttribute:GetHashCode():int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -57,7 +56,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 36 (0x000024)
+ Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-6 (-16.67%) : 11415.dasm - Microsoft.CodeAnalysis.LocalizableString+FixedLocalizableString:GetHash():int:this (FullOpts)
@@ -7,9 +7,9 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.LocalizableString+FixedLocalizableString>
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.LocalizableString+FixedLocalizableString>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 3, 5 ) ref -> r0 class-hnd exact single-def "dup spill" <<unknown class>>
+; V02 tmp1 [V02,T00] ( 4, 6 ) ref -> r0 class-hnd exact single-def "dup spill" <<unknown class>>
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 0
@@ -33,18 +33,17 @@ G_M47078_IG04: ; bbWeight=0.50, epilog, nogc, extend
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M47078_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r0]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x0C]
- ;; size=12 bbWeight=0.50 PerfScore 2.00
+ ;; size=6 bbWeight=0.50 PerfScore 1.50
G_M47078_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop {r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
;; size=6 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 36, prolog size 6, PerfScore 9.00, instruction count 13, allocated bytes for code 36 (MethodHash=a2af4819) for method Microsoft.CodeAnalysis.LocalizableString+FixedLocalizableString:GetHash():int:this (FullOpts)
+; Total bytes of code 30, prolog size 6, PerfScore 8.50, instruction count 12, allocated bytes for code 30 (MethodHash=a2af4819) for method Microsoft.CodeAnalysis.LocalizableString+FixedLocalizableString:GetHash():int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +55,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 36 (0x000024)
+ Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+2 (+3.70%) : 206280.dasm - System.Tests.Types.NestedGenericTypeParameter2Tests:CreateType():System.Type:this (FullOpts)
@@ -27,6 +27,7 @@ G_M2263_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
+ ldr r3, [r3+0x64]
ldr r3, [r3+0x1C]
blx r3 // <unknown method>
; gcrRegs +[r0]
@@ -35,7 +36,7 @@ G_M2263_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
cmp r3, r2
bhs SHORT G_M2263_IG04
ldr r0, [r0+0x0C]
- ;; size=32 bbWeight=1.00 PerfScore 12.00
+ ;; size=34 bbWeight=1.00 PerfScore 13.00
G_M2263_IG03: ; bbWeight=1.00, epilog, nogc, extend
pop {r11,pc}
;; size=4 bbWeight=1.00 PerfScore 1.00
@@ -47,7 +48,7 @@ G_M2263_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefR
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 54, prolog size 6, PerfScore 15.00, instruction count 19, allocated bytes for code 54 (MethodHash=15d1f728) for method System.Tests.Types.NestedGenericTypeParameter2Tests:CreateType():System.Type:this (FullOpts)
+; Total bytes of code 56, prolog size 6, PerfScore 16.00, instruction count 20, allocated bytes for code 56 (MethodHash=15d1f728) for method System.Tests.Types.NestedGenericTypeParameter2Tests:CreateType():System.Type:this (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +60,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
+ Function Length : 28 (0x0001c) Actual length = 56 (0x000038)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+2 (+6.25%) : 178697.dasm - System.Reflection.Tests.AssemblyTests:GetExecutingAssembly():System.Reflection.Assembly (FullOpts)
@@ -25,15 +25,16 @@ G_M34055_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
+ ldr r3, [r3+0x34]
ldr r3, [r3+0x14]
- ;; size=20 bbWeight=1.00 PerfScore 6.00
+ ;; size=22 bbWeight=1.00 PerfScore 7.00
G_M34055_IG03: ; bbWeight=1.00, epilog, nogc, extend
pop {r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
;; size=6 bbWeight=1.00 PerfScore 2.00
-; Total bytes of code 32, prolog size 6, PerfScore 10.00, instruction count 10, allocated bytes for code 32 (MethodHash=b4987af8) for method System.Reflection.Tests.AssemblyTests:GetExecutingAssembly():System.Reflection.Assembly (FullOpts)
+; Total bytes of code 34, prolog size 6, PerfScore 11.00, instruction count 11, allocated bytes for code 34 (MethodHash=b4987af8) for method System.Reflection.Tests.AssemblyTests:GetExecutingAssembly():System.Reflection.Assembly (FullOpts)
; ============================================================
Unwind Info:
@@ -45,7 +46,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 32 (0x000020)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+2 (+6.25%) : 185671.dasm - System.Reflection.Tests.Helpers:get_ExecutingAssembly():System.Reflection.Assembly (FullOpts)
@@ -25,15 +25,16 @@ G_M55638_IG02: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
+ ldr r3, [r3+0x34]
ldr r3, [r3+0x14]
- ;; size=20 bbWeight=1.00 PerfScore 6.00
+ ;; size=22 bbWeight=1.00 PerfScore 7.00
G_M55638_IG03: ; bbWeight=1.00, epilog, nogc, extend
pop {r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
;; size=6 bbWeight=1.00 PerfScore 2.00
-; Total bytes of code 32, prolog size 6, PerfScore 10.00, instruction count 10, allocated bytes for code 32 (MethodHash=6f5c26a9) for method System.Reflection.Tests.Helpers:get_ExecutingAssembly():System.Reflection.Assembly (FullOpts)
+; Total bytes of code 34, prolog size 6, PerfScore 11.00, instruction count 11, allocated bytes for code 34 (MethodHash=6f5c26a9) for method System.Reflection.Tests.Helpers:get_ExecutingAssembly():System.Reflection.Assembly (FullOpts)
; ============================================================
Unwind Info:
@@ -45,7 +46,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 32 (0x000020)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
realworld.run.linux.arm.checked.mch
-24 (-6.74%) : 3761.dasm - Microsoft.Build.Shared.BuildEnvironmentHelper:CheckIfRunningTests():ubyte (FullOpts)
@@ -13,7 +13,7 @@
;* V02 loc2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V03 loc3 [V03,T05] ( 3, 1.50) ubyte -> r5
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T00] ( 4, 3.50) ref -> r5 single-def "inline UNBOX clone1"
+; V05 tmp1 [V05,T01] ( 4, 3.50) ref -> r5 single-def "inline UNBOX clone1"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
;* V07 tmp3 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V08 tmp4 [V08,T09] ( 0, 0 ) ubyte -> zero-ref single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
@@ -22,7 +22,7 @@
; V11 tmp7 [V11,T02] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
; V12 tmp8 [V12,T03] ( 3, 3 ) ref -> r0 single-def "argument with side effect"
; V13 PSPSym [V13,T08] ( 1, 1 ) int -> [sp+0x0C] do-not-enreg[V] "PSPSym"
-; V14 cse0 [V14,T01] ( 4, 3 ) byref -> r4 "CSE - aggressive"
+; V14 cse0 [V14,T00] ( 7, 4.50) byref -> r4 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -42,17 +42,15 @@ G_M36239_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmp r0, 0
beq SHORT G_M36239_IG05
;; size=14 bbWeight=1 PerfScore 5.00
-G_M36239_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldrb r0, [r0]
- ;; size=10 bbWeight=0.50 PerfScore 1.50
+G_M36239_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
+ ; byrRegs +[r4]
+ ldrb r0, [r4+0x01]
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
G_M36239_IG04: ; bbWeight=0.50, epilog, nogc, extend
add sp, 16
pop {r4,r5,r11,pc}
;; size=6 bbWeight=0.50 PerfScore 1.00
G_M36239_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref
- ; byrRegs +[r4]
movw r1, 0xd1ff
movt r1, 0xd1ff
ldr r0, [r1]
@@ -81,11 +79,9 @@ G_M36239_IG06: ; bbWeight=0.50, gcVars=00000040 {V00}, gcrefRegs=0001 {r0
ldrb r0, [r4]
cmp r0, 0
beq SHORT G_M36239_IG07
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldrb r5, [r0]
+ ldrb r5, [r4+0x01]
b SHORT G_M36239_IG13
- ;; size=54 bbWeight=0.50 PerfScore 9.50
+ ;; size=46 bbWeight=0.50 PerfScore 8.50
G_M36239_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -168,12 +164,12 @@ G_M36239_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
bkpt
;; size=14 bbWeight=0 PerfScore 0.00
-G_M36239_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldrb r5, [r0]
- ;; size=10 bbWeight=0.50 PerfScore 1.50
+G_M36239_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
+ ; byrRegs +[r4]
+ ldrb r5, [r4+0x01]
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
G_M36239_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ; byrRegs -[r4]
ldrb r0, [sp+0x04] // [V01 loc1]
cmp r0, 0
beq SHORT G_M36239_IG14
@@ -216,7 +212,7 @@ G_M36239_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
pop {r2,r3,r4,r5,r11,pc}
;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 356, prolog size 18, PerfScore 55.75, instruction count 124, allocated bytes for code 356 (MethodHash=70747270) for method Microsoft.Build.Shared.BuildEnvironmentHelper:CheckIfRunningTests():ubyte (FullOpts)
+; Total bytes of code 332, prolog size 18, PerfScore 52.75, instruction count 118, allocated bytes for code 332 (MethodHash=70747270) for method Microsoft.Build.Shared.BuildEnvironmentHelper:CheckIfRunningTests():ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -228,7 +224,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 160 (0x000a0) Actual length = 320 (0x000140)
+ Function Length : 148 (0x00094) Actual length = 296 (0x000128)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-6.74%) : 572.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (FullOpts)
@@ -11,7 +11,7 @@
; V00 this [V00,T00] ( 8, 5 ) ref -> [sp+0x04] this class-hnd EH-live single-def <System.IO.MemoryMappedFiles.MemoryMappedFile>
;* V01 arg1 [V01 ] ( 0, 0 ) ubyte -> zero-ref single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T01] ( 8, 4 ) ref -> r4 class-hnd exact "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T01] ( 10, 5 ) ref -> r4 class-hnd exact "dup spill" <<unknown class>>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
; V06 tmp4 [V06,T02] ( 3, 3 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <<unknown class>>
@@ -73,9 +73,8 @@ G_M36171_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
beq SHORT G_M36171_IG06
mov r0, r4
movs r1, 1
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r4]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x18]
; GC ptr vars -{V00}
blx r3 // <unknown method>
@@ -89,7 +88,7 @@ G_M36171_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
blx r3 // System.GC:SuppressFinalize(System.Object)
; gcrRegs -[r0 r4]
; gcr arg pop 0
- ;; size=38 bbWeight=0.50 PerfScore 7.50
+ ;; size=32 bbWeight=0.50 PerfScore 7.00
G_M36171_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
add sp, 12
pop {r4,r11,pc}
@@ -112,9 +111,8 @@ G_M36171_IG08: ; bbWeight=0, gcVars=00000001 {V00}, gcrefRegs=0000 {}, by
beq SHORT G_M36171_IG09
mov r0, r4
movs r1, 1
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r4]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x18]
; GC ptr vars -{V00}
blx r3 // <unknown method>
@@ -128,12 +126,12 @@ G_M36171_IG08: ; bbWeight=0, gcVars=00000001 {V00}, gcrefRegs=0000 {}, by
blx r3 // System.GC:SuppressFinalize(System.Object)
; gcrRegs -[r0 r4]
; gcr arg pop 0
- ;; size=48 bbWeight=0 PerfScore 0.00
+ ;; size=42 bbWeight=0 PerfScore 0.00
G_M36171_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
pop {r3,r4,r11,pc}
;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 178, prolog size 16, PerfScore 31.00, instruction count 68, allocated bytes for code 178 (MethodHash=43f372b4) for method System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (FullOpts)
+; Total bytes of code 166, prolog size 16, PerfScore 30.50, instruction count 66, allocated bytes for code 166 (MethodHash=43f372b4) for method System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (FullOpts)
; ============================================================
Unwind Info:
@@ -145,7 +143,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 58 (0x0003a) Actual length = 116 (0x000074)
+ Function Length : 55 (0x00037) Actual length = 110 (0x00006e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
@@ -162,7 +160,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
+ Function Length : 28 (0x0001c) Actual length = 56 (0x000038)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-6 (-6.12%) : 11801.dasm - FSharp.Compiler.TypedTreeBasics:isLessAccessible(FSharp.Compiler.TypedTree+Accessibility,FSharp.Compiler.TypedTree+Accessibility):ubyte (FullOpts)
@@ -19,7 +19,7 @@
;* V08 tmp4 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+CompilationPath]>
; V09 tmp5 [V09,T03] ( 2, 8 ) ref -> r5 class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+CompilationPath]>
;* V10 tmp6 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <FSharp.Compiler.TypedTree+CompilationPath>
-; V11 tmp7 [V11,T02] ( 2, 10 ) ref -> r6 class-hnd single-def "Inlining Arg" <<unknown class>>
+; V11 tmp7 [V11,T02] ( 3, 18 ) ref -> r6 class-hnd single-def "Inlining Arg" <<unknown class>>
; V12 cse0 [V12,T01] ( 3, 20 ) ref -> r5 "CSE - aggressive"
;
; Lcl frame size = 4
@@ -65,9 +65,8 @@ G_M33395_IG04: ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
; gcrRegs +[r1]
mov r0, r6
; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
+ ldr r3, [r6]
+ ldr r3, [r3+0x2C]
ldr r3, [r3+0x10]
blx r3 // <unknown method>
; gcrRegs -[r0-r1 r4]
@@ -76,7 +75,7 @@ G_M33395_IG04: ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
mov r4, r5
; gcrRegs +[r4]
b SHORT G_M33395_IG03
- ;; size=26 bbWeight=4 PerfScore 44.00
+ ;; size=20 bbWeight=4 PerfScore 40.00
G_M33395_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r4-r6]
movs r0, 1
@@ -98,7 +97,7 @@ G_M33395_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 98, prolog size 8, PerfScore 90.50, instruction count 38, allocated bytes for code 98 (MethodHash=12247d8c) for method FSharp.Compiler.TypedTreeBasics:isLessAccessible(FSharp.Compiler.TypedTree+Accessibility,FSharp.Compiler.TypedTree+Accessibility):ubyte (FullOpts)
+; Total bytes of code 92, prolog size 8, PerfScore 86.50, instruction count 37, allocated bytes for code 92 (MethodHash=12247d8c) for method FSharp.Compiler.TypedTreeBasics:isLessAccessible(FSharp.Compiler.TypedTree+Accessibility,FSharp.Compiler.TypedTree+Accessibility):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -110,7 +109,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 49 (0x00031) Actual length = 98 (0x000062)
+ Function Length : 46 (0x0002e) Actual length = 92 (0x00005c)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+32 (+47.06%) : 83.dasm - System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
@@ -8,12 +8,12 @@
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 1 ) ubyte -> r3
+; V02 loc1 [V02,T05] ( 2, 1 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V08 tmp4 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -21,56 +21,70 @@
;* V10 tmp6 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V13 tmp9 [V13,T01] ( 3, 2.50) int -> r4 "field V06.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T04] ( 2, 1 ) int -> r2 "field V09.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V13 tmp9 [V13,T01] ( 3, 2.50) int -> r5 "field V06.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T04] ( 3, 1.50) int -> r6 "field V09.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 cse0 [V15,T03] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
; Lcl frame size = 4
G_M41847_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
-G_M41847_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r4, [r0+0x0C]
- ands r1, r4, 2
- cmp r1, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M41847_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r4+0x0C]
+ ands r0, r5, 2
+ cmp r0, 0
beq SHORT G_M41847_IG05
;; size=10 bbWeight=1 PerfScore 4.00
-G_M41847_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+G_M41847_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ mov r0, r4
+ ; gcrRegs +[r0]
movw r1, 0xd1ff
movt r1, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // System.RuntimeType:IsSubclassOf(System.Type):ubyte:this
- ; gcrRegs -[r0]
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ; gcrRegs -[r0 r4]
+ ;; size=22 bbWeight=0.50 PerfScore 3.50
G_M41847_IG04: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M41847_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r4+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M41847_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[r4]
+ ldr r5, [r5+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M41847_IG06
- movs r3, 0
- b SHORT G_M41847_IG07
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M41847_IG06: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M41847_IG07: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M41847_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M41847_IG07
+ movs r0, 0
+ b SHORT G_M41847_IG08
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M41847_IG07: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M41847_IG08: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+G_M41847_IG08: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, epilog, nogc
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 68, prolog size 8, PerfScore 14.50, instruction count 23, allocated bytes for code 68 (MethodHash=8e725c88) for method System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
+; Total bytes of code 100, prolog size 8, PerfScore 20.50, instruction count 34, allocated bytes for code 100 (MethodHash=8e725c88) for method System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -82,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 68 (0x000044)
+ Function Length : 50 (0x00032) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -94,7 +108,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
+32 (+66.67%) : 1037.dasm - System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r0
+; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -22,48 +22,62 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 1 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T06] ( 3, 1.50) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T05] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M48242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M48242_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M48242_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
beq SHORT G_M48242_IG04
;; size=10 bbWeight=1 PerfScore 4.00
-G_M48242_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- movs r3, 0
- b SHORT G_M48242_IG06
+G_M48242_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r0, 0
+ b SHORT G_M48242_IG07
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M48242_IG04: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M48242_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M48242_IG05
- movs r3, 0
- b SHORT G_M48242_IG06
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M48242_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M48242_IG06: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M48242_IG07: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M48242_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M48242_IG06
+ movs r0, 0
+ b SHORT G_M48242_IG07
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M48242_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M48242_IG07: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r0
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M48242_IG08: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 48, prolog size 6, PerfScore 14.00, instruction count 19, allocated bytes for code 48 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 80 (MethodHash=a608438d) for method System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -75,11 +89,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
+32 (+66.67%) : 1061.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T00] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.RuntimeType>
;* V01 loc0 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
-; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r3
+; V02 loc1 [V02,T03] ( 2, 2 ) ubyte -> r0
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Runtime.CompilerServices.TypeHandle>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r3
-; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r3 "impAppendStmt"
+; V05 tmp1 [V05,T02] ( 3, 2 ) int -> r0
+; V06 tmp2 [V06,T04] ( 2, 2 ) int -> r5 "impAppendStmt"
;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -22,48 +22,62 @@
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "field V01.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "field V03.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r3 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V15 tmp11 [V15,T05] ( 2, 1 ) int -> r2 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V14 tmp10 [V14,T01] ( 3, 2.50) int -> r0 "field V07.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V15 tmp11 [V15,T06] ( 3, 1.50) int -> r6 "field V10.m_asTAddr (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T05] ( 3, 1.50) ref -> r1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M42905_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M42905_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r0]
- ldr r3, [r0+0x0C]
- ands r2, r3, 2
- cmp r2, 0
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ mov r4, r0
+ ; gcrRegs +[r4]
+ ;; size=10 bbWeight=1 PerfScore 3.00
+G_M42905_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4+0x0C]
+ ands r1, r0, 2
+ cmp r1, 0
beq SHORT G_M42905_IG04
;; size=10 bbWeight=1 PerfScore 4.00
-G_M42905_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- movs r3, 0
- b SHORT G_M42905_IG06
+G_M42905_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ movs r0, 0
+ b SHORT G_M42905_IG07
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M42905_IG04: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r3+0x14]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- cmp r3, r2
+G_M42905_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r5, [r0+0x14]
+ movw r6, 0xd1ff
+ movt r6, 0xd1ff
+ ands r0, r6, 2
+ cmp r0, 0
beq SHORT G_M42905_IG05
- movs r3, 0
- b SHORT G_M42905_IG06
- ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M42905_IG05: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- movs r3, 1
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M42905_IG06: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- uxtb r3, r3
- mov r0, r3
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
; gcrRegs -[r0]
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M42905_IG07: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+ ;; size=40 bbWeight=0.50 PerfScore 6.50
+G_M42905_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ cmp r5, r6
+ beq SHORT G_M42905_IG06
+ movs r0, 0
+ b SHORT G_M42905_IG07
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M42905_IG06: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ movs r0, 1
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M42905_IG07: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ uxtb r0, r0
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M42905_IG08: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 48, prolog size 6, PerfScore 14.00, instruction count 19, allocated bytes for code 48 (MethodHash=06085866) for method System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 80 (MethodHash=06085866) for method System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -75,11 +89,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 48 (0x000030)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,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) |
benchmarks.run.linux.arm.checked.mch |
81 |
70 |
11 |
0 |
-706 |
+162 |
benchmarks.run_pgo.linux.arm.checked.mch |
249 |
43 |
206 |
0 |
-336 |
+8,082 |
benchmarks.run_tiered.linux.arm.checked.mch |
55 |
48 |
7 |
0 |
-496 |
+108 |
coreclr_tests.run.linux.arm.checked.mch |
1,401 |
1,275 |
126 |
0 |
-107,544 |
+1,848 |
libraries.crossgen2.linux.arm.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries.pmi.linux.arm.checked.mch |
815 |
704 |
110 |
1 |
-4,858 |
+300 |
libraries_tests.run.linux.arm.Release.mch |
2,369 |
1,207 |
1,161 |
1 |
-12,404 |
+11,724 |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
1,326 |
625 |
700 |
1 |
-5,344 |
+2,138 |
realworld.run.linux.arm.checked.mch |
341 |
324 |
17 |
0 |
-2,410 |
+144 |
|
6,637 |
4,296 |
2,338 |
3 |
-134,098 |
+24,506 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.linux.arm.checked.mch |
50,989 |
6,738 |
44,251 |
1,277 (2.44%) |
1,277 (2.44%) |
benchmarks.run_pgo.linux.arm.checked.mch |
164,943 |
59,003 |
105,940 |
3,254 (1.93%) |
3,254 (1.93%) |
benchmarks.run_tiered.linux.arm.checked.mch |
77,426 |
41,851 |
35,575 |
1,061 (1.35%) |
1,061 (1.35%) |
coreclr_tests.run.linux.arm.checked.mch |
472,420 |
259,271 |
213,149 |
7,207 (1.50%) |
7,207 (1.50%) |
libraries.crossgen2.linux.arm.checked.mch |
189,604 |
14 |
189,590 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.linux.arm.checked.mch |
274,270 |
6 |
274,264 |
7,835 (2.78%) |
7,835 (2.78%) |
libraries_tests.run.linux.arm.Release.mch |
709,962 |
443,614 |
266,348 |
17,932 (2.46%) |
17,932 (2.46%) |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
274,707 |
21,625 |
253,082 |
33,604 (10.90%) |
33,605 (10.90%) |
realworld.run.linux.arm.checked.mch |
36,190 |
75 |
36,115 |
1,412 (3.76%) |
1,412 (3.76%) |
|
2,250,511 |
832,197 |
1,418,314 |
73,582 (3.17%) |
73,583 (3.17%) |
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: 17295604 (overridden on cmd)
Total bytes of diff: 17295060 (overridden on cmd)
Total bytes of delta: -544 (-0.00 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
38 : 44827.dasm (15.57 % of base)
32 : 1173.dasm (66.67 % of base)
32 : 1140.dasm (66.67 % of base)
32 : 83.dasm (47.06 % of base)
12 : 2780.dasm (1.09 % of base)
6 : 2761.dasm (1.87 % of base)
2 : 40416.dasm (0.16 % of base)
2 : 411.dasm (0.13 % of base)
2 : 6251.dasm (0.18 % of base)
2 : 708.dasm (0.59 % of base)
2 : 6312.dasm (0.24 % of base)
Top file improvements (bytes):
-40 : 7966.dasm (-1.97 % of base)
-30 : 4447.dasm (-6.17 % of base)
-28 : 31013.dasm (-0.81 % of base)
-28 : 7971.dasm (-0.27 % of base)
-24 : 38546.dasm (-13.04 % of base)
-24 : 39610.dasm (-12.37 % of base)
-24 : 47411.dasm (-14.12 % of base)
-24 : 18043.dasm (-2.49 % of base)
-24 : 2343.dasm (-11.01 % of base)
-20 : 18421.dasm (-1.25 % of base)
-14 : 6262.dasm (-1.87 % of base)
-14 : 7488.dasm (-2.25 % of base)
-12 : 29854.dasm (-1.20 % of base)
-12 : 18049.dasm (-2.78 % of base)
-12 : 22541.dasm (-3.73 % of base)
-12 : 29855.dasm (-1.27 % of base)
-12 : 30699.dasm (-0.93 % of base)
-12 : 31646.dasm (-0.77 % of base)
-12 : 44539.dasm (-4.17 % of base)
-12 : 34831.dasm (-1.35 % of base)
58 total files with Code Size differences (47 improved, 11 regressed), 0 unchanged.
Top method regressions (bytes):
38 (15.57 % of base) : 44827.dasm - System.Numerics.Tests.Perf_Plane:EqualsBenchmark():ubyte:this (FullOpts)
32 (66.67 % of base) : 1173.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
32 (47.06 % of base) : 83.dasm - System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
32 (66.67 % of base) : 1140.dasm - System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
12 (1.09 % of base) : 2780.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
6 (1.87 % of base) : 2761.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (FullOpts)
2 (0.13 % of base) : 411.dasm - BenchmarkDotNet.Portability.RuntimeInformation:GetNetCoreVersion():System.String (FullOpts)
2 (0.59 % of base) : 708.dasm - BenchmarkDotNet.Properties.BenchmarkDotNetInfo+<>c:<.cctor>b__28_0():BenchmarkDotNet.Properties.BenchmarkDotNetInfo:this (FullOpts)
2 (0.16 % of base) : 40416.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (FullOpts)
2 (0.24 % of base) : 6312.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitDeserializeValue(System.Reflection.Emit.ILGenerator,Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+DeserializeInfo,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (FullOpts)
2 (0.18 % of base) : 6251.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitSerializeValue(System.Reflection.TypeInfo,Utf8Json.Internal.Emit.MetaMember,System.Reflection.Emit.ILGenerator,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (FullOpts)
Top method improvements (bytes):
-40 (-1.97 % of base) : 7966.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts)
-30 (-6.17 % of base) : 4447.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
-28 (-0.81 % of base) : 31013.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-28 (-0.27 % of base) : 7971.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
-24 (-13.04 % of base) : 38546.dasm - System.Numerics.Tests.Perf_Plane:EqualityOperatorBenchmark():ubyte:this (FullOpts)
-24 (-12.37 % of base) : 39610.dasm - System.Numerics.Tests.Perf_Plane:InequalityOperatorBenchmark():ubyte:this (FullOpts)
-24 (-11.01 % of base) : 2343.dasm - System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (FullOpts)
-24 (-14.12 % of base) : 47411.dasm - System.Numerics.Tests.Perf_Vector4:NormalizeBenchmark():System.Numerics.Vector4:this (FullOpts)
-24 (-2.49 % of base) : 18043.dasm - System.Xml.XmlBinaryNodeWriter:UnsafeWriteText(uint,int):this (FullOpts)
-20 (-1.25 % of base) : 18421.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (FullOpts)
-14 (-2.25 % of base) : 7488.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGet[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (FullOpts)
-14 (-1.87 % of base) : 6262.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (FullOpts)
-12 (-1.35 % of base) : 34831.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax):this (FullOpts)
-12 (-0.77 % of base) : 31646.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:AddSynthesizedReturnTypeAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (FullOpts)
-12 (-1.20 % of base) : 29854.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
-12 (-1.27 % of base) : 29855.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
-12 (-0.93 % of base) : 30699.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckForRequiredMemberAttribute(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-12 (-3.73 % of base) : 22541.dasm - System.IO.Compression.Brotli:Decompress_WithState():System.Span`1[ubyte]:this (FullOpts)
-12 (-6.74 % of base) : 598.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (FullOpts)
-12 (-4.17 % of base) : 44539.dasm - System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (FullOpts)
Top method regressions (percentages):
32 (66.67 % of base) : 1173.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
32 (66.67 % of base) : 1140.dasm - System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
32 (47.06 % of base) : 83.dasm - System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
38 (15.57 % of base) : 44827.dasm - System.Numerics.Tests.Perf_Plane:EqualsBenchmark():ubyte:this (FullOpts)
6 (1.87 % of base) : 2761.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (FullOpts)
12 (1.09 % of base) : 2780.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
2 (0.59 % of base) : 708.dasm - BenchmarkDotNet.Properties.BenchmarkDotNetInfo+<>c:<.cctor>b__28_0():BenchmarkDotNet.Properties.BenchmarkDotNetInfo:this (FullOpts)
2 (0.24 % of base) : 6312.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitDeserializeValue(System.Reflection.Emit.ILGenerator,Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+DeserializeInfo,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (FullOpts)
2 (0.18 % of base) : 6251.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitSerializeValue(System.Reflection.TypeInfo,Utf8Json.Internal.Emit.MetaMember,System.Reflection.Emit.ILGenerator,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (FullOpts)
2 (0.16 % of base) : 40416.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (FullOpts)
2 (0.13 % of base) : 411.dasm - BenchmarkDotNet.Portability.RuntimeInformation:GetNetCoreVersion():System.String (FullOpts)
Top method improvements (percentages):
-8 (-16.00 % of base) : 7384.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
-24 (-14.12 % of base) : 47411.dasm - System.Numerics.Tests.Perf_Vector4:NormalizeBenchmark():System.Numerics.Vector4:this (FullOpts)
-24 (-13.04 % of base) : 38546.dasm - System.Numerics.Tests.Perf_Plane:EqualityOperatorBenchmark():ubyte:this (FullOpts)
-24 (-12.37 % of base) : 39610.dasm - System.Numerics.Tests.Perf_Plane:InequalityOperatorBenchmark():ubyte:this (FullOpts)
-24 (-11.01 % of base) : 2343.dasm - System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (FullOpts)
-6 (-10.71 % of base) : 39872.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (FullOpts)
-8 (-10.00 % of base) : 26286.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
-12 (-6.74 % of base) : 598.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (FullOpts)
-30 (-6.17 % of base) : 4447.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
-6 (-4.92 % of base) : 18047.dasm - System.Xml.XmlBinaryNodeWriter:WriteDateTimeText(System.DateTime):this (FullOpts)
-12 (-4.17 % of base) : 44539.dasm - System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (FullOpts)
-6 (-4.05 % of base) : 1076.dasm - System.Text.UnicodeEncoding:.cctor() (FullOpts)
-6 (-3.80 % of base) : 18297.dasm - System.Xml.XmlBaseReader:Close():this (FullOpts)
-12 (-3.73 % of base) : 22541.dasm - System.IO.Compression.Brotli:Decompress_WithState():System.Span`1[ubyte]:this (FullOpts)
-6 (-3.57 % of base) : 31462.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol:<RequiresRefSafetyRulesAttribute>g__isFeatureDisabled|62_0(Microsoft.CodeAnalysis.CSharp.CSharpCompilation):ubyte (FullOpts)
-8 (-3.15 % of base) : 7879.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
-6 (-2.94 % of base) : 8066.dasm - System.Net.Http.HttpConnection:ReturnConnectionToPool():this (FullOpts)
-6 (-2.91 % of base) : 8798.dasm - System.Xml.XmlBaseWriter:Close():this (FullOpts)
-6 (-2.78 % of base) : 37045.dasm - System.Diagnostics.ProcessWaitState:Dispose():this (FullOpts)
-12 (-2.78 % of base) : 18049.dasm - System.Xml.XmlBinaryNodeWriter:WriteInt32Text(int):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: 67071704 (overridden on cmd)
Total bytes of diff: 67079450 (overridden on cmd)
Total bytes of delta: 7746 (0.01 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
90 : 166205.dasm (12.78 % of base)
90 : 53447.dasm (12.78 % of base)
90 : 147992.dasm (6.26 % of base)
90 : 61419.dasm (12.78 % of base)
90 : 64923.dasm (6.26 % of base)
90 : 79736.dasm (12.78 % of base)
90 : 126248.dasm (6.26 % of base)
88 : 16551.dasm (5.94 % of base)
88 : 69369.dasm (5.95 % of base)
88 : 90904.dasm (5.95 % of base)
88 : 162036.dasm (5.91 % of base)
88 : 34326.dasm (5.95 % of base)
88 : 121989.dasm (5.94 % of base)
88 : 131742.dasm (5.94 % of base)
88 : 70158.dasm (5.94 % of base)
88 : 89163.dasm (5.94 % of base)
78 : 69217.dasm (5.96 % of base)
78 : 91599.dasm (5.94 % of base)
78 : 82715.dasm (5.87 % of base)
76 : 68481.dasm (5.75 % of base)
Top file improvements (bytes):
-42 : 22700.dasm (-1.95 % of base)
-28 : 22745.dasm (-0.27 % of base)
-12 : 72270.dasm (-2.41 % of base)
-12 : 138294.dasm (-4.17 % of base)
-12 : 97726.dasm (-0.89 % of base)
-12 : 55386.dasm (-0.73 % of base)
-10 : 111605.dasm (-1.11 % of base)
-10 : 111939.dasm (-0.34 % of base)
-10 : 112226.dasm (-0.12 % of base)
-8 : 22531.dasm (-3.15 % of base)
-8 : 50776.dasm (-1.48 % of base)
-8 : 75261.dasm (-2.31 % of base)
-8 : 97374.dasm (-0.22 % of base)
-8 : 81814.dasm (-0.10 % of base)
-6 : 60633.dasm (-0.68 % of base)
-6 : 79769.dasm (-0.70 % of base)
-6 : 38842.dasm (-0.68 % of base)
-6 : 53397.dasm (-0.72 % of base)
-6 : 166243.dasm (-0.70 % of base)
-6 : 53709.dasm (-0.70 % of base)
84 total files with Code Size differences (25 improved, 59 regressed), 0 unchanged.
Top method regressions (bytes):
90 (6.26 % of base) : 147992.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
90 (6.26 % of base) : 64923.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
90 (6.26 % of base) : 126248.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
90 (12.78 % of base) : 166205.dasm - System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (Tier1)
90 (12.78 % of base) : 53447.dasm - System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (Tier1)
90 (12.78 % of base) : 61419.dasm - System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (Tier1)
90 (12.78 % of base) : 79736.dasm - System.Reflection.CustomAttributeType:.ctor(System.RuntimeType):this (Tier1)
88 (5.94 % of base) : 16551.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
88 (5.95 % of base) : 69369.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
88 (5.95 % of base) : 90904.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
88 (5.91 % of base) : 162036.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
88 (5.95 % of base) : 34326.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
88 (5.94 % of base) : 121989.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
88 (5.94 % of base) : 131742.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
88 (5.94 % of base) : 70158.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
88 (5.94 % of base) : 89163.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (Tier1)
78 (5.96 % of base) : 69217.dasm - System.Runtime.Serialization.CodeGenerator:Ldc(System.Object):this (Tier1)
78 (5.94 % of base) : 91599.dasm - System.Runtime.Serialization.CodeGenerator:Ldc(System.Object):this (Tier1)
78 (5.87 % of base) : 82715.dasm - System.Runtime.Serialization.CodeGenerator:Ldc(System.Object):this (Tier1)
76 (5.75 % of base) : 68481.dasm - System.Runtime.Serialization.CodeGenerator:Ldc(System.Object):this (Tier1)
Top method improvements (bytes):
-42 (-1.95 % of base) : 22700.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
-28 (-0.27 % of base) : 22745.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (Tier0-FullOpts)
-12 (-0.89 % of base) : 97726.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckForRequiredMemberAttribute(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
-12 (-0.73 % of base) : 55386.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
-12 (-4.17 % of base) : 138294.dasm - System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (Tier0-FullOpts)
-12 (-2.41 % of base) : 72270.dasm - System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
-10 (-0.34 % of base) : 111939.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
-10 (-0.12 % of base) : 112226.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)
-10 (-1.11 % of base) : 111605.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax):this (Tier0-FullOpts)
-8 (-0.22 % of base) : 97374.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause]]:this (Tier0-FullOpts)
-8 (-0.10 % of base) : 81814.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
-8 (-1.48 % of base) : 50776.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-8 (-2.31 % of base) : 75261.dasm - System.IO.Compression.Brotli:Decompress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-8 (-3.15 % of base) : 22531.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
-6 (-1.28 % of base) : 102296.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location,int,int,System.Nullable`1[int]):ubyte:this (Tier1)
-6 (-0.68 % of base) : 60633.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.70 % of base) : 79769.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.68 % of base) : 38842.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.70 % of base) : 166243.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.70 % of base) : 53709.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
Top method regressions (percentages):
40 (83.33 % of base) : 10234.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Tier1)
40 (83.33 % of base) : 140162.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 141932.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 47689.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 49197.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 137035.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 18655.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 19553.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 24455.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 43701.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 54925.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 105986.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 115667.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
40 (83.33 % of base) : 154864.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
42 (63.64 % of base) : 60436.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
42 (63.64 % of base) : 143899.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
42 (63.64 % of base) : 16260.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
42 (63.64 % of base) : 115204.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
42 (63.64 % of base) : 151272.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
42 (63.64 % of base) : 84024.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
Top method improvements (percentages):
-12 (-4.17 % of base) : 138294.dasm - System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (Tier0-FullOpts)
-8 (-3.15 % of base) : 22531.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
-12 (-2.41 % of base) : 72270.dasm - System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
-8 (-2.31 % of base) : 75261.dasm - System.IO.Compression.Brotli:Decompress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-42 (-1.95 % of base) : 22700.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
-6 (-1.79 % of base) : 72278.dasm - System.Xml.XmlBinaryNodeWriter:WriteDateTimeArray(System.ReadOnlySpan`1[System.DateTime]):this (Tier0-FullOpts)
-8 (-1.48 % of base) : 50776.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-6 (-1.28 % of base) : 102296.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location,int,int,System.Nullable`1[int]):ubyte:this (Tier1)
-4 (-1.24 % of base) : 100039.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetWellKnownTypeMember(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.Symbol (Tier1)
-10 (-1.11 % of base) : 111605.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax):this (Tier0-FullOpts)
-12 (-0.89 % of base) : 97726.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckForRequiredMemberAttribute(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
-12 (-0.73 % of base) : 55386.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
-6 (-0.72 % of base) : 53397.dasm - System.Xml.Serialization.XmlReflectionImporter:CreateArrayElementsFromAttributes(System.Xml.Serialization.ArrayMapping,System.Xml.Serialization.XmlArrayItemAttributes,System.Type,System.String,System.Xml.Serialization.RecursionLimiter):this (Tier0-FullOpts)
-6 (-0.70 % of base) : 79769.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.70 % of base) : 166243.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.70 % of base) : 53709.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.70 % of base) : 61474.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.68 % of base) : 60633.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.68 % of base) : 38842.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-0.68 % of base) : 68330.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase: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: 20251824 (overridden on cmd)
Total bytes of diff: 20251436 (overridden on cmd)
Total bytes of delta: -388 (-0.00 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
32 : 2358.dasm (47.06 % of base)
32 : 3181.dasm (66.67 % of base)
32 : 3244.dasm (66.67 % of base)
6 : 13695.dasm (1.87 % of base)
2 : 68728.dasm (0.17 % of base)
2 : 7776.dasm (0.18 % of base)
2 : 8065.dasm (0.24 % of base)
Top file improvements (bytes):
-40 : 21509.dasm (-1.97 % of base)
-30 : 32154.dasm (-6.17 % of base)
-28 : 57608.dasm (-0.81 % of base)
-28 : 21545.dasm (-0.27 % of base)
-24 : 36197.dasm (-2.49 % of base)
-20 : 35904.dasm (-1.25 % of base)
-14 : 20783.dasm (-2.25 % of base)
-14 : 7849.dasm (-1.87 % of base)
-12 : 56243.dasm (-0.77 % of base)
-12 : 12907.dasm (-6.74 % of base)
-12 : 34239.dasm (-2.33 % of base)
-12 : 41579.dasm (-3.73 % of base)
-12 : 42169.dasm (-2.41 % of base)
-12 : 46844.dasm (-2.78 % of base)
-12 : 62827.dasm (-1.35 % of base)
-12 : 70668.dasm (-4.17 % of base)
-12 : 53526.dasm (-0.93 % of base)
-10 : 36611.dasm (-1.05 % of base)
-8 : 20697.dasm (-16.00 % of base)
-8 : 44438.dasm (-0.10 % of base)
51 total files with Code Size differences (44 improved, 7 regressed), 0 unchanged.
Top method regressions (bytes):
32 (66.67 % of base) : 3181.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Tier1)
32 (47.06 % of base) : 2358.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
32 (66.67 % of base) : 3244.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
6 (1.87 % of base) : 13695.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (Tier1)
2 (0.17 % of base) : 68728.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (Tier0-FullOpts)
2 (0.24 % of base) : 8065.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitDeserializeValue(System.Reflection.Emit.ILGenerator,Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+DeserializeInfo,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (Tier1)
2 (0.18 % of base) : 7776.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitSerializeValue(System.Reflection.TypeInfo,Utf8Json.Internal.Emit.MetaMember,System.Reflection.Emit.ILGenerator,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (Tier1)
Top method improvements (bytes):
-40 (-1.97 % of base) : 21509.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
-30 (-6.17 % of base) : 32154.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-28 (-0.81 % of base) : 57608.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-28 (-0.27 % of base) : 21545.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (Tier0-FullOpts)
-24 (-2.49 % of base) : 36197.dasm - System.Xml.XmlBinaryNodeWriter:UnsafeWriteText(uint,int):this (Tier1)
-20 (-1.25 % of base) : 35904.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
-14 (-2.25 % of base) : 20783.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGet[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
-14 (-1.87 % of base) : 7849.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-12 (-1.35 % of base) : 62827.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax):this (Tier0-FullOpts)
-12 (-0.77 % of base) : 56243.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:AddSynthesizedReturnTypeAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (Tier1)
-12 (-0.93 % of base) : 53526.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckForRequiredMemberAttribute(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
-12 (-2.33 % of base) : 34239.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-12 (-3.73 % of base) : 41579.dasm - System.IO.Compression.Brotli:Decompress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-12 (-6.74 % of base) : 12907.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (Tier1)
-12 (-4.17 % of base) : 70668.dasm - System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (Tier0-FullOpts)
-12 (-2.41 % of base) : 42169.dasm - System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
-12 (-2.78 % of base) : 46844.dasm - System.Xml.XmlBinaryNodeWriter:WriteInt32Text(int):this (Tier1)
-10 (-1.05 % of base) : 36611.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateSet[System.__Canon](System.Reflection.PropertyInfo):System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
-8 (-0.24 % of base) : 53222.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause]]:this (Tier0-FullOpts)
-8 (-16.00 % of base) : 20697.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
Top method regressions (percentages):
32 (66.67 % of base) : 3181.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Tier1)
32 (66.67 % of base) : 3244.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (47.06 % of base) : 2358.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
6 (1.87 % of base) : 13695.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (Tier1)
2 (0.24 % of base) : 8065.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitDeserializeValue(System.Reflection.Emit.ILGenerator,Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+DeserializeInfo,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (Tier1)
2 (0.18 % of base) : 7776.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitSerializeValue(System.Reflection.TypeInfo,Utf8Json.Internal.Emit.MetaMember,System.Reflection.Emit.ILGenerator,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (Tier1)
2 (0.17 % of base) : 68728.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (Tier0-FullOpts)
Top method improvements (percentages):
-6 (-16.67 % of base) : 68621.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
-8 (-16.00 % of base) : 20697.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
-12 (-6.74 % of base) : 12907.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (Tier1)
-6 (-6.52 % of base) : 41173.dasm - System.Xml.XmlBinaryNodeWriter:WriteTextNodeWithInt16(int,short):this (Tier1)
-30 (-6.17 % of base) : 32154.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-5.88 % of base) : 46842.dasm - System.Xml.XmlBinaryNodeWriter:WriteTextNodeWithInt64(int,long):this (Tier1)
-6 (-4.92 % of base) : 46840.dasm - System.Xml.XmlBinaryNodeWriter:WriteDateTimeText(System.DateTime):this (Tier1)
-12 (-4.17 % of base) : 70668.dasm - System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (Tier0-FullOpts)
-12 (-3.73 % of base) : 41579.dasm - System.IO.Compression.Brotli:Decompress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-6 (-3.53 % of base) : 69745.dasm - System.Threading.CancellationTokenSource:Dispose(ubyte):this (Tier1)
-8 (-3.15 % of base) : 21342.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
-12 (-2.78 % of base) : 46844.dasm - System.Xml.XmlBinaryNodeWriter:WriteInt32Text(int):this (Tier1)
-24 (-2.49 % of base) : 36197.dasm - System.Xml.XmlBinaryNodeWriter:UnsafeWriteText(uint,int):this (Tier1)
-12 (-2.41 % of base) : 42169.dasm - System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
-12 (-2.33 % of base) : 34239.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-6 (-2.33 % of base) : 10366.dasm - System.Threading.ManualResetEventSlim:Dispose(ubyte):this (Tier1)
-14 (-2.25 % of base) : 20783.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGet[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
-40 (-1.97 % of base) : 21509.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
-14 (-1.87 % of base) : 7849.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-6 (-1.79 % of base) : 42176.dasm - System.Xml.XmlBinaryNodeWriter:WriteDateTimeArray(System.ReadOnlySpan`1[System.DateTime]):this (Tier0-FullOpts)
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: 325365536 (overridden on cmd)
Total bytes of diff: 325259840 (overridden on cmd)
Total bytes of delta: -105696 (-0.03 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
102 : 344868.dasm (1.92 % of base)
74 : 142749.dasm (1.43 % of base)
74 : 98376.dasm (1.43 % of base)
74 : 142670.dasm (1.43 % of base)
50 : 343938.dasm (4.04 % of base)
44 : 90736.dasm (733.33 % of base)
44 : 90758.dasm (733.33 % of base)
44 : 90855.dasm (733.33 % of base)
40 : 343936.dasm (4.75 % of base)
34 : 237489.dasm (51.52 % of base)
34 : 325075.dasm (51.52 % of base)
34 : 328849.dasm (4.20 % of base)
34 : 338320.dasm (51.52 % of base)
34 : 341372.dasm (51.52 % of base)
34 : 342754.dasm (51.52 % of base)
34 : 344327.dasm (51.52 % of base)
34 : 306560.dasm (51.52 % of base)
34 : 319615.dasm (51.52 % of base)
32 : 322273.dasm (66.67 % of base)
32 : 326583.dasm (66.67 % of base)
Top file improvements (bytes):
-358 : 207113.dasm (-1.70 % of base)
-354 : 205340.dasm (-1.79 % of base)
-348 : 207385.dasm (-1.70 % of base)
-342 : 205407.dasm (-1.70 % of base)
-336 : 206221.dasm (-1.71 % of base)
-336 : 206254.dasm (-1.76 % of base)
-330 : 205590.dasm (-1.70 % of base)
-324 : 207351.dasm (-1.61 % of base)
-324 : 199814.dasm (-1.92 % of base)
-324 : 206421.dasm (-1.69 % of base)
-312 : 205526.dasm (-1.58 % of base)
-312 : 207280.dasm (-1.61 % of base)
-312 : 205491.dasm (-1.57 % of base)
-312 : 205558.dasm (-1.63 % of base)
-312 : 205457.dasm (-1.58 % of base)
-306 : 176957.dasm (-1.82 % of base)
-306 : 207081.dasm (-1.62 % of base)
-306 : 177739.dasm (-1.74 % of base)
-300 : 178191.dasm (-1.58 % of base)
-300 : 205959.dasm (-1.51 % of base)
75 total files with Code Size differences (41 improved, 34 regressed), 0 unchanged.
Top method regressions (bytes):
102 (1.92 % of base) : 344868.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (Tier1)
74 (1.43 % of base) : 142749.dasm - Test_NestedStruct01:TestEntryPoint():int (FullOpts)
74 (1.43 % of base) : 142670.dasm - Test_NestedStruct03:TestEntryPoint():int (FullOpts)
74 (1.43 % of base) : 98376.dasm - Test_struct01:TestEntryPoint():int (FullOpts)
50 (4.04 % of base) : 343938.dasm - System.Diagnostics.Tracing.EventParameterInfo:GenerateMetadata(uint,byref,uint):ubyte:this (Instrumented Tier1)
44 (733.33 % of base) : 90736.dasm - bgt_u._bgt:main():int (FullOpts)
44 (733.33 % of base) : 90758.dasm - ble_u.ble_un:main():int (FullOpts)
44 (733.33 % of base) : 90855.dasm - cgt_u._cgt:main():int (FullOpts)
40 (4.75 % of base) : 343936.dasm - System.Diagnostics.Tracing.EventParameterInfo:GetMetadataLength(byref):ubyte:this (Instrumented Tier1)
34 (4.20 % of base) : 328849.dasm - Newtonsoft.Json.Utilities.ConvertUtils:GetTypeCode(System.Type,byref):int (Tier1)
34 (51.52 % of base) : 237489.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 325075.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 338320.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 341372.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 342754.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 344327.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 306560.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 319615.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
32 (66.67 % of base) : 257437.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Instrumented Tier1)
32 (66.67 % of base) : 257537.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Tier1)
Top method improvements (bytes):
-358 (-1.70 % of base) : 207113.dasm - Generated952:MethodCallingTest() (FullOpts)
-354 (-1.79 % of base) : 205340.dasm - Generated900:MethodCallingTest() (FullOpts)
-348 (-1.70 % of base) : 207385.dasm - Generated960:MethodCallingTest() (FullOpts)
-342 (-1.70 % of base) : 205407.dasm - Generated902:MethodCallingTest() (FullOpts)
-336 (-1.71 % of base) : 206221.dasm - Generated925:MethodCallingTest() (FullOpts)
-336 (-1.76 % of base) : 206254.dasm - Generated926:MethodCallingTest() (FullOpts)
-330 (-1.70 % of base) : 205590.dasm - Generated907:MethodCallingTest() (FullOpts)
-324 (-1.92 % of base) : 199814.dasm - Generated718:MethodCallingTest() (FullOpts)
-324 (-1.69 % of base) : 206421.dasm - Generated931:MethodCallingTest() (FullOpts)
-324 (-1.61 % of base) : 207351.dasm - Generated959:MethodCallingTest() (FullOpts)
-312 (-1.58 % of base) : 205457.dasm - Generated903:MethodCallingTest() (FullOpts)
-312 (-1.57 % of base) : 205491.dasm - Generated904:MethodCallingTest() (FullOpts)
-312 (-1.58 % of base) : 205526.dasm - Generated905:MethodCallingTest() (FullOpts)
-312 (-1.63 % of base) : 205558.dasm - Generated906:MethodCallingTest() (FullOpts)
-312 (-1.61 % of base) : 207280.dasm - Generated957:MethodCallingTest() (FullOpts)
-306 (-1.82 % of base) : 176957.dasm - Generated1047:MethodCallingTest() (FullOpts)
-306 (-1.74 % of base) : 177739.dasm - Generated1065:MethodCallingTest() (FullOpts)
-306 (-1.62 % of base) : 207081.dasm - Generated951:MethodCallingTest() (FullOpts)
-300 (-1.58 % of base) : 178191.dasm - Generated1076:MethodCallingTest() (FullOpts)
-300 (-1.51 % of base) : 205959.dasm - Generated918:MethodCallingTest() (FullOpts)
Top method regressions (percentages):
44 (733.33 % of base) : 90736.dasm - bgt_u._bgt:main():int (FullOpts)
44 (733.33 % of base) : 90758.dasm - ble_u.ble_un:main():int (FullOpts)
44 (733.33 % of base) : 90855.dasm - cgt_u._cgt:main():int (FullOpts)
24 (400.00 % of base) : 90683.dasm - beq_i._beq:main():int (FullOpts)
24 (400.00 % of base) : 90710.dasm - bge_u._bge:main():int (FullOpts)
24 (400.00 % of base) : 90780.dasm - blt_u.blt_un:main():int (FullOpts)
24 (400.00 % of base) : 90794.dasm - bne_u.bne_un:main():int (FullOpts)
24 (400.00 % of base) : 90838.dasm - ceq_i._ceq:main():int (FullOpts)
24 (400.00 % of base) : 90883.dasm - clt_u.clt_un:main():int (FullOpts)
32 (66.67 % of base) : 257437.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Instrumented Tier1)
32 (66.67 % of base) : 257537.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Tier1)
32 (66.67 % of base) : 322273.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 326583.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 334765.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 448619.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 257508.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 258803.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 263179.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 268879.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
34 (51.52 % of base) : 237489.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
Top method improvements (percentages):
-8 (-16.00 % of base) : 115828.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
-12 (-15.79 % of base) : 144170.dasm - Program:Main():int (FullOpts)
-14 (-14.58 % of base) : 168812.dasm - GitHub_18522:TestEntryPoint():int (FullOpts)
-12 (-13.95 % of base) : 107804.dasm - Q:TestEntryPoint():int (FullOpts)
-6 (-13.64 % of base) : 168896.dasm - Test_GitHub_19222:main():int (FullOpts)
-12 (-9.68 % of base) : 137230.dasm - CMain:RunTest_MoreDerived1():ubyte (FullOpts)
-12 (-9.68 % of base) : 141174.dasm - CMain:RunTest1():ubyte (FullOpts)
-12 (-9.68 % of base) : 141177.dasm - CMain:RunTest2():ubyte (FullOpts)
-12 (-9.68 % of base) : 137209.dasm - CMain:RunTest3():ubyte (FullOpts)
-12 (-9.68 % of base) : 135870.dasm - CMain:RunTest5():ubyte (FullOpts)
-12 (-9.68 % of base) : 141185.dasm - CMain:RunTest6():ubyte (FullOpts)
-6 (-9.68 % of base) : 135806.dasm - Main:RunTestC15() (FullOpts)
-6 (-9.68 % of base) : 135808.dasm - Main:RunTestC16() (FullOpts)
-6 (-9.68 % of base) : 135809.dasm - Main:RunTestC17() (FullOpts)
-6 (-9.68 % of base) : 135810.dasm - Main:RunTestC18() (FullOpts)
-6 (-9.68 % of base) : 135813.dasm - Main:RunTestC20() (FullOpts)
-6 (-9.68 % of base) : 135814.dasm - Main:RunTestC21() (FullOpts)
-6 (-9.68 % of base) : 135794.dasm - Main:RunTestC3() (FullOpts)
-6 (-9.68 % of base) : 135797.dasm - Main:RunTestC6() (FullOpts)
-6 (-9.68 % of base) : 135798.dasm - Main:RunTestC7() (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: 50242096 (overridden on cmd)
Total bytes of diff: 50237538 (overridden on cmd)
Total bytes of delta: -4558 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
12 : 267307.dasm (0.44 % of base)
10 : 271908.dasm (0.79 % of base)
8 : 18296.dasm (1.31 % of base)
8 : 17912.dasm (0.43 % of base)
8 : 18294.dasm (0.91 % of base)
8 : 18295.dasm (0.92 % of base)
6 : 21996.dasm (2.75 % of base)
6 : 274735.dasm (0.34 % of base)
4 : 271872.dasm (1.18 % of base)
4 : 250950.dasm (0.67 % of base)
4 : 250951.dasm (0.71 % of base)
4 : 266046.dasm (0.26 % of base)
4 : 267306.dasm (0.15 % of base)
4 : 250960.dasm (0.50 % of base)
4 : 250962.dasm (0.43 % of base)
4 : 256796.dasm (0.44 % of base)
4 : 271870.dasm (0.53 % of base)
4 : 271871.dasm (0.54 % of base)
4 : 274699.dasm (0.23 % of base)
4 : 281067.dasm (0.20 % of base)
Top file improvements (bytes):
-46 : 31949.dasm (-0.89 % of base)
-42 : 13387.dasm (-1.84 % of base)
-42 : 13388.dasm (-1.49 % of base)
-36 : 108741.dasm (-0.28 % of base)
-32 : 13058.dasm (-1.44 % of base)
-32 : 31035.dasm (-0.48 % of base)
-30 : 157934.dasm (-6.17 % of base)
-28 : 65940.dasm (-0.87 % of base)
-28 : 31926.dasm (-0.71 % of base)
-26 : 31331.dasm (-1.16 % of base)
-24 : 31399.dasm (-0.90 % of base)
-24 : 39713.dasm (-0.49 % of base)
-24 : 110615.dasm (-0.21 % of base)
-24 : 32426.dasm (-1.30 % of base)
-24 : 13249.dasm (-0.91 % of base)
-24 : 171169.dasm (-2.39 % of base)
-22 : 214179.dasm (-4.76 % of base)
-20 : 223311.dasm (-4.85 % of base)
-20 : 12831.dasm (-0.18 % of base)
-20 : 31890.dasm (-0.63 % of base)
82 total files with Code Size differences (43 improved, 39 regressed), 1 unchanged.
Top method regressions (bytes):
12 (0.44 % of base) : 267307.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:GetMetadataViewProvider[ubyte]():System.Func`2[System.Collections.Generic.IDictionary`2[System.String,System.Object],ubyte] (FullOpts)
10 (0.79 % of base) : 271908.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
8 (0.43 % of base) : 17912.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.Adapters:ConvImmutableTypeToMutableType(Microsoft.FSharp.Linq.RuntimeHelpers.Adapters+ConversionDescription,System.Type):System.Type (FullOpts)
8 (0.92 % of base) : 18295.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:transBinOp(Microsoft.FSharp.Core.FSharpFunc`2[System.Type,ubyte],Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,ubyte,Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Quotations.FSharpExpr,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`3[System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo],System.Linq.Expressions.BinaryExpression],System.RuntimeMethodHandle):System.Linq.Expressions.Expression (FullOpts)
8 (1.31 % of base) : 18296.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:transBoolOpNoWitness(Microsoft.FSharp.Core.FSharpFunc`2[System.Type,ubyte],Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,ubyte,Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Quotations.FSharpExpr,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`4[System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo],System.Linq.Expressions.BinaryExpression],System.Reflection.MethodInfo):System.Linq.Expressions.Expression (FullOpts)
8 (0.91 % of base) : 18294.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:transShiftOp(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,ubyte,Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Quotations.FSharpExpr,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`3[System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo],System.Linq.Expressions.BinaryExpression],System.RuntimeMethodHandle):System.Linq.Expressions.Expression (FullOpts)
6 (2.75 % of base) : 21996.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.Display:isSetOrMapType(System.Type):ubyte (FullOpts)
6 (0.34 % of base) : 274735.dasm - System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:RewriteActivator(System.Reflection.TypeInfo,System.Composition.Hosting.Core.CompositeActivator,System.Collections.Generic.IDictionary`2[System.String,System.Object],System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]):System.Composition.Hosting.Core.CompositeActivator:this (FullOpts)
4 (0.53 % of base) : 271870.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactory[System.__Canon](System.Type[]):Microsoft.Extensions.DependencyInjection.ObjectFactory`1[System.__Canon] (FullOpts)
4 (0.54 % of base) : 271871.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactory[ubyte](System.Type[]):Microsoft.Extensions.DependencyInjection.ObjectFactory`1[ubyte] (FullOpts)
4 (1.18 % of base) : 271872.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (FullOpts)
4 (0.26 % of base) : 266046.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.ExpressionResolverBuilder:.cctor() (FullOpts)
4 (0.67 % of base) : 250950.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateMethodCall[System.__Canon](System.Reflection.MethodBase):Newtonsoft.Json.Utilities.MethodCall`2[System.__Canon,System.__Canon]:this (FullOpts)
4 (0.71 % of base) : 250951.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateMethodCall[ubyte](System.Reflection.MethodBase):Newtonsoft.Json.Utilities.MethodCall`2[ubyte,System.Object]:this (FullOpts)
4 (0.50 % of base) : 250960.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateSet[ubyte](System.Reflection.FieldInfo):System.Action`2[ubyte,System.Object]:this (FullOpts)
4 (0.43 % of base) : 250962.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateSet[ubyte](System.Reflection.PropertyInfo):System.Action`2[ubyte,System.Object]:this (FullOpts)
4 (0.15 % of base) : 267306.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:GetMetadataViewProvider[System.__Canon]():System.Func`2[System.__Canon,System.__Canon] (FullOpts)
4 (0.23 % of base) : 274699.dasm - System.Composition.TypedParts.Discovery.DiscoveredPart:GetActivator(System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]):System.Composition.Hosting.Core.CompositeActivator:this (FullOpts)
4 (0.44 % of base) : 256796.dasm - System.Configuration.ConfigurationLockCollection:Add(System.String):this (FullOpts)
4 (0.20 % of base) : 281067.dasm - System.Reflection.Emit.IgnoreAccessChecksToAttributeBuilder:AddToModule(System.Reflection.Emit.ModuleBuilder):System.Reflection.ConstructorInfo (FullOpts)
Top method improvements (bytes):
-46 (-0.89 % of base) : 31949.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindElementOrIndexerAccess>g__bindInlineArrayElementAccess|500_1(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BoundExpression,int,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BoundExpression,int,Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
-42 (-1.84 % of base) : 13387.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts)
-42 (-1.49 % of base) : 13388.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp2Connection(System.Net.Http.Http2Connection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.Http2Connection]):this (FullOpts)
-36 (-0.28 % of base) : 108741.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (FullOpts)
-32 (-0.48 % of base) : 31035.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertCollectionExpression(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
-32 (-1.44 % of base) : 13058.dasm - System.Net.Http.Http2Connection+Http2Stream:OnStatus(int):this (FullOpts)
-30 (-6.17 % of base) : 157934.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[ubyte]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
-28 (-0.87 % of base) : 65940.dasm - Microsoft.CodeAnalysis.CSharp.AsyncRewriter+AsyncIteratorRewriter:VerifyPresenceOfRequiredAPIs(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-28 (-0.71 % of base) : 31926.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-26 (-1.16 % of base) : 31331.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryBindIndexOrRangeImplicitIndexer(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):ubyte:this (FullOpts)
-24 (-0.90 % of base) : 31399.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetDefaultParameterSpecialNoConversion(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
-24 (-1.30 % of base) : 32426.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitUsingStatement(Microsoft.CodeAnalysis.CSharp.Syntax.UsingStatementSyntax):this (FullOpts)
-24 (-0.49 % of base) : 39713.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-24 (-0.21 % of base) : 110615.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)
-24 (-0.91 % of base) : 13249.dasm - System.Net.Http.Http3RequestStream:OnHeader(System.Nullable`1[int],System.Net.Http.Headers.HeaderDescriptor,System.String,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
-24 (-2.39 % of base) : 171169.dasm - System.Xml.XmlBinaryNodeWriter:UnsafeWriteText(uint,int):this (FullOpts)
-22 (-4.76 % of base) : 214179.dasm - Microsoft.VisualBasic.FileIO.FileSystem:WriteAllText(System.String,System.String,ubyte,System.Text.Encoding) (FullOpts)
-20 (-4.85 % of base) : 223311.dasm - Microsoft.Build.Shared.BuildEnvironmentHelper:CheckIfRunningTests():ubyte (FullOpts)
-20 (-0.63 % of base) : 31890.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetEnumeratorInfoCore(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,byref,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):int:this (FullOpts)
-20 (-0.18 % of base) : 12831.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
Top method regressions (percentages):
2 (3.57 % of base) : 223749.dasm - Microsoft.Build.Shared.FileUtilities:get_ExecutingAssemblyPath():System.String (FullOpts)
2 (3.12 % of base) : 71242.dasm - Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper:GetExporterInfo():System.String (FullOpts)
2 (2.94 % of base) : 267332.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryExportDescriptorProvider:.cctor() (FullOpts)
2 (2.94 % of base) : 267336.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
2 (2.94 % of base) : 267320.dasm - System.Composition.Hosting.Providers.Lazy.LazyExportDescriptorProvider:.cctor() (FullOpts)
2 (2.94 % of base) : 267324.dasm - System.Composition.Hosting.Providers.Lazy.LazyWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
2 (2.94 % of base) : 267315.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:.cctor() (FullOpts)
2 (2.94 % of base) : 274738.dasm - System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:.cctor() (FullOpts)
6 (2.75 % of base) : 21996.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.Display:isSetOrMapType(System.Type):ubyte (FullOpts)
2 (2.50 % of base) : 168378.dasm - Internal.TypeSystem.TypeSystemException+<>c:<.cctor>b__20_0():System.Resources.ResourceManager:this (FullOpts)
2 (2.33 % of base) : 221169.dasm - Microsoft.Build.BackEnd.TaskParameterTypeVerifier:IsAssignableToITask(System.Type):ubyte (FullOpts)
2 (1.54 % of base) : 274726.dasm - System.Composition.TypedParts.ActivationFeatures.DisposalFeature:RewriteActivator(System.Reflection.TypeInfo,System.Composition.Hosting.Core.CompositeActivator,System.Collections.Generic.IDictionary`2[System.String,System.Object],System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]):System.Composition.Hosting.Core.CompositeActivator:this (FullOpts)
2 (1.54 % of base) : 274704.dasm - System.Composition.TypedParts.Discovery.DiscoveredPart:.cctor() (FullOpts)
2 (1.41 % of base) : 235703.dasm - CommandLine.Core.ReflectionExtensions:ToTargetType(System.Type):int (FullOpts)
2 (1.39 % of base) : 153787.dasm - Xunit.Serialization.XunitSerializationInfo:GetValue[int](System.String):int:this (FullOpts)
2 (1.39 % of base) : 165364.dasm - Xunit.Serialization.XunitSerializationInfo:GetValue[int](System.String):int:this (FullOpts)
2 (1.39 % of base) : 153785.dasm - Xunit.Serialization.XunitSerializationInfo:GetValue[ubyte](System.String):ubyte:this (FullOpts)
2 (1.39 % of base) : 165362.dasm - Xunit.Serialization.XunitSerializationInfo:GetValue[ubyte](System.String):ubyte:this (FullOpts)
2 (1.37 % of base) : 153788.dasm - Xunit.Serialization.XunitSerializationInfo:GetValue[double](System.String):double:this (FullOpts)
2 (1.37 % of base) : 165363.dasm - Xunit.Serialization.XunitSerializationInfo:GetValue[short](System.String):short:this (FullOpts)
Top method improvements (percentages):
-6 (-16.67 % of base) : 198373.dasm - Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[ubyte,System.Nullable`1[int]]:GetHashCode():int:this (FullOpts)
-6 (-16.67 % of base) : 209665.dasm - Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[ubyte,System.Nullable`1[int]]:GetHashCode():int:this (FullOpts)
-6 (-16.67 % of base) : 201284.dasm - Microsoft.CodeAnalysis.LocalizableString+FixedLocalizableString:GetHash():int:this (FullOpts)
-6 (-16.67 % of base) : 265923.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (FullOpts)
-6 (-16.67 % of base) : 274281.dasm - System.ComponentModel.DesignerCategoryAttribute:GetHashCode():int:this (FullOpts)
-6 (-16.67 % of base) : 237460.dasm - System.Net.FtpControlStream:get_BannerMessage():System.String:this (FullOpts)
-6 (-16.67 % of base) : 237462.dasm - System.Net.FtpControlStream:get_ExitMessage():System.String:this (FullOpts)
-6 (-16.67 % of base) : 237461.dasm - System.Net.FtpControlStream:get_WelcomeMessage():System.String:this (FullOpts)
-6 (-16.67 % of base) : 153470.dasm - Xunit.ExecutionSink:WaitForStopEvent(int):ubyte:this (FullOpts)
-6 (-14.29 % of base) : 274267.dasm - System.ComponentModel.DescriptionAttribute:GetHashCode():int:this (FullOpts)
-6 (-14.29 % of base) : 274299.dasm - System.ComponentModel.DisplayNameAttribute:GetHashCode():int:this (FullOpts)
-6 (-13.04 % of base) : 274246.dasm - System.ComponentModel.CategoryAttribute:GetHashCode():int:this (FullOpts)
-8 (-11.43 % of base) : 247720.dasm - System.Linq.Expressions.Interpreter.InterpretedFrameInfo:ToString():System.String:this (FullOpts)
-6 (-10.71 % of base) : 168199.dasm - Internal.TypeSystem.Ecma.PortablePdbSymbolReader:Dispose():this (FullOpts)
-8 (-10.00 % of base) : 275966.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
-6 (-9.68 % of base) : 216149.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType:GetHashCode():int:this (FullOpts)
-6 (-8.57 % of base) : 194205.dasm - Microsoft.CodeAnalysis.Text.TextChange:GetHashCode():int:this (FullOpts)
-8 (-8.00 % of base) : 251596.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_FullyTrusted():ubyte (FullOpts)
-6 (-7.89 % of base) : 189704.dasm - Microsoft.CodeAnalysis.LoadDirective:GetHashCode():int:this (FullOpts)
-6 (-7.69 % of base) : 171162.dasm - System.Xml.XmlBinaryNodeWriter:WriteInt64(long):this (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: 239569132 (overridden on cmd)
Total bytes of diff: 239568452 (overridden on cmd)
Total bytes of delta: -680 (-0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
50 : 401516.dasm (4.04 % of base)
48 : 525407.dasm (3.27 % of base)
48 : 525410.dasm (5.21 % of base)
48 : 436226.dasm (3.83 % of base)
40 : 401509.dasm (4.75 % of base)
34 : 335456.dasm (51.52 % of base)
34 : 346904.dasm (51.52 % of base)
34 : 384480.dasm (51.52 % of base)
34 : 701204.dasm (51.52 % of base)
34 : 349588.dasm (51.52 % of base)
34 : 376460.dasm (51.52 % of base)
34 : 481424.dasm (51.52 % of base)
34 : 570292.dasm (51.52 % of base)
34 : 582036.dasm (51.52 % of base)
34 : 703296.dasm (51.52 % of base)
34 : 709956.dasm (51.52 % of base)
34 : 577552.dasm (51.52 % of base)
34 : 716348.dasm (51.52 % of base)
34 : 496204.dasm (51.52 % of base)
34 : 712316.dasm (51.52 % of base)
Top file improvements (bytes):
-52 : 628499.dasm (-3.87 % of base)
-42 : 411256.dasm (-1.63 % of base)
-42 : 336056.dasm (-0.95 % of base)
-40 : 75604.dasm (-2.06 % of base)
-34 : 248750.dasm (-3.65 % of base)
-30 : 598014.dasm (-5.68 % of base)
-30 : 598469.dasm (-5.68 % of base)
-30 : 182949.dasm (-1.17 % of base)
-30 : 595224.dasm (-6.02 % of base)
-30 : 605185.dasm (-5.68 % of base)
-30 : 612617.dasm (-5.68 % of base)
-30 : 629030.dasm (-5.68 % of base)
-30 : 630569.dasm (-5.68 % of base)
-30 : 597923.dasm (-5.68 % of base)
-30 : 598481.dasm (-6.00 % of base)
-30 : 620094.dasm (-5.68 % of base)
-30 : 628710.dasm (-5.68 % of base)
-30 : 631326.dasm (-5.68 % of base)
-30 : 598486.dasm (-5.68 % of base)
-30 : 598910.dasm (-5.73 % of base)
72 total files with Code Size differences (46 improved, 26 regressed), 1 unchanged.
Top method regressions (bytes):
50 (4.04 % of base) : 401516.dasm - System.Diagnostics.Tracing.EventParameterInfo:GenerateMetadata(uint,byref,uint):ubyte:this (Instrumented Tier1)
48 (3.83 % of base) : 436226.dasm - System.Enum:Format(System.Type,System.Object,System.String):System.String (Tier1)
48 (3.27 % of base) : 525407.dasm - System.RuntimeType:TryChangeType(byref,byref):int:this (Tier1)
48 (5.21 % of base) : 525410.dasm - System.RuntimeType:TryChangeTypeSpecial(byref):int:this (Tier1)
40 (4.75 % of base) : 401509.dasm - System.Diagnostics.Tracing.EventParameterInfo:GetMetadataLength(byref):ubyte:this (Instrumented Tier1)
34 (51.52 % of base) : 335456.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 346904.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 384480.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 701204.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 349588.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 376460.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 481424.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 570292.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 582036.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 703296.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 709956.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 577552.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 716348.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 496204.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 712316.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
Top method improvements (bytes):
-52 (-3.87 % of base) : 628499.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetNumbersExpectedString(System.Text.Json.JsonWriterOptions,System.String,int[],uint[],long[],ulong[],float[],double[],System.Decimal[],ubyte):System.String (Tier0-FullOpts)
-42 (-0.95 % of base) : 336056.dasm - System.IO.Tests.BinaryWriterTests:BinaryWriter_SeekTests():this (Tier0-FullOpts)
-42 (-1.63 % of base) : 411256.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp2Connection(System.Net.Http.Http2Connection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.Http2Connection]):this (Tier0-FullOpts)
-40 (-2.06 % of base) : 75604.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
-34 (-3.65 % of base) : 248750.dasm - System.Configuration.MgmtConfigurationRecord:ValidateSectionXml(System.String,System.String) (Tier0-FullOpts)
-30 (-1.17 % of base) : 182949.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,int,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-30 (-5.68 % of base) : 598486.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[byte]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 629030.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[double]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 598469.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[float]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-6.02 % of base) : 595224.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 627249.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.73 % of base) : 598910.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.DateTime]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 597923.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.DateTimeOffset]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-6.00 % of base) : 598481.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Decimal]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 605185.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Half]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 620094.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Nullable`1[System.DateTimeOffset]]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 612617.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Text.Json.Serialization.Tests.Point_2D_Struct_WithAttribute]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 630569.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Text.Json.Serialization.Tests.SimpleStruct]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 628710.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[ubyte]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-30 (-5.68 % of base) : 631326.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[ubyte]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
Top method regressions (percentages):
32 (66.67 % of base) : 3598.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Instrumented Tier1)
32 (66.67 % of base) : 169473.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 173296.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 173953.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
32 (66.67 % of base) : 657503.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
34 (51.52 % of base) : 335456.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 346904.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 384480.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 701204.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 349588.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 376460.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 481424.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 570292.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 582036.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 703296.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 709956.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 577552.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 716348.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 496204.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
34 (51.52 % of base) : 712316.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
Top method improvements (percentages):
-6 (-16.67 % of base) : 122743.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
-6 (-16.67 % of base) : 135145.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
-8 (-15.38 % of base) : 619387.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
-8 (-15.38 % of base) : 641898.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
-6 (-12.50 % of base) : 574489.dasm - System.Text.UTF32Encoding:.ctor():this (Instrumented Tier1)
-6 (-11.11 % of base) : 720069.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Tier1)
-6 (-11.11 % of base) : 385870.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Tier1)
-6 (-11.11 % of base) : 717031.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Tier1)
-6 (-11.11 % of base) : 716201.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Tier1)
-6 (-10.71 % of base) : 274699.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Tier1)
-6 (-10.34 % of base) : 311449.dasm - System.IO.Compression.BrotliDecoder:Dispose():this (Tier1)
-6 (-10.00 % of base) : 311448.dasm - System.IO.Compression.BrotliEncoder:Dispose():this (Tier1)
-6 (-7.89 % of base) : 523542.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Tier1)
-12 (-6.67 % of base) : 328115.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (Tier1)
-6 (-6.52 % of base) : 94427.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Instrumented Tier1)
-6 (-6.38 % of base) : 123727.dasm - System.Threading.WaitHandle:Dispose():this (Tier1)
-6 (-6.38 % of base) : 505703.dasm - System.Xml.XmlBinaryNodeWriter:WriteTextNodeWithInt16(int,short):this (Tier1)
-6 (-6.12 % of base) : 541603.dasm - System.Security.Cryptography.ECOpenSsl:FreeKey():this (Tier1)
-30 (-6.02 % of base) : 595224.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-6.00 % of base) : 537833.dasm - System.Security.Cryptography.DSAOpenSsl:FreeKey():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: 94235488 (overridden on cmd)
Total bytes of diff: 94232282 (overridden on cmd)
Total bytes of delta: -3206 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
30 : 87066.dasm (0.39 % of base)
30 : 87070.dasm (0.39 % of base)
16 : 86924.dasm (0.33 % of base)
16 : 86944.dasm (0.33 % of base)
16 : 82065.dasm (0.41 % of base)
14 : 87067.dasm (0.34 % of base)
14 : 87069.dasm (0.34 % of base)
12 : 136818.dasm (0.46 % of base)
12 : 136845.dasm (0.46 % of base)
12 : 136826.dasm (0.47 % of base)
12 : 136861.dasm (0.44 % of base)
12 : 136855.dasm (0.46 % of base)
10 : 136837.dasm (0.42 % of base)
10 : 136883.dasm (0.42 % of base)
10 : 136897.dasm (0.42 % of base)
10 : 136848.dasm (0.42 % of base)
10 : 34515.dasm (0.85 % of base)
10 : 80695.dasm (0.18 % of base)
8 : 135804.dasm (0.70 % of base)
8 : 136884.dasm (0.82 % of base)
Top file improvements (bytes):
-74 : 231557.dasm (-2.46 % of base)
-72 : 232114.dasm (-2.53 % of base)
-52 : 261693.dasm (-3.87 % of base)
-48 : 231921.dasm (-1.79 % of base)
-42 : 158428.dasm (-1.69 % of base)
-42 : 144775.dasm (-1.92 % of base)
-40 : 21017.dasm (-2.03 % of base)
-36 : 23852.dasm (-0.54 % of base)
-34 : 89992.dasm (-2.31 % of base)
-34 : 89979.dasm (-2.26 % of base)
-32 : 158659.dasm (-1.51 % of base)
-30 : 142198.dasm (-6.17 % of base)
-30 : 6486.dasm (-0.72 % of base)
-30 : 56206.dasm (-1.21 % of base)
-28 : 21020.dasm (-0.27 % of base)
-26 : 31099.dasm (-0.72 % of base)
-24 : 197357.dasm (-2.49 % of base)
-24 : 56613.dasm (-1.06 % of base)
-24 : 261973.dasm (-4.26 % of base)
-24 : 42447.dasm (-12.00 % of base)
83 total files with Code Size differences (43 improved, 40 regressed), 1 unchanged.
Top method regressions (bytes):
30 (0.39 % of base) : 87070.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProvider_InvokeObject_RemovesProvider():this (FullOpts)
30 (0.39 % of base) : 87066.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProviderTransparent_InvokeObject_RemovesProvider():this (FullOpts)
16 (0.41 % of base) : 82065.dasm - System.ComponentModel.Composition.DirectoryCatalogTests:GetExports():this (FullOpts)
16 (0.33 % of base) : 86944.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProvider_InvokeObjectMultipleTimes_Refreshes():this (FullOpts)
16 (0.33 % of base) : 86924.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProviderTransparent_InvokeObjectMultipleTimes_Refreshes():this (FullOpts)
14 (0.34 % of base) : 87067.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProvider_InvokeObject_GetProviderReturnsExpected():this (FullOpts)
14 (0.34 % of base) : 87069.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProviderTransparent_InvokeObject_GetProviderReturnsExpected():this (FullOpts)
12 (0.44 % of base) : 136861.dasm - System.Linq.Tests.GroupJoinTests:OuterEmptyInnerNonEmpty():this (FullOpts)
12 (0.47 % of base) : 136826.dasm - System.Linq.Tests.GroupJoinTests+<>c__DisplayClass11_0:<OuterNullNoComparer>b__0():System.Object:this (FullOpts)
12 (0.46 % of base) : 136845.dasm - System.Linq.Tests.GroupJoinTests+<>c__DisplayClass12_0:<InnerNullNoComparer>b__0():System.Object:this (FullOpts)
12 (0.46 % of base) : 136818.dasm - System.Linq.Tests.GroupJoinTests+<>c__DisplayClass6_0:<OuterNull>b__0():System.Object:this (FullOpts)
12 (0.46 % of base) : 136855.dasm - System.Linq.Tests.GroupJoinTests+<>c__DisplayClass7_0:<InnerNull>b__0():System.Object:this (FullOpts)
10 (0.85 % of base) : 34515.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
10 (0.18 % of base) : 80695.dasm - System.ComponentModel.Composition.ConstraintServicesTests:TryParseConstraint_MetadataContainsKeyAsConstraintArgument_CanParse():this (FullOpts)
10 (0.42 % of base) : 136848.dasm - System.Linq.Tests.GroupJoinTests+<>c__DisplayClass13_0:<OuterKeySelectorNullNoComparer>b__0():System.Object:this (FullOpts)
10 (0.42 % of base) : 136837.dasm - System.Linq.Tests.GroupJoinTests+<>c__DisplayClass14_0:<InnerKeySelectorNullNoComparer>b__0():System.Object:this (FullOpts)
10 (0.42 % of base) : 136897.dasm - System.Linq.Tests.GroupJoinTests+<>c__DisplayClass8_0:<OuterKeySelectorNull>b__0():System.Object:this (FullOpts)
10 (0.42 % of base) : 136883.dasm - System.Linq.Tests.GroupJoinTests+<>c__DisplayClass9_0:<InnerKeySelectorNull>b__0():System.Object:this (FullOpts)
8 (0.82 % of base) : 136884.dasm - System.Linq.Tests.AggregateByTests+<>c__DisplayClass0_0:<NullSource_ThrowsArgumentNullException>b__0():System.Object:this (FullOpts)
8 (0.70 % of base) : 135804.dasm - System.Linq.Tests.GroupByTests+<>c__DisplayClass5_0:<SourceIsNull>b__5():System.Object:this (FullOpts)
Top method improvements (bytes):
-74 (-2.46 % of base) : 231557.dasm - System.Text.Tests.NegativeEncodingTests+<Encodings_TestData>d__0:MoveNext():ubyte:this (FullOpts)
-72 (-2.53 % of base) : 232114.dasm - System.Text.Tests.UnicodeEncodingTests+<Equals_TestData>d__10:MoveNext():ubyte:this (FullOpts)
-52 (-3.87 % of base) : 261693.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetNumbersExpectedString(System.Text.Json.JsonWriterOptions,System.String,int[],uint[],long[],ulong[],float[],double[],System.Decimal[],ubyte):System.String (FullOpts)
-48 (-1.79 % of base) : 231921.dasm - System.Text.Tests.UTF32EncodingTests+<Equals_TestData>d__10:MoveNext():ubyte:this (FullOpts)
-42 (-1.92 % of base) : 144775.dasm - System.MemoryTests.MemoryTests:MemoryFromMemoryManagerLong() (FullOpts)
-42 (-1.69 % of base) : 158428.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp2Connection(System.Net.Http.Http2Connection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.Http2Connection]):this (FullOpts)
-40 (-2.03 % of base) : 21017.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts)
-36 (-0.54 % of base) : 23852.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertCollectionExpression(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:this (FullOpts)
-34 (-2.26 % of base) : 89979.dasm - MonoTests.System.Configuration.ConfigurationErrorsExceptionTest:GetFilename2():this (FullOpts)
-34 (-2.31 % of base) : 89992.dasm - MonoTests.System.Configuration.ConfigurationErrorsExceptionTest:GetLineNumber2():this (FullOpts)
-32 (-1.51 % of base) : 158659.dasm - System.Net.Http.Http2Connection+Http2Stream:OnStatus(int):this (FullOpts)
-30 (-0.72 % of base) : 6486.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:EarlyDecodeWellKnownAttribute(byref):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData,Microsoft.CodeAnalysis.CSharp.BoundAttribute]:this (FullOpts)
-30 (-1.21 % of base) : 56206.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.EmitterTests+<RunGenerator>d__50:MoveNext():this (FullOpts)
-30 (-6.17 % of base) : 142198.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
-28 (-0.27 % of base) : 21020.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
-26 (-0.72 % of base) : 31099.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetEnumeratorInfoCore(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,byref,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):int:this (FullOpts)
-24 (-1.06 % of base) : 56613.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryBindIndexOrRangeImplicitIndexer(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):ubyte:this (FullOpts)
-24 (-12.00 % of base) : 42447.dasm - Microsoft.CodeAnalysis.NamingStyles.NamingStyle:GetHashCode():int:this (FullOpts)
-24 (-12.00 % of base) : 48302.dasm - Microsoft.CodeAnalysis.NamingStyles.NamingStyle:GetHashCode():int:this (FullOpts)
-24 (-4.26 % of base) : 261973.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetCommentInArrayExpectedString(System.Text.Json.JsonWriterOptions,System.String):System.String (FullOpts)
Top method regressions (percentages):
2 (6.25 % of base) : 178697.dasm - System.Reflection.Tests.AssemblyTests:GetExecutingAssembly():System.Reflection.Assembly (FullOpts)
2 (6.25 % of base) : 185671.dasm - System.Reflection.Tests.Helpers:get_ExecutingAssembly():System.Reflection.Assembly (FullOpts)
2 (3.70 % of base) : 207802.dasm - System.Tests.Types.GenericTypeParameter1Of1Tests:CreateType():System.Type:this (FullOpts)
2 (3.70 % of base) : 204398.dasm - System.Tests.Types.GenericTypeParameter1Of2Tests:CreateType():System.Type:this (FullOpts)
2 (3.70 % of base) : 203282.dasm - System.Tests.Types.GenericTypeParameter2Of2Tests:CreateType():System.Type:this (FullOpts)
2 (3.70 % of base) : 202533.dasm - System.Tests.Types.NestedGenericTypeParameter1Tests:CreateType():System.Type:this (FullOpts)
2 (3.70 % of base) : 206280.dasm - System.Tests.Types.NestedGenericTypeParameter2Tests:CreateType():System.Type:this (FullOpts)
2 (3.57 % of base) : 35901.dasm - LightInject.ServiceContainer:<EmitNewInstance>g__IsNotServiceFactory|175_0(System.Type):ubyte (FullOpts)
2 (3.33 % of base) : 181663.dasm - System.Reflection.Tests.RuntimeReflectionExtensionsTests+<>c:<GetRuntimeInterfaceMap>b__10_1():System.Object:this (FullOpts)
2 (3.33 % of base) : 186379.dasm - System.Reflection.Tests.TypeInfoTests+<>c:<GetEnumNames_TypeNotEnum_ThrowsArgumentException>b__16_0():System.Object:this (FullOpts)
2 (3.33 % of base) : 186097.dasm - System.Reflection.Tests.TypeInfoTests+<>c:<GetEnumUnderlyingType_TypeNotEnum_ThrowsArgumentException>b__18_0():System.Object:this (FullOpts)
2 (3.23 % of base) : 186273.dasm - System.Reflection.Tests.TypeInfoTests+<>c:<GetDeclaredEvent_NullName_ThrowsArgumentNullException>b__67_0():System.Object:this (FullOpts)
2 (3.23 % of base) : 186289.dasm - System.Reflection.Tests.TypeInfoTests+<>c:<GetDeclaredField_NullName_ThrowsArgumentNullException>b__68_0():System.Object:this (FullOpts)
2 (3.23 % of base) : 186357.dasm - System.Reflection.Tests.TypeInfoTests+<>c:<GetDeclaredMethod_NullName_ThrowsArgumentNullException>b__69_0():System.Object:this (FullOpts)
2 (3.23 % of base) : 186081.dasm - System.Reflection.Tests.TypeInfoTests+<>c:<GetDeclaredNestedType_NullName_ThrowsArgumentNullException>b__71_0():System.Object:this (FullOpts)
2 (3.23 % of base) : 186314.dasm - System.Reflection.Tests.TypeInfoTests+<>c:<GetEnumName_Invalid>b__13_1():System.Object:this (FullOpts)
2 (3.12 % of base) : 186292.dasm - System.Reflection.Tests.TypeInfoTests+<>c:<GetEvent_NullName_ThrowsArgumentNullException>b__58_0():System.Object:this (FullOpts)
2 (3.12 % of base) : 186245.dasm - System.Reflection.Tests.TypeInfoTests+<>c:<GetField_NullName_ThrowsArgumentNullException>b__61_0():System.Object:this (FullOpts)
2 (3.03 % of base) : 181667.dasm - System.Reflection.Tests.RuntimeReflectionExtensionsTests+<>c:<GetRuntimeInterfaceMap>b__10_2():System.Object:this (FullOpts)
2 (3.03 % of base) : 181670.dasm - System.Reflection.Tests.RuntimeReflectionExtensionsTests+<>c:<GetRuntimeInterfaceMap>b__10_3():System.Object:this (FullOpts)
Top method improvements (percentages):
-6 (-16.67 % of base) : 11415.dasm - Microsoft.CodeAnalysis.LocalizableString+FixedLocalizableString:GetHash():int:this (FullOpts)
-6 (-16.67 % of base) : 2758.dasm - Microsoft.VisualStudio.Composition.ByValueEquality+AssemblyNameComparer:GetHashCode(System.Reflection.AssemblyName):int:this (FullOpts)
-6 (-16.67 % of base) : 83554.dasm - System.ComponentModel.DesignerCategoryAttribute:GetHashCode():int:this (FullOpts)
-8 (-16.00 % of base) : 21550.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
-6 (-14.29 % of base) : 83598.dasm - System.ComponentModel.DescriptionAttribute:GetHashCode():int:this (FullOpts)
-6 (-14.29 % of base) : 83533.dasm - System.ComponentModel.DisplayNameAttribute:GetHashCode():int:this (FullOpts)
-6 (-13.04 % of base) : 83732.dasm - System.ComponentModel.CategoryAttribute:GetHashCode():int:this (FullOpts)
-24 (-12.00 % of base) : 42447.dasm - Microsoft.CodeAnalysis.NamingStyles.NamingStyle:GetHashCode():int:this (FullOpts)
-24 (-12.00 % of base) : 48302.dasm - Microsoft.CodeAnalysis.NamingStyles.NamingStyle:GetHashCode():int:this (FullOpts)
-8 (-10.00 % of base) : 158911.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
-6 (-9.38 % of base) : 181666.dasm - System.Reflection.Tests.MyAttributeBase_M:ToString():System.String:this (FullOpts)
-6 (-9.38 % of base) : 181619.dasm - System.Reflection.Tests.ParameterInfoAttributeBase:ToString():System.String:this (FullOpts)
-8 (-7.55 % of base) : 35534.dasm - Autofac.Core.Resolving.Pipeline.DefaultResolveRequestContext:ChangeScope(Autofac.Core.ISharingLifetimeScope):this (FullOpts)
-6 (-7.50 % of base) : 50533.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_IsExtern():ubyte:this (FullOpts)
-6 (-7.50 % of base) : 44877.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_IsExtern():ubyte:this (FullOpts)
-6 (-6.67 % of base) : 182711.dasm - System.Reflection.Internal.ByteArrayMemoryProvider:Dispose(ubyte):this (FullOpts)
-6 (-6.67 % of base) : 232091.dasm - System.Text.Tests.UnicodeEncodingTests:Ctor_Empty():this (FullOpts)
-6 (-6.67 % of base) : 231922.dasm - System.Text.Tests.UTF32EncodingTests:Ctor_Empty():this (FullOpts)
-8 (-6.56 % of base) : 99382.dasm - System.Diagnostics.Tests.ProcessStartInfoTests+<>c:<TestEnvironmentOfChildProcess>b__5_4(System.Collections.DictionaryEntry):System.String:this (FullOpts)
-16 (-6.35 % of base) : 3299.dasm - Microsoft.VisualStudio.Composition.LazyServices:CreateStronglyTypedLazyFactory(System.Type,System.Type):System.Func`3[System.Func`1[System.Object],System.Object,System.Object] (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: 13483316 (overridden on cmd)
Total bytes of diff: 13481050 (overridden on cmd)
Total bytes of delta: -2266 (-0.02 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
32 : 1037.dasm (66.67 % of base)
32 : 1061.dasm (66.67 % of base)
32 : 83.dasm (47.06 % of base)
12 : 37225.dasm (0.61 % of base)
4 : 36674.dasm (0.86 % of base)
4 : 36550.dasm (0.52 % of base)
4 : 2640.dasm (0.59 % of base)
4 : 34564.dasm (0.11 % of base)
4 : 36906.dasm (0.58 % of base)
2 : 3788.dasm (1.79 % of base)
2 : 15556.dasm (0.13 % of base)
2 : 30946.dasm (1.43 % of base)
2 : 15834.dasm (1.47 % of base)
2 : 17324.dasm (1.22 % of base)
2 : 15577.dasm (0.59 % of base)
2 : 37119.dasm (0.43 % of base)
2 : 3751.dasm (3.57 % of base)
Top file improvements (bytes):
-42 : 10695.dasm (-1.94 % of base)
-40 : 18434.dasm (-2.00 % of base)
-30 : 10145.dasm (-0.89 % of base)
-28 : 18438.dasm (-0.27 % of base)
-28 : 25931.dasm (-0.81 % of base)
-24 : 30101.dasm (-1.06 % of base)
-24 : 8136.dasm (-4.35 % of base)
-24 : 28904.dasm (-1.30 % of base)
-24 : 32095.dasm (-0.50 % of base)
-24 : 3761.dasm (-6.74 % of base)
-22 : 8697.dasm (-1.07 % of base)
-20 : 8788.dasm (-4.67 % of base)
-20 : 3651.dasm (-0.37 % of base)
-20 : 29335.dasm (-0.64 % of base)
-18 : 13757.dasm (-2.11 % of base)
-18 : 9199.dasm (-1.29 % of base)
-18 : 12171.dasm (-1.90 % of base)
-18 : 9055.dasm (-0.38 % of base)
-16 : 9570.dasm (-1.46 % of base)
-16 : 28845.dasm (-0.48 % of base)
66 total files with Code Size differences (49 improved, 17 regressed), 0 unchanged.
Top method regressions (bytes):
32 (66.67 % of base) : 1061.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
32 (47.06 % of base) : 83.dasm - System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
32 (66.67 % of base) : 1037.dasm - System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
12 (0.61 % of base) : 37225.dasm - System.Management.Automation.CommandProcessor:.cctor() (FullOpts)
4 (0.59 % of base) : 2640.dasm - Microsoft.FSharp.Reflection.FSharpValue:MakeFunction(System.Type,Microsoft.FSharp.Core.FSharpFunc`2[System.Object,System.Object]):System.Object (FullOpts)
4 (0.58 % of base) : 36906.dasm - System.Dynamic.BindingRestrictions+InstanceRestriction:GetExpression():System.Linq.Expressions.Expression:this (FullOpts)
4 (0.86 % of base) : 36674.dasm - System.Linq.Expressions.TypeBinaryExpression:ByValParameterTypeEqual(System.Linq.Expressions.ParameterExpression):System.Linq.Expressions.Expression:this (FullOpts)
4 (0.11 % of base) : 34564.dasm - System.Management.Automation.Language.Compiler:.cctor() (FullOpts)
4 (0.52 % of base) : 36550.dasm - System.Runtime.CompilerServices.CallSiteBinder:Stitch[System.__Canon](System.Linq.Expressions.Expression,System.Runtime.CompilerServices.CallSiteBinder+LambdaSignature`1[System.__Canon]):System.Linq.Expressions.Expression`1[System.__Canon] (FullOpts)
2 (0.13 % of base) : 15556.dasm - BenchmarkDotNet.Portability.RuntimeInformation:GetNetCoreVersion():System.String (FullOpts)
2 (0.59 % of base) : 15577.dasm - BenchmarkDotNet.Properties.BenchmarkDotNetInfo+<>c:<.cctor>b__28_0():BenchmarkDotNet.Properties.BenchmarkDotNetInfo:this (FullOpts)
2 (0.43 % of base) : 37119.dasm - Microsoft.ApplicationInsights.Metrics.MetricSeriesConfigurationForMeasurement:.cctor() (FullOpts)
2 (3.57 % of base) : 3751.dasm - Microsoft.Build.Shared.FileUtilities:get_ExecutingAssemblyPath():System.String (FullOpts)
2 (1.79 % of base) : 3788.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_FrameworkCurrentPath():System.String (FullOpts)
2 (1.43 % of base) : 30946.dasm - Microsoft.CodeAnalysis.CSharp.ErrorFacts:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
2 (1.22 % of base) : 17324.dasm - Microsoft.ML.Data.PrimitiveDataViewType:.ctor(System.Type):this (FullOpts)
2 (1.47 % of base) : 15834.dasm - SixLabors.ImageSharp.Tests.TestEnvironment:.cctor() (FullOpts)
Top method improvements (bytes):
-42 (-1.94 % of base) : 10695.dasm - FSharp.Compiler.Infos+GetParamAttribs@1482:Invoke(System.Tuple`2[FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+ArgReprInfo]):System.Tuple`6[ubyte,ubyte,ubyte,FSharp.Compiler.Infos+OptionalArgInfo,FSharp.Compiler.Infos+CallerInfo,FSharp.Compiler.Infos+ReflectedArgInfo]:this (FullOpts)
-40 (-2.00 % of base) : 18434.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts)
-30 (-0.89 % of base) : 10145.dasm - FSharp.Compiler.CheckExpressions:CheckExpr@3448-2(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.TypedTreeOps+ValHash`1[FSharp.Compiler.TypedTree+Val],FSharp.Compiler.TypedTreeOps+ValHash`1[int],FSharp.Compiler.TypedTree+ValRef,Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpRef`1[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TypedTree+ValRef]]],FSharp.Compiler.CheckExpressions+InitializationGraphAnalysisState,FSharp.Compiler.TypedTree+Expr) (FullOpts)
-28 (-0.81 % of base) : 25931.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-28 (-0.27 % of base) : 18438.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
-24 (-4.35 % of base) : 8136.dasm - FSharp.Compiler.CheckDeclarations+EstablishTypeDefinitionCores:GetTyconAttribs(FSharp.Compiler.TcGlobals+TcGlobals,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib]):System.Tuple`5[ubyte,ubyte,ubyte,ubyte,ubyte] (FullOpts)
-24 (-6.74 % of base) : 3761.dasm - Microsoft.Build.Shared.BuildEnvironmentHelper:CheckIfRunningTests():ubyte (FullOpts)
-24 (-1.06 % of base) : 30101.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryBindIndexOrRangeImplicitIndexer(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):ubyte:this (FullOpts)
-24 (-1.30 % of base) : 28904.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitUsingStatement(Microsoft.CodeAnalysis.CSharp.Syntax.UsingStatementSyntax):this (FullOpts)
-24 (-0.50 % of base) : 32095.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-22 (-1.07 % of base) : 8697.dasm - FSharp.Compiler.CheckExpressions:MakeApplicableExprWithFlex(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.CheckExpressions+ApplicableExpr (FullOpts)
-20 (-4.67 % of base) : 8788.dasm - FSharp.Compiler.CheckExpressions+GeneralizationHelpers+IsCondensationTypar@2210:Invoke(FSharp.Compiler.TypedTree+Typar):ubyte:this (FullOpts)
-20 (-0.37 % of base) : 3651.dasm - FSharp.Compiler.CompilerImports:TcConfig.TryResolveLibsUsingMSBuildRules.Static(FSharp.Compiler.CompilerConfig+TcConfig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+AssemblyReference],FSharp.Compiler.Text.Range,FSharp.Compiler.CompilerImports+ResolveAssemblyReferenceMode):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]] (FullOpts)
-20 (-0.64 % of base) : 29335.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetEnumeratorInfoCore(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,byref,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):int:this (FullOpts)
-18 (-1.29 % of base) : 9199.dasm - FSharp.Compiler.CheckExpressions:TcTyparDecl(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.Syntax.SynTyparDecl):FSharp.Compiler.TypedTree+Typar (FullOpts)
-18 (-2.11 % of base) : 13757.dasm - FSharp.Compiler.ConstraintSolver:SolveTypeRequiresDefaultConstructor$cont@2361(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.TypedTree+TType,Microsoft.FSharp.Core.Unit):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
-18 (-0.38 % of base) : 9055.dasm - FSharp.Compiler.PatternMatchCompilation+GenerateNewFrontiersAfterSuccessfulInvestigation@1392-1:Invoke(FSharp.Compiler.PatternMatchCompilation+Frontier):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.PatternMatchCompilation+Frontier]:this (FullOpts)
-18 (-1.90 % of base) : 12171.dasm - FSharp.Compiler.TypedTreeOps:TypeHasDefaultValue(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TType):ubyte (FullOpts)
-16 (-1.46 % of base) : 9570.dasm - FSharp.Compiler.CheckExpressions+TcAttributesWithPossibleTargetsEx@10713:Invoke(ubyte,FSharp.Compiler.Syntax.SynAttribute):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[int,FSharp.Compiler.TypedTree+Attrib]],ubyte]:this (FullOpts)
-16 (-0.48 % of base) : 28845.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertToArrayIndex(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
Top method regressions (percentages):
32 (66.67 % of base) : 1061.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (FullOpts)
32 (66.67 % of base) : 1037.dasm - System.RuntimeType:IsDelegate():ubyte:this (FullOpts)
32 (47.06 % of base) : 83.dasm - System.RuntimeType:get_IsEnum():ubyte:this (FullOpts)
2 (3.57 % of base) : 3751.dasm - Microsoft.Build.Shared.FileUtilities:get_ExecutingAssemblyPath():System.String (FullOpts)
2 (1.79 % of base) : 3788.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_FrameworkCurrentPath():System.String (FullOpts)
2 (1.47 % of base) : 15834.dasm - SixLabors.ImageSharp.Tests.TestEnvironment:.cctor() (FullOpts)
2 (1.43 % of base) : 30946.dasm - Microsoft.CodeAnalysis.CSharp.ErrorFacts:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
2 (1.22 % of base) : 17324.dasm - Microsoft.ML.Data.PrimitiveDataViewType:.ctor(System.Type):this (FullOpts)
4 (0.86 % of base) : 36674.dasm - System.Linq.Expressions.TypeBinaryExpression:ByValParameterTypeEqual(System.Linq.Expressions.ParameterExpression):System.Linq.Expressions.Expression:this (FullOpts)
12 (0.61 % of base) : 37225.dasm - System.Management.Automation.CommandProcessor:.cctor() (FullOpts)
2 (0.59 % of base) : 15577.dasm - BenchmarkDotNet.Properties.BenchmarkDotNetInfo+<>c:<.cctor>b__28_0():BenchmarkDotNet.Properties.BenchmarkDotNetInfo:this (FullOpts)
4 (0.59 % of base) : 2640.dasm - Microsoft.FSharp.Reflection.FSharpValue:MakeFunction(System.Type,Microsoft.FSharp.Core.FSharpFunc`2[System.Object,System.Object]):System.Object (FullOpts)
4 (0.58 % of base) : 36906.dasm - System.Dynamic.BindingRestrictions+InstanceRestriction:GetExpression():System.Linq.Expressions.Expression:this (FullOpts)
4 (0.52 % of base) : 36550.dasm - System.Runtime.CompilerServices.CallSiteBinder:Stitch[System.__Canon](System.Linq.Expressions.Expression,System.Runtime.CompilerServices.CallSiteBinder+LambdaSignature`1[System.__Canon]):System.Linq.Expressions.Expression`1[System.__Canon] (FullOpts)
2 (0.43 % of base) : 37119.dasm - Microsoft.ApplicationInsights.Metrics.MetricSeriesConfigurationForMeasurement:.cctor() (FullOpts)
2 (0.13 % of base) : 15556.dasm - BenchmarkDotNet.Portability.RuntimeInformation:GetNetCoreVersion():System.String (FullOpts)
4 (0.11 % of base) : 34564.dasm - System.Management.Automation.Language.Compiler:.cctor() (FullOpts)
Top method improvements (percentages):
-24 (-6.74 % of base) : 3761.dasm - Microsoft.Build.Shared.BuildEnvironmentHelper:CheckIfRunningTests():ubyte (FullOpts)
-12 (-6.74 % of base) : 572.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile:Dispose(ubyte):this (FullOpts)
-6 (-6.12 % of base) : 11801.dasm - FSharp.Compiler.TypedTreeBasics:isLessAccessible(FSharp.Compiler.TypedTree+Accessibility,FSharp.Compiler.TypedTree+Accessibility):ubyte (FullOpts)
-6 (-6.00 % of base) : 8806.dasm - FSharp.Compiler.CheckExpressions+PlaceTyparsInDeclarationOrder@1625:Invoke(FSharp.Compiler.TypedTree+Typar):ubyte:this (FullOpts)
-8 (-5.97 % of base) : 3726.dasm - Microsoft.Build.Shared.NativeMethodsShared:get_IsWindows():ubyte (FullOpts)
-20 (-4.67 % of base) : 8788.dasm - FSharp.Compiler.CheckExpressions+GeneralizationHelpers+IsCondensationTypar@2210:Invoke(FSharp.Compiler.TypedTree+Typar):ubyte:this (FullOpts)
-24 (-4.35 % of base) : 8136.dasm - FSharp.Compiler.CheckDeclarations+EstablishTypeDefinitionCores:GetTyconAttribs(FSharp.Compiler.TcGlobals+TcGlobals,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib]):System.Tuple`5[ubyte,ubyte,ubyte,ubyte,ubyte] (FullOpts)
-6 (-4.29 % of base) : 27647.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:HasInitializer(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
-6 (-4.05 % of base) : 973.dasm - System.Text.UnicodeEncoding:.cctor() (FullOpts)
-6 (-4.00 % of base) : 14511.dasm - FSharp.Compiler.CodeAnalysis.IncrementalBuilder:TryGetSlotOfFileName(System.String):Microsoft.FSharp.Core.FSharpOption`1[int]:this (FullOpts)
-6 (-3.70 % of base) : 25503.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:GetAttributesBag():Microsoft.CodeAnalysis.CustomAttributesBag`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
-6 (-3.53 % of base) : 14691.dasm - System.Threading.CancellationTokenSource:Dispose(ubyte):this (FullOpts)
-10 (-3.47 % of base) : 8271.dasm - FSharp.Compiler.CheckDeclarations+EstablishTypeDefinitionCores:insertEdgeToTycon@4349(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Entity],FSharp.Compiler.TypedTree+Entity,FSharp.Compiler.TypedTree+Entity,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Entity,FSharp.Compiler.TypedTree+Entity]]):Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Entity,FSharp.Compiler.TypedTree+Entity]] (FullOpts)
-6 (-3.41 % of base) : 10228.dasm - FSharp.Compiler.CheckDeclarations+TcOpenModuleOrNamespaceDecl@643:Invoke(System.Tuple`3[int,FSharp.Compiler.TypedTree+EntityRef,FSharp.Compiler.TypedTree+ModuleOrNamespaceType]):ubyte:this (FullOpts)
-6 (-3.41 % of base) : 25104.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:GetParameterListSyntax(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterListSyntax (FullOpts)
-6 (-3.23 % of base) : 11095.dasm - FSharp.Compiler.TypedTreeOps:trimPathByDisplayEnv(FSharp.Compiler.TypedTreeOps+DisplayEnv,Microsoft.FSharp.Collections.FSharpList`1[System.String]):System.String (FullOpts)
-8 (-3.15 % of base) : 17882.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
-6 (-3.06 % of base) : 10046.dasm - FSharp.Compiler.ConstraintSolver+results@1879-1:Invoke(FSharp.Compiler.Infos+MethInfo):ubyte:this (FullOpts)
-4 (-3.03 % of base) : 8649.dasm - FSharp.Compiler.CheckExpressions+envinner@6481:Invoke(FSharp.Compiler.TypedTree+Val,FSharp.Compiler.TypedTree+ArgReprInfo):Microsoft.FSharp.Core.Unit:this (FullOpts)
-6 (-2.94 % of base) : 9645.dasm - FSharp.Compiler.AttributeChecking+TryBindMethInfoAttribute@202-1[System.__Canon]:Invoke(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib]):Microsoft.FSharp.Core.FSharpOption`1[System.__Canon]:this (FullOpts)
windows x86
Diffs are based on 2,354,243 contexts (851,840 MinOpts, 1,502,403 FullOpts).
MISSED contexts: base: 0 (0.00%), diff: 9 (0.00%)
Overall (+3,263 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.windows.x86.checked.mch |
7,191,920 |
+138 |
benchmarks.run_pgo.windows.x86.checked.mch |
48,695,572 |
+31 |
benchmarks.run_tiered.windows.x86.checked.mch |
9,517,087 |
+57 |
coreclr_tests.run.windows.x86.checked.mch |
319,523,301 |
-6,925 |
libraries.pmi.windows.x86.checked.mch |
49,527,633 |
+576 |
libraries_tests.run.windows.x86.Release.mch |
190,246,350 |
+3,565 |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
104,015,682 |
+5,917 |
realworld.run.windows.x86.checked.mch |
11,337,016 |
-96 |
FullOpts (+3,263 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.windows.x86.checked.mch |
7,191,639 |
+138 |
benchmarks.run_pgo.windows.x86.checked.mch |
41,973,910 |
+31 |
benchmarks.run_tiered.windows.x86.checked.mch |
5,211,653 |
+57 |
coreclr_tests.run.windows.x86.checked.mch |
112,455,681 |
-6,925 |
libraries.pmi.windows.x86.checked.mch |
49,432,403 |
+576 |
libraries_tests.run.windows.x86.Release.mch |
91,149,962 |
+3,565 |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
95,340,747 |
+5,917 |
realworld.run.windows.x86.checked.mch |
11,041,746 |
-96 |
Example diffs
benchmarks.run.windows.x86.checked.mch
-2 (-4.88%) : 19082.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
@@ -46,17 +46,17 @@ G_M31553_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000004
push dword ptr [ebp+0x10]
push eax
push gword ptr [ebp+0x08]
- cmp dword ptr [ecx], ecx
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x34]
call [eax]<unknown method>
; gcrRegs -[ecx]
; byrRegs -[edx]
- ;; size=34 bbWeight=1 PerfScore 17.25
+ ;; size=32 bbWeight=1 PerfScore 16.25
G_M31553_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret 24
;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 41, prolog size 3, PerfScore 21.00, instruction count 16, allocated bytes for code 41 (MethodHash=3bd084be) for method System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
+; Total bytes of code 39, prolog size 3, PerfScore 20.00, instruction count 16, allocated bytes for code 39 (MethodHash=3bd084be) for method System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
; ============================================================
-6 (-1.68%) : 2720.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo1[int]:ConfigureIgnoreCondition(System.Nullable
1[int]):this (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 14 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 13, 6.50) ref -> esi this class-hnd single-def <System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]>
+; V00 this [V00,T00] ( 14, 7 ) ref -> esi this class-hnd single-def <System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]>
; V01 arg1 [V01,T14] ( 2, 1.50) struct ( 8) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Nullable`1[int]>
;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
;* V03 tmp0 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
@@ -76,12 +76,12 @@ G_M51320_IG05: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=0
; gcrRegs -[eax]
mov ecx, esi
; gcrRegs +[ecx]
- cmp dword ptr [esi], esi
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [esi]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx edx esi]
jmp G_M51320_IG11
- ;; size=17 bbWeight=0.50 PerfScore 5.12
+ ;; size=15 bbWeight=0.50 PerfScore 4.62
G_M51320_IG06: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
mov edx, gword ptr [D1FFAB1EH] ; static handle
@@ -106,12 +106,12 @@ G_M51320_IG07: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=0
; gcrRegs -[eax]
mov ecx, esi
; gcrRegs +[ecx]
- cmp dword ptr [esi], esi
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [esi]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx edx esi]
jmp SHORT G_M51320_IG11
- ;; size=14 bbWeight=0.50 PerfScore 5.12
+ ;; size=12 bbWeight=0.50 PerfScore 4.62
G_M51320_IG08: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
mov ecx, esi
@@ -143,10 +143,11 @@ G_M51320_IG09: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=0
; gcrRegs -[eax]
mov ecx, esi
; gcrRegs +[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [esi]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx edx]
- ;; size=10 bbWeight=0.50 PerfScore 2.62
+ ;; size=10 bbWeight=0.50 PerfScore 3.62
G_M51320_IG10: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov byte ptr [esi+0x57], 1
;; size=4 bbWeight=0.50 PerfScore 0.50
@@ -180,12 +181,12 @@ G_M51320_IG13: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=0
; gcrRegs -[eax]
mov ecx, esi
; gcrRegs +[ecx]
- cmp dword ptr [esi], esi
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [esi]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx edx]
jmp SHORT G_M51320_IG10
- ;; size=14 bbWeight=0.50 PerfScore 5.12
+ ;; size=12 bbWeight=0.50 PerfScore 4.62
G_M51320_IG14: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, gword ptr [esi+0x20]
; gcrRegs +[ecx]
@@ -201,6 +202,6 @@ RWD00 dd G_M51320_IG04 - G_M51320_IG02
dd G_M51320_IG08 - G_M51320_IG02
-; Total bytes of code 358, prolog size 4, PerfScore 53.75, instruction count 93, allocated bytes for code 358 (MethodHash=9de53787) for method System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
+; Total bytes of code 352, prolog size 4, PerfScore 53.25, instruction count 94, allocated bytes for code 352 (MethodHash=9de53787) for method System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
; ============================================================
-3 (-1.40%) : 5994.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
@@ -100,8 +100,8 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
; GC ptr vars +{V15}
mov ecx, edi
; gcrRegs +[ecx]
- cmp dword ptr [edi], edi
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edi]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]<unknown method>
; gcrRegs -[eax ecx]
mov ecx, gword ptr [ebp-0x10]
@@ -119,7 +119,7 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
call [<unknown method>]
; gcrRegs -[ecx ebx]
; gcr arg pop 2
- ;; size=48 bbWeight=2 PerfScore 47.00
+ ;; size=45 bbWeight=2 PerfScore 45.00
G_M60946_IG07: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref, isz
mov eax, dword ptr [esi+0x04]
mov edx, gword ptr [esi]
@@ -172,6 +172,6 @@ G_M60946_IG13: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 215, prolog size 11, PerfScore 360.00, instruction count 73, allocated bytes for code 215 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
+; Total bytes of code 212, prolog size 11, PerfScore 358.00, instruction count 73, allocated bytes for code 212 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
; ============================================================
+17 (+2.31%) : 7388.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
@@ -106,23 +106,25 @@ G_M25385_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs -[ecx]
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
- mov edi, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [D1FFAB1EH]
+ mov edi, dword ptr [eax+0x38]
call [edi+0x0C]<unknown method>
; gcrRegs -[ecx]
mov ebx, eax
test ebx, ebx
je SHORT G_M25385_IG04
- ;; size=133 bbWeight=1 PerfScore 28.75
+ ;; size=135 bbWeight=1 PerfScore 30.75
G_M25385_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax+0x40]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov esi, eax
; gcrRegs +[esi]
- ;; size=15 bbWeight=0.50 PerfScore 2.75
+ ;; size=18 bbWeight=0.50 PerfScore 3.75
G_M25385_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
push ebx
@@ -154,11 +156,12 @@ G_M25385_IG05: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edx+0x40]
call [edx+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ebx, eax
; gcrRegs +[ebx]
- ;; size=16 bbWeight=0.50 PerfScore 2.75
+ ;; size=19 bbWeight=0.50 PerfScore 3.75
G_M25385_IG06: ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
push dword ptr [ebp-0x10]
@@ -190,13 +193,14 @@ G_M25385_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edx+0x40]
call [edx+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ecx, eax
; gcrRegs +[ecx]
mov gword ptr [ebp-0x34], ecx
; GC ptr vars +{V16}
- ;; size=19 bbWeight=0.50 PerfScore 3.25
+ ;; size=22 bbWeight=0.50 PerfScore 4.25
G_M25385_IG08: ; bbWeight=1, gcVars=0000000000000080 {V16}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax ecx]
push dword ptr [ebp-0x14]
@@ -229,13 +233,14 @@ G_M25385_IG09: ; bbWeight=0.50, gcVars=0000000000010000 {V02}, gcrefRegs=
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edx+0x40]
call [edx+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ecx, eax
; gcrRegs +[ecx]
mov gword ptr [ebp-0x38], ecx
; GC ptr vars +{V18}
- ;; size=19 bbWeight=0.50 PerfScore 3.25
+ ;; size=22 bbWeight=0.50 PerfScore 4.25
G_M25385_IG10: ; bbWeight=1, gcVars=0000000000010100 {V02 V18}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax ecx]
push dword ptr [ebp-0x18]
@@ -271,11 +276,12 @@ G_M25385_IG11: ; bbWeight=0.50, gcVars=0000000000030000 {V02 V03}, gcrefR
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edx+0x40]
call [edx+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edi, eax
; gcrRegs +[edi]
- ;; size=16 bbWeight=0.50 PerfScore 2.75
+ ;; size=19 bbWeight=0.50 PerfScore 3.75
G_M25385_IG12: ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
; gcrRegs -[eax]
push dword ptr [ebp-0x1C]
@@ -418,6 +424,6 @@ G_M25385_IG14: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 737, prolog size 14, PerfScore 179.25, instruction count 196, allocated bytes for code 737 (MethodHash=c8319cd6) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
+; Total bytes of code 754, prolog size 14, PerfScore 186.25, instruction count 202, allocated bytes for code 754 (MethodHash=c8319cd6) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
; ============================================================
+9 (+3.88%) : 7378.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (FullOpts)
@@ -60,23 +60,25 @@ G_M61493_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=0000
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax+0x38]
mov dword ptr [ebp-0x20], eax
call [eax+0x0C]<unknown method>
; gcrRegs -[ecx]
mov dword ptr [ebp-0x18], eax
test eax, eax
je SHORT G_M61493_IG04
- ;; size=58 bbWeight=1 PerfScore 18.25
+ ;; size=61 bbWeight=1 PerfScore 20.25
G_M61493_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
; gcrRegs -[ebx]
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edx+0x40]
call [edx+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ebx, eax
; gcrRegs +[ebx]
- ;; size=16 bbWeight=0.50 PerfScore 2.75
+ ;; size=19 bbWeight=0.50 PerfScore 3.75
G_M61493_IG04: ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=000000C0 {esi edi}, byref, isz
; gcrRegs -[eax]
push dword ptr [ebp-0x18]
@@ -112,11 +114,12 @@ G_M61493_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=000000C0
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edx+0x40]
call [edx+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ebx, eax
; gcrRegs +[ebx]
- ;; size=16 bbWeight=0.50 PerfScore 2.75
+ ;; size=19 bbWeight=0.50 PerfScore 3.75
G_M61493_IG06: ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=000000C0 {esi edi}, byref
; gcrRegs -[eax]
push dword ptr [ebp-0x1C]
@@ -155,6 +158,6 @@ G_M61493_IG07: ; bbWeight=1, epilog, nogc, extend
ret 12
;; size=10 bbWeight=1 PerfScore 4.50
-; Total bytes of code 232, prolog size 17, PerfScore 69.75, instruction count 70, allocated bytes for code 232 (MethodHash=8df50fca) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (FullOpts)
+; Total bytes of code 241, prolog size 17, PerfScore 73.75, instruction count 73, allocated bytes for code 241 (MethodHash=8df50fca) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (FullOpts)
; ============================================================
+2 (+6.45%) : 8878.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
@@ -25,12 +25,15 @@ G_M5950_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
mov byte ptr [D1FFAB1EH], 1
;; size=14 bbWeight=0.50 PerfScore 1.00
G_M5950_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- movzx eax, byte ptr [D1FFAB1EH]
- ;; size=7 bbWeight=1 PerfScore 2.00
+ mov eax, 0xD1FFAB1E ; static handle
+ ; byrRegs +[eax]
+ movzx eax, byte ptr [eax+0x01]
+ ; byrRegs -[eax]
+ ;; size=9 bbWeight=1 PerfScore 2.25
G_M5950_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 31, prolog size 0, PerfScore 8.00, instruction count 6, allocated bytes for code 31 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
+; Total bytes of code 33, prolog size 0, PerfScore 8.25, instruction count 7, allocated bytes for code 33 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
; ============================================================
benchmarks.run_pgo.windows.x86.checked.mch
-3 (-1.40%) : 4316.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
@@ -100,8 +100,8 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
; GC ptr vars +{V15}
mov ecx, edi
; gcrRegs +[ecx]
- cmp dword ptr [edi], edi
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edi]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]<unknown method>
; gcrRegs -[eax ecx]
mov ecx, gword ptr [ebp-0x10]
@@ -119,7 +119,7 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
call [<unknown method>]
; gcrRegs -[ecx ebx]
; gcr arg pop 2
- ;; size=48 bbWeight=2 PerfScore 47.00
+ ;; size=45 bbWeight=2 PerfScore 45.00
G_M60946_IG07: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref, isz
mov eax, dword ptr [esi+0x04]
mov edx, gword ptr [esi]
@@ -172,6 +172,6 @@ G_M60946_IG13: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 215, prolog size 11, PerfScore 360.00, instruction count 73, allocated bytes for code 215 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
+; Total bytes of code 212, prolog size 11, PerfScore 358.00, instruction count 73, allocated bytes for code 212 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
; ============================================================
-9 (-0.49%) : 4715.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
@@ -8,12 +8,12 @@
; 13 inlinees with PGO data; 31 single block inlinees; 20 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 12, 47 ) ref -> [ebp-0x5C] this class-hnd EH-live single-def <System.Net.Http.HttpConnectionPool>
+; V00 this [V00,T05] ( 13, 55 ) ref -> [ebp-0x5C] this class-hnd EH-live single-def <System.Net.Http.HttpConnectionPool>
; V01 arg1 [V01,T09] ( 28, 42 ) ref -> [ebp-0x60] class-hnd EH-live single-def <System.Net.Http.HttpConnection>
; V02 arg2 [V02,T49] ( 4, 10 ) ubyte -> [ebp+0x0C] do-not-enreg[Z] EH-live
; V03 arg3 [V03,T33] ( 3, 12 ) ref -> [ebp+0x08] do-not-enreg[Z] class-hnd EH-live <System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
; V04 loc0 [V04 ] ( 18, 16.50) struct (24) [ebp-0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V05 loc1 [V05,T05] ( 8, 52 ) ref -> [ebp-0x64] do-not-enreg[Z] must-init ld-addr-op class-hnd EH-live <System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
+; V05 loc1 [V05,T06] ( 8, 52 ) ref -> [ebp-0x64] do-not-enreg[Z] must-init ld-addr-op class-hnd EH-live <System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
; V06 loc2 [V06,T32] ( 3, 13 ) ubyte -> [ebp-0x3C] do-not-enreg[Z] EH-live
; V07 loc3 [V07,T23] ( 4, 20 ) ref -> [ebp-0x68] do-not-enreg[Z] class-hnd EH-live <<unknown class>>
; V08 loc4 [V08 ] ( 6, 28 ) ubyte -> [ebp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
@@ -22,7 +22,7 @@
; V11 tmp2 [V11,T28] ( 3, 16 ) ref -> esi
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
;* V13 tmp4 [V13 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V14 tmp5 [V14,T58] ( 4, 8 ) int -> ecx "Inlining Arg"
+; V14 tmp5 [V14,T60] ( 4, 8 ) int -> ecx "Inlining Arg"
;* V15 tmp6 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V16 tmp7 [V16,T66] ( 3, 6 ) int -> edi "Inlining Arg"
; V17 tmp8 [V17,T67] ( 2, 4 ) byref -> esi single-def "Inlining Arg"
@@ -33,9 +33,9 @@
;* V22 tmp13 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V23 tmp14 [V23,T68] ( 2, 4 ) byref -> edx single-def "Inlining Arg"
;* V24 tmp15 [V24 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V25 tmp16 [V25,T59] ( 4, 8 ) int -> ecx "Inlining Arg"
+; V25 tmp16 [V25,T61] ( 4, 8 ) int -> ecx "Inlining Arg"
;* V26 tmp17 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V27 tmp18 [V27,T63] ( 4, 6 ) int -> esi "Inlining Arg"
+; V27 tmp18 [V27,T65] ( 4, 6 ) int -> esi "Inlining Arg"
; V28 tmp19 [V28,T69] ( 2, 4 ) byref -> ebx single-def "Inlining Arg"
;* V29 tmp20 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp21 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -43,12 +43,12 @@
;* V32 tmp23 [V32 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V33 tmp24 [V33 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V34 tmp25 [V34,T70] ( 2, 4 ) byref -> edx single-def "Inlining Arg"
-; V35 tmp26 [V35,T64] ( 3, 6 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
+; V35 tmp26 [V35,T50] ( 4, 8 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
; V36 tmp27 [V36,T79] ( 3, 3 ) ref -> ebx single-def
;* V37 tmp28 [V37 ] ( 0, 0 ) ref -> zero-ref single-def
;* V38 tmp29 [V38 ] ( 0, 0 ) ref -> zero-ref single-def
; V39 tmp30 [V39,T84] ( 3, 3 ) int -> esi
-; V40 tmp31 [V40,T50] ( 4, 8 ) ref -> edx class-hnd single-def "dup spill" <<unknown class>>
+; V40 tmp31 [V40,T51] ( 4, 8 ) ref -> edx class-hnd single-def "dup spill" <<unknown class>>
; V41 tmp32 [V41,T72] ( 2, 4 ) int -> [ebp-0x44] spill-single-def "impAppendStmt"
;* V42 tmp33 [V42 ] ( 0, 0 ) ref -> zero-ref single-def
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref
@@ -60,12 +60,12 @@
; V49 tmp40 [V49,T85] ( 3, 3 ) int -> edx
; V50 tmp41 [V50,T71] ( 2, 4 ) ref -> edi class-hnd exact single-def "Inlining Arg" <System.String>
;* V51 tmp42 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V52 tmp43 [V52,T65] ( 3, 6 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
+; V52 tmp43 [V52,T52] ( 4, 8 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
; V53 tmp44 [V53,T80] ( 3, 3 ) ref -> ebx single-def
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref single-def
;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref single-def
; V56 tmp47 [V56,T86] ( 3, 3 ) int -> esi
-; V57 tmp48 [V57,T51] ( 4, 8 ) ref -> eax class-hnd single-def "dup spill" <<unknown class>>
+; V57 tmp48 [V57,T53] ( 4, 8 ) ref -> eax class-hnd single-def "dup spill" <<unknown class>>
; V58 tmp49 [V58,T73] ( 2, 4 ) int -> edi "impAppendStmt"
;* V59 tmp50 [V59 ] ( 0, 0 ) ref -> zero-ref single-def
;* V60 tmp51 [V60 ] ( 0, 0 ) int -> zero-ref
@@ -80,14 +80,14 @@
;* V69 tmp60 [V69 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
;* V70 tmp61 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
;* V71 tmp62 [V71 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
-;* V72 tmp63 [V72,T61] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V72 tmp63 [V72,T63] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V73 tmp64 [V73 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
;* V74 tmp65 [V74,T78] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V75 tmp66 [V75,T77] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V76 tmp67 [V76 ] ( 0, 0 ) struct ( 8) zero-ref "Inline stloc first use temp" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
; V77 tmp68 [V77,T15] ( 3, 24 ) byref -> eax "Inlining Arg"
; V78 tmp69 [V78,T25] ( 4, 16 ) int -> esi "Inline stloc first use temp"
-;* V79 tmp70 [V79,T62] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V79 tmp70 [V79,T64] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V80 tmp71 [V80,T04] ( 11, 88 ) byref -> esi "Inlining Arg"
;* V81 tmp72 [V81 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
;* V82 tmp73 [V82 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
@@ -117,12 +117,12 @@
; V106 tmp97 [V106,T18] ( 3, 24 ) byref -> ecx "Inlining Arg"
; V107 tmp98 [V107,T29] ( 2, 16 ) ref -> edx class-hnd exact "Inlining Arg" <System.Object>
;* V108 tmp99 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V109 tmp100 [V109,T52] ( 4, 8 ) ref -> ecx class-hnd exact "dup spill" <System.Net.Http.HttpConnectionPool>
+; V109 tmp100 [V109,T54] ( 4, 8 ) ref -> ecx class-hnd exact "dup spill" <System.Net.Http.HttpConnectionPool>
; V110 tmp101 [V110,T81] ( 3, 3 ) ref -> ebx
;* V111 tmp102 [V111 ] ( 0, 0 ) ref -> zero-ref
;* V112 tmp103 [V112 ] ( 0, 0 ) ref -> zero-ref
; V113 tmp104 [V113,T88] ( 3, 3 ) int -> esi
-; V114 tmp105 [V114,T53] ( 4, 8 ) ref -> ecx class-hnd "dup spill" <<unknown class>>
+; V114 tmp105 [V114,T55] ( 4, 8 ) ref -> ecx class-hnd "dup spill" <<unknown class>>
; V115 tmp106 [V115,T74] ( 2, 4 ) int -> edi "impAppendStmt"
;* V116 tmp107 [V116 ] ( 0, 0 ) ref -> zero-ref
;* V117 tmp108 [V117 ] ( 0, 0 ) int -> zero-ref
@@ -138,12 +138,12 @@
; V127 tmp118 [V127,T08] ( 3, 48 ) ref -> ebx class-hnd exact "non-inline candidate call" <System.Net.NetEventSource>
; V128 tmp119 [V128,T13] ( 2, 32 ) int -> eax "Inlining Arg"
;* V129 tmp120 [V129 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V130 tmp121 [V130,T54] ( 4, 8 ) ref -> eax class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
+; V130 tmp121 [V130,T56] ( 4, 8 ) ref -> eax class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
; V131 tmp122 [V131,T82] ( 3, 3 ) ref -> ebx single-def
;* V132 tmp123 [V132 ] ( 0, 0 ) ref -> zero-ref single-def
;* V133 tmp124 [V133 ] ( 0, 0 ) ref -> zero-ref single-def
; V134 tmp125 [V134,T90] ( 3, 3 ) int -> esi
-; V135 tmp126 [V135,T55] ( 4, 8 ) ref -> ecx class-hnd single-def "dup spill" <<unknown class>>
+; V135 tmp126 [V135,T57] ( 4, 8 ) ref -> ecx class-hnd single-def "dup spill" <<unknown class>>
; V136 tmp127 [V136,T75] ( 2, 4 ) int -> edi "impAppendStmt"
;* V137 tmp128 [V137 ] ( 0, 0 ) ref -> zero-ref single-def
;* V138 tmp129 [V138 ] ( 0, 0 ) int -> zero-ref
@@ -154,12 +154,12 @@
;* V143 tmp134 [V143 ] ( 0, 0 ) int -> zero-ref
; V144 tmp135 [V144,T91] ( 3, 3 ) int -> eax
;* V145 tmp136 [V145 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V146 tmp137 [V146,T56] ( 4, 8 ) ref -> eax class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
+; V146 tmp137 [V146,T58] ( 4, 8 ) ref -> eax class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
; V147 tmp138 [V147,T83] ( 3, 3 ) ref -> ebx single-def
;* V148 tmp139 [V148 ] ( 0, 0 ) ref -> zero-ref single-def
;* V149 tmp140 [V149 ] ( 0, 0 ) ref -> zero-ref single-def
; V150 tmp141 [V150,T92] ( 3, 3 ) int -> esi
-; V151 tmp142 [V151,T57] ( 4, 8 ) ref -> eax class-hnd single-def "dup spill" <<unknown class>>
+; V151 tmp142 [V151,T59] ( 4, 8 ) ref -> eax class-hnd single-def "dup spill" <<unknown class>>
; V152 tmp143 [V152,T76] ( 2, 4 ) int -> edi "impAppendStmt"
;* V153 tmp144 [V153 ] ( 0, 0 ) ref -> zero-ref single-def
;* V154 tmp145 [V154 ] ( 0, 0 ) int -> zero-ref
@@ -194,7 +194,7 @@
;* V183 tmp174 [V183 ] ( 0, 0 ) ref -> zero-ref "field V82.Request (fldOffset=0x0)" P-INDEP
;* V184 tmp175 [V184 ] ( 0, 0 ) ref -> zero-ref "field V82.Waiter (fldOffset=0x4)" P-INDEP
;* V185 tmp176 [V185 ] ( 0, 0 ) ref -> zero-ref "field V85.Request (fldOffset=0x0)" P-INDEP
-; V186 tmp177 [V186,T60] ( 2, 8 ) ref -> edx "field V85.Waiter (fldOffset=0x4)" P-INDEP
+; V186 tmp177 [V186,T62] ( 2, 8 ) ref -> edx "field V85.Waiter (fldOffset=0x4)" P-INDEP
; V187 tmp178 [V187,T19] ( 3, 24 ) byref -> edx "BlockOp address local"
; V188 tmp179 [V188,T20] ( 3, 24 ) ref -> eax "arr expr"
; V189 tmp180 [V189,T22] ( 3, 24 ) int -> esi "index expr"
@@ -230,7 +230,7 @@ G_M4424_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
mov gword ptr [ebp-0x60], edx
; GC ptr vars +{V01}
;; size=37 bbWeight=1 PerfScore 13.08
-G_M4424_IG02: ; bbWeight=1, gcVars=000000000000000000000240 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M4424_IG02: ; bbWeight=1, gcVars=000000000000000000000220 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
mov edx, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[edx]
cmp byte ptr [edx+0x59], 0
@@ -425,8 +425,8 @@ G_M4424_IG13: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret 8
;; size=10 bbWeight=1 PerfScore 4.50
-G_M4424_IG14: ; bbWeight=0.50, gcVars=000000000000000000000240 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; GC ptr vars +{V00 V01 V06}
+G_M4424_IG14: ; bbWeight=0.50, gcVars=000000000000000000000220 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ; GC ptr vars +{V00 V01 V05}
lea ecx, [ebp-0x38]
mov edx, 0xD1FFAB1E
; gcrRegs +[edx]
@@ -435,7 +435,7 @@ G_M4424_IG14: ; bbWeight=0.50, gcVars=000000000000000000000240 {V00 V01},
jmp G_M4424_IG04
;; size=19 bbWeight=0.50 PerfScore 2.88
G_M4424_IG15: ; bbWeight=8, gcVars=000000000000000000000260 {V00 V01 V05}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; GC ptr vars -{V06} +{V05}
+ ; GC ptr vars +{V06}
cmp gword ptr [ebp-0x64], 0
je G_M4424_IG62
mov esi, gword ptr [ebp-0x64]
@@ -477,18 +477,19 @@ G_M4424_IG17: ; bbWeight=32, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
mov ebx, eax
jmp SHORT G_M4424_IG17
;; size=41 bbWeight=32 PerfScore 808.00
-G_M4424_IG18: ; bbWeight=1, gcVars=000000000000000000000240 {V00 V01}, gcrefRegs=0000008A {ecx ebx edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M4424_IG18: ; bbWeight=1, gcVars=000000000000000000000220 {V00 V01}, gcrefRegs=0000008A {ecx ebx edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[esi] +[ecx ebx]
; byrRegs -[ecx]
- ; GC ptr vars -{V05}
- mov edx, dword ptr [D1FFAB1EH]
+ ; GC ptr vars -{V05 V06}
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]System.Object:GetHashCode():int:this
; gcrRegs -[ecx]
mov esi, eax
mov eax, gword ptr [ebp-0x60]
; gcrRegs +[eax]
jmp G_M4424_IG07
- ;; size=19 bbWeight=1 PerfScore 8.25
+ ;; size=18 bbWeight=1 PerfScore 10.25
G_M4424_IG19: ; bbWeight=1, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref
; gcrRegs -[eax] +[edx]
mov ecx, edx
@@ -504,14 +505,15 @@ G_M4424_IG19: ; bbWeight=1, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=0
G_M4424_IG20: ; bbWeight=1, gcVars=000000000000000000000200 {V01}, gcrefRegs=0000000A {ecx ebx}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[edi] +[ecx]
; GC ptr vars -{V00}
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]System.Object:GetHashCode():int:this
; gcrRegs -[ecx]
mov esi, eax
mov eax, gword ptr [ebp-0x60]
; gcrRegs +[eax]
jmp G_M4424_IG10
- ;; size=19 bbWeight=1 PerfScore 8.25
+ ;; size=18 bbWeight=1 PerfScore 10.25
G_M4424_IG21: ; bbWeight=1, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref
mov ecx, eax
; gcrRegs +[ecx]
@@ -523,19 +525,17 @@ G_M4424_IG21: ; bbWeight=1, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000
mov edx, eax
jmp G_M4424_IG11
;; size=17 bbWeight=1 PerfScore 9.50
-G_M4424_IG22: ; bbWeight=8, gcVars=000000000000000000000240 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M4424_IG22: ; bbWeight=8, gcVars=000000000000000000000220 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[ebx]
- ; GC ptr vars +{V00 V06}
+ ; GC ptr vars +{V00 V05}
mov eax, gword ptr [ebp-0x60]
; gcrRegs +[eax]
xor edx, edx
; gcrRegs +[edx]
mov gword ptr [ebp-0x64], edx
- ; GC ptr vars +{V05}
;; size=8 bbWeight=8 PerfScore 18.00
G_M4424_IG23: ; bbWeight=8, gcVars=000000000000000000000260 {V00 V01 V05}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[edx]
- ; GC ptr vars -{V06}
mov dword ptr [ebp-0x3C], edx
mov ecx, gword ptr [ebp-0x5C]
; gcrRegs +[ecx]
@@ -895,7 +895,7 @@ G_M4424_IG52: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
cmp edx, 0xD1FFAB1E
je SHORT G_M4424_IG54
;; size=59 bbWeight=8 PerfScore 196.00
-G_M4424_IG53: ; bbWeight=4, gcVars=000000000000000000000240 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M4424_IG53: ; bbWeight=4, gcVars=000000000000000000000220 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[ecx]
; GC ptr vars -{V05}
mov esi, 0xD1FFAB1E
@@ -913,7 +913,8 @@ G_M4424_IG55: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs +[ebx]
mov ecx, gword ptr [ebp-0x5C]
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]System.Object:GetHashCode():int:this
; gcrRegs -[ecx]
cmp byte ptr [ebx], bl
@@ -931,7 +932,7 @@ G_M4424_IG55: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
...
-1 (-0.29%) : 59803.dasm - System.Xml.XmlBinaryNodeWriter:WriteDateTimeArray(System.ReadOnlySpan`1[System.DateTime]):this (Tier0-FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 9 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 15, 27 ) ref -> esi this class-hnd single-def <System.Xml.XmlBinaryNodeWriter>
+; V00 this [V00,T00] ( 16, 29 ) ref -> esi this class-hnd single-def <System.Xml.XmlBinaryNodeWriter>
; V01 arg1 [V01,T21] ( 2, 2 ) struct ( 8) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[System.DateTime]>
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ReadOnlySpan`1[System.DateTime]>
; V03 loc1 [V03,T04] ( 5, 17 ) int -> [ebp-0x10]
@@ -183,13 +183,14 @@ G_M42049_IG12: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
mov dword ptr [ebp-0x30], eax
mov ecx, esi
; gcrRegs +[ecx]
- mov ebx, dword ptr [D1FFAB1EH]
+ mov ebx, dword ptr [esi]
+ mov ebx, dword ptr [ebx+0x44]
call [ebx+0x14]System.Xml.XmlStreamNodeWriter:FlushBuffer():this
; gcrRegs -[ecx]
xor ecx, ecx
mov eax, dword ptr [ebp-0x30]
mov edx, dword ptr [ebp-0x2C]
- ;; size=25 bbWeight=2 PerfScore 19.00
+ ;; size=24 bbWeight=2 PerfScore 23.00
G_M42049_IG13: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov ebx, gword ptr [esi+0x04]
; gcrRegs +[ebx]
@@ -232,6 +233,6 @@ G_M42049_IG16: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 344, prolog size 11, PerfScore 262.88, instruction count 113, allocated bytes for code 344 (MethodHash=e1aa5bbe) for method System.Xml.XmlBinaryNodeWriter:WriteDateTimeArray(System.ReadOnlySpan`1[System.DateTime]):this (Tier0-FullOpts)
+; Total bytes of code 343, prolog size 11, PerfScore 266.88, instruction count 114, allocated bytes for code 343 (MethodHash=e1aa5bbe) for method System.Xml.XmlBinaryNodeWriter:WriteDateTimeArray(System.ReadOnlySpan`1[System.DateTime]):this (Tier0-FullOpts)
; ============================================================
+3 (+0.30%) : 99181.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (Tier0-FullOpts)
@@ -157,6 +157,7 @@ G_M22068_IG06: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax+0x68]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ecx, eax
@@ -171,7 +172,7 @@ G_M22068_IG06: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs -[eax ecx]
test eax, eax
je SHORT G_M22068_IG12
- ;; size=35 bbWeight=1 PerfScore 13.25
+ ;; size=38 bbWeight=1 PerfScore 15.25
G_M22068_IG07: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, edi
; gcrRegs +[ecx]
@@ -692,7 +693,7 @@ G_M22068_IG42: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 998, prolog size 42, PerfScore 765.96, instruction count 312, allocated bytes for code 998 (MethodHash=a21fa9cb) for method Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (Tier0-FullOpts)
+; Total bytes of code 1001, prolog size 42, PerfScore 767.96, instruction count 313, allocated bytes for code 1001 (MethodHash=a21fa9cb) for method Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (Tier0-FullOpts)
; ============================================================
*************** EH table for Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this
+48 (+0.43%) : 32671.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (Tier0-FullOpts)
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 this [V00,T05] ( 65, 78.50) ref -> edi this class-hnd single-def <System.Xml.Serialization.XmlReflectionImporter>
-; V01 arg1 [V01,T10] ( 48, 59.50) ref -> ebx class-hnd single-def <System.Xml.Serialization.MemberMapping>
+; V01 arg1 [V01,T11] ( 48, 59.50) ref -> ebx class-hnd single-def <System.Xml.Serialization.MemberMapping>
; V02 arg2 [V02,T22] ( 18, 33 ) ref -> [ebp+0x20] class-hnd single-def <System.Xml.Serialization.FieldModel>
; V03 arg3 [V03,T04] ( 70, 84 ) ref -> esi class-hnd single-def <System.Xml.Serialization.XmlAttributes>
; V04 arg4 [V04,T14] ( 37, 48.50) ref -> [ebp+0x18] class-hnd single-def <System.String>
@@ -32,7 +32,7 @@
;* V21 loc12 [V21 ] ( 0, 0 ) int -> zero-ref
; V22 loc13 [V22,T69] ( 12, 14 ) ref -> [ebp-0x94] class-hnd spill-single-def <System.Type>
; V23 loc14 [V23,T340] ( 3, 1.50) ubyte -> [ebp-0x1C] spill-single-def
-; V24 loc15 [V24,T103] ( 18, 9 ) ref -> [ebp-0x98] class-hnd <System.Xml.Serialization.AttributeAccessor>
+; V24 loc15 [V24,T103] ( 19, 9.50) ref -> [ebp-0x98] class-hnd <System.Xml.Serialization.AttributeAccessor>
;* V25 loc16 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Type>
;* V26 loc17 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Xml.Serialization.TypeDesc>
; V27 loc18 [V27,T198] ( 3, 4.50) ref -> [ebp-0x9C] class-hnd exact spill-single-def <System.Xml.Serialization.NameTable>
@@ -44,7 +44,7 @@
;* V33 loc24 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Type>
; V34 loc25 [V34,T200] ( 2, 4 ) ref -> [ebp-0xAC] class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
; V35 loc26 [V35,T106] ( 5, 8 ) ref -> [ebp-0xB0] class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
-; V36 loc27 [V36,T19] ( 18, 36 ) ref -> [ebp-0xB4] class-hnd <System.Xml.Serialization.ElementAccessor>
+; V36 loc27 [V36,T19] ( 20, 40 ) ref -> [ebp-0xB4] class-hnd <System.Xml.Serialization.ElementAccessor>
; V37 loc28 [V37,T96] ( 5, 10.50) int -> [ebp-0x24]
; V38 loc29 [V38,T74] ( 8, 12 ) ref -> [ebp-0xB8] class-hnd spill-single-def <System.Xml.Serialization.XmlAnyElementAttribute>
;* V39 loc30 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Type>
@@ -54,23 +54,23 @@
; V43 loc34 [V43,T201] ( 2, 4 ) ref -> [ebp-0xC0] class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
; V44 loc35 [V44,T185] ( 3, 6 ) ref -> [ebp-0xC4] class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
;* V45 loc36 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Xml.Serialization.TypeDesc>
-; V46 loc37 [V46,T182] ( 14, 7 ) ref -> [ebp-0xC8] class-hnd <System.Xml.Serialization.ElementAccessor>
+; V46 loc37 [V46,T181] ( 15, 7.50) ref -> [ebp-0xC8] class-hnd <System.Xml.Serialization.ElementAccessor>
; V47 loc38 [V47,T349] ( 2, 1 ) ref -> eax class-hnd exact single-def <<unknown class>>
;* V48 loc39 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.Serialization.XmlAttributes>
;* V49 loc40 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Xml.Serialization.XmlArrayAttribute>
;* V50 loc41 [V50 ] ( 0, 0 ) int -> zero-ref
-; V51 loc42 [V51,T104] ( 17, 8.50) ref -> [ebp-0xCC] class-hnd <System.Xml.Serialization.AttributeAccessor>
+; V51 loc42 [V51,T104] ( 18, 9 ) ref -> [ebp-0xCC] class-hnd <System.Xml.Serialization.AttributeAccessor>
; V52 loc43 [V52,T253] ( 4, 2 ) ref -> [ebp-0xD0] class-hnd exact spill-single-def <System.Xml.Serialization.TextAccessor>
; V53 loc44 [V53,T45] ( 5, 16.50) int -> [ebp-0x28]
; V54 loc45 [V54,T17] ( 16, 46 ) ref -> [ebp-0xD4] class-hnd spill-single-def <System.Xml.Serialization.XmlElementAttribute>
-; V55 loc46 [V55,T11] ( 18, 60 ) ref -> [ebp-0xD8] class-hnd <System.Xml.Serialization.ElementAccessor>
+; V55 loc46 [V55,T08] ( 19, 64 ) ref -> [ebp-0xD8] class-hnd <System.Xml.Serialization.ElementAccessor>
; V56 loc47 [V56,T77] ( 5, 12 ) ref -> [ebp-0xDC] class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
; V57 loc48 [V57,T184] ( 3, 6.50) ref -> [ebp-0xE0] class-hnd exact spill-single-def <System.Xml.Serialization.NameTable>
; V58 loc49 [V58,T46] ( 5, 16.50) int -> [ebp-0x2C]
; V59 loc50 [V59,T16] ( 17, 46 ) ref -> [ebp-0xE4] class-hnd spill-single-def <System.Xml.Serialization.XmlElementAttribute>
;* V60 loc51 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Type>
; V61 loc52 [V61,T130] ( 2, 8 ) ref -> [ebp-0xE8] class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
-; V62 loc53 [V62,T13] ( 15, 50 ) ref -> [ebp-0xEC] class-hnd <System.Xml.Serialization.ElementAccessor>
+; V62 loc53 [V62,T13] ( 17, 54 ) ref -> [ebp-0xEC] class-hnd <System.Xml.Serialization.ElementAccessor>
; V63 loc54 [V63,T78] ( 5, 12 ) ref -> [ebp-0xF0] class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
; V64 loc55 [V64,T47] ( 5, 16.50) int -> [ebp-0x30]
; V65 loc56 [V65,T33] ( 12, 26 ) ref -> [ebp-0xF4] class-hnd spill-single-def <System.Xml.Serialization.XmlAnyElementAttribute>
@@ -85,7 +85,7 @@
; V74 loc65 [V74,T12] ( 16, 60 ) ref -> [ebp-0x104] class-hnd exact spill-single-def <System.Xml.Serialization.ElementAccessor>
; V75 loc66 [V75,T07] ( 7, 66 ) ref -> [ebp-0x108] class-hnd exact spill-single-def <<unknown class>>
; V76 loc67 [V76,T00] ( 10,120 ) int -> [ebp-0x34]
-; V77 loc68 [V77,T08] ( 7, 64 ) ref -> [ebp-0x10C] class-hnd exact spill-single-def <System.String>
+; V77 loc68 [V77,T09] ( 7, 64 ) ref -> [ebp-0x10C] class-hnd exact spill-single-def <System.String>
; V78 loc69 [V78,T26] ( 4, 32 ) int -> [ebp-0x38] spill-single-def
;* V79 loc70 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
;* V80 loc71 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
@@ -97,7 +97,7 @@
; V86 tmp3 [V86,T24] ( 4, 32 ) ref -> [ebp-0x114]
; V87 tmp4 [V87,T35] ( 3, 24 ) ref -> [ebp-0x118]
; V88 tmp5 [V88,T01] ( 3, 96 ) ref -> [ebp-0x11C] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
-; V89 tmp6 [V89,T09] ( 2, 64 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
+; V89 tmp6 [V89,T10] ( 2, 64 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
; V90 tmp7 [V90,T27] ( 2, 32 ) ref -> eax class-hnd exact "dup spill" <System.String>
; V91 tmp8 [V91,T25] ( 4, 32 ) ref -> [ebp-0x120]
; V92 tmp9 [V92,T82] ( 3, 12 ) ref -> [ebp-0x124] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
@@ -699,7 +699,7 @@
; V688 rat4 [V688,T346] ( 3, 1 ) int -> ecx "CSE for expectedClsNode"
; V689 rat5 [V689,T208] ( 4, 3.50) ref -> edx "replacement local"
; V690 rat6 [V690,T347] ( 3, 1 ) int -> ecx "CSE for expectedClsNode"
-; V691 rat7 [V691,T181] ( 5, 7.50) ref -> edx "replacement local"
+; V691 rat7 [V691,T182] ( 5, 7.50) ref -> edx "replacement local"
; V692 rat8 [V692,T251] ( 3, 2.50) int -> ecx "CSE for expectedClsNode"
; V693 rat9 [V693,T32] ( 4, 28 ) ref -> edx "replacement local"
; V694 rat10 [V694,T129] ( 3, 8 ) int -> ecx "CSE for expectedClsNode"
@@ -1061,8 +1061,10 @@ G_M33521_IG21: ; bbWeight=0.50, gcVars=0000000000000000000000000000000000
; gcrRegs +[edx]
mov ecx, gword ptr [ebp-0x98]
; gcrRegs +[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov gword ptr [ebp-0x98], ecx
+ mov eax, dword ptr [ecx]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x14]System.Xml.Serialization.Accessor:set_Name(System.String):this
; gcrRegs -[ecx edx]
mov ecx, gword ptr [esi+0x14]
@@ -1102,7 +1104,7 @@ G_M33521_IG21: ; bbWeight=0.50, gcVars=0000000000000000000000000000000000
mov dword ptr [eax+0x18], 1
mov ecx, eax
; gcrRegs +[ecx]
- ;; size=111 bbWeight=0.50 PerfScore 17.38
+ ;; size=117 bbWeight=0.50 PerfScore 18.88
G_M33521_IG22: ; bbWeight=0.50, gcVars=000000000000000000000000000000000000020000000000000000600000000000000000000000000000000000000000000000000000100000000000 {V12 V13 V16 V316}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax]
; GC ptr vars -{V24}
@@ -1601,12 +1603,14 @@ G_M33521_IG45: ; bbWeight=2, gcrefRegs=000000CA {ecx ebx esi edi}, byrefR
; gcrRegs +[edx]
mov ecx, gword ptr [ebp-0xB4]
; gcrRegs +[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov gword ptr [ebp-0xB4], ecx
+ mov eax, dword ptr [ecx]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x14]System.Xml.Serialization.Accessor:set_Name(System.String):this
; gcrRegs -[ecx edx]
jmp SHORT G_M33521_IG51
- ;; size=31 bbWeight=2 PerfScore 25.00
+ ;; size=37 bbWeight=2 PerfScore 31.00
G_M33521_IG46: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
mov eax, gword ptr [ebp-0xA8]
; gcrRegs +[eax]
@@ -1650,11 +1654,13 @@ G_M33521_IG50: ; bbWeight=2, gcrefRegs=000000C9 {eax ebx esi edi}, byrefR
; gcrRegs +[ecx]
mov edx, eax
; gcrRegs +[edx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov gword ptr [ebp-0xB4], ecx
+ mov eax, dword ptr [ecx]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x14]System.Xml.Serialization.Accessor:set_Name(System.String):this
; gcrRegs -[ecx edx]
- ;; size=16 bbWeight=2 PerfScore 12.50
+ ;; size=22 bbWeight=2 PerfScore 18.50
G_M33521_IG51: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
mov eax, gword ptr [ebp+0x20]
; gcrRegs +[eax]
@@ -2048,7 +2054,7 @@ G_M33521_IG75: ; bbWeight=8, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
jne SHORT G_M33521_IG76
mov gword ptr [ebp-0x120], 0xD1FFAB1E
;; size=54 bbWeight=8 PerfScore 122.00
-G_M33521_IG76: ; bbWeight=8, gcVars=000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000002001180 {V12 V13 V74 V75 V77 V91}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M33521_IG76: ; bbWeight=8, gcVars=000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000002001280 {V12 V13 V74 V75 V77 V91}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax]
mov edx, gword ptr [ebp-0x10C]
; gcrRegs +[edx]
@@ -2686,7 +2692,7 @@ G_M33521_IG104: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefR
cmove ecx, edx
jmp SHORT G_M33521_IG106
;; size=64 bbWeight=0.50 PerfScore 8.00
-G_M33521_IG105: ; bbWeight=0.50, gcVars=00000000000000000000000000000000000000000000000000000060000000000000000000C000000000000000000002000000000000100080000000 {V12 V13 V14 V15 V16 V46 V84}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M33521_IG105: ; bbWeight=0.50, gcVars=00000000000000000000000000000000000000000000000000000060000000000000000000A000000000000000000002000000000000100080000000 {V12 V13 V14 V15 V16 V46 V84}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax ecx edx]
; GC ptr vars -{V666}
mov edx, gword ptr [ebp-0x88]
@@ -2694,7 +2700,7 @@ G_M33521_IG105: ; bbWeight=0.50, gcVars=000000000000000000000000000000000
mov ecx, edx
; gcrRegs +[ecx]
;; size=8 bbWeight=0.50 PerfScore 0.62
-G_M33521_IG106: ; bbWeight=0.50, gcVars=00000000000000000000000000000000000000000000000000000060000000000000000000C000000000000000000000000000000000100080000000 {V12 V13 V14 V16 V46 V84}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M33521_IG106: ; bbWeight=0.50, gcVars=00000000000000000000000000000000000000000000000000000060000000000000000000A000000000000000000000000000000000100080000000 {V12 V13 V14 V16 V46 V84}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[edx]
; GC ptr vars -{V15}
push 1
@@ -2705,8 +2711,10 @@ G_M33521_IG106: ; bbWeight=0.50, gcVars=000000000000000000000000000000000
; gcrRegs +[edx]
mov ecx, gword ptr [ebp-0xC8]
; gcrRegs +[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov gword ptr [ebp-0xC8], ecx
+ mov eax, dword ptr [ecx]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x14]System.Xml.Serialization.Accessor:set_Name(System.String):this
; gcrRegs -[ecx edx]
cmp byte ptr [ebp+0x10], 0
@@ -2720,7 +2728,7 @@ G_M33521_IG106: ; bbWeight=0.50, gcVars=000000000000000000000000000000000
mov gword ptr [ebp-0x158], ecx
; GC ptr vars +{V237}
jmp SHORT G_M33521_IG108
- ;; size=55 bbWeight=0.50 PerfScore 11.38
+ ;; size=61 bbWeight=0.50 PerfScore 12.88
G_M33521_IG107: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
; gcrRegs -[ecx edx]
; GC ptr vars -{V237}
@@ -2729,7 +2737,7 @@ G_M33521_IG107: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefR
mov gword ptr [ebp-0x158], ecx
; GC ptr vars +{V237}
;; size=8 bbWeight=0.50 PerfScore 0.62
-G_M33521_IG108: ; bbWeight=0.50, gcVars=00000000000000000000000000000000000000000000000000000060000000000002000000C000000000000000000000000000000000100080000000 {V12 V13 V14 V16 V46 V84 V237}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M33521_IG108: ; bbWeight=0.50, gcVars=00000000000000000000000000000000000000000000000000000060000000000002000000A000000000000000000000000000000000100080000000 {V12 V13 V14 V16 V46 V84 V237}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[ecx]
mov ecx, gword ptr [ebp-0xC8]
; gcrRegs +[ecx]
@@ -2844,7 +2852,7 @@ G_M33521_IG111: ; bbWeight=0.50, gcrefRegs=0000008E {ecx edx ebx edi}, by
mov gword ptr [ebp-0xC8], eax
; GC ptr vars +{V46}
;; size=110 bbWeight=0.50 PerfScore 20.00
-G_M33521_IG112: ; bbWeight=0.50, gcVars=00000000000000000000000000000000000000000000000000000060000000000000000000C000000000000000000000000000000000100000000000 {V12 V13 V16 V46 V84}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M33521_IG112: ; bbWeight=0.50, gcVars=00000000000000000000000000000000000000000000000000000060000000000000000000A000000000000000000000000000000000100000000000 {V12 V13 V16 V46 V84}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax]
xor ecx, ecx
; gcrRegs +[ecx]
@@ -2962,8 +2970,10 @@ G_M33521_IG117: ; bbWeight=0.50, gcVars=000000000000000000000000000000000
; gcrRegs +[edx]
mov ecx, gword ptr [ebp-0xCC]
; gcrRegs +[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov gword ptr [ebp-0xCC], ecx
+ mov eax, dword ptr [ecx]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x14]System.Xml.Serialization.Accessor:set_Name(System.String):this
; gcrRegs -[ecx edx]
mov ecx, gword ptr [esi+0x14]
@@ -3003,7 +3013,7 @@ G_M33521_IG117: ; bbWeight=0.50, gcVars=000000000000000000000000000000000
mov dword ptr [eax+0x18], 1
mov ecx, eax
; gcrRegs +[ecx]
- ;; size=111 bbWeight=0.50 PerfScore 17.38
+ ;; size=117 bbWeight=0.50 PerfScore 18.88
G_M33521_IG118: ; bbWeight=0.50, gcVars=000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000100080000000 {V12 V13 V14 V16}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax]
; GC ptr vars -{V51}
@@ -3316,7 +3326,7 @@ G_M33521_IG132: ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs
test ecx, ecx
jne SHORT G_M33521_IG134
;; size=29 bbWeight=4 PerfScore 26.00
-G_M33521_IG133: ; bbWeight=2, gcVars=000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000002000000000000120080020800 {V12 V13 V14 V15 V16 V17 V54 V55}, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M33521_IG133: ; bbWeight=2, gcVars=000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000002000000000000120080020100 {V12 V13 V14 V15 V16 V17 V54 V55}, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax ecx]
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -3342,9 +3352,9 @@ G_M33521_IG137: ; bbWeight=2, gcVars=000000000000000000000000000000000000
; GC ptr vars -{V55}
jmp SHORT G_M33521_IG132
;; size=2 bbWeight=2 PerfScore 4.00
-G_M33521_IG138: ; bbWeight=2, gcVars=000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000002000000000000120080020800 {V12 V13 V14 V15 V16 V17 V54 V55}, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M33521_IG138: ; bbWeight=2, gcVars=000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000002000000000000120080020100 {V12 V13 V14 V15 V16 V17 V54 V55}, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax] +[edx]
- ; GC ptr vars +{V11 V55}
+ ; GC ptr vars +{V08 V55}
mov ecx, gword ptr [ebp-0x88]
; gcrRegs +[ecx]
;; size=6 bbWeight=2 PerfScore 2.00
@@ -3358,13 +3368,15 @@ G_M33521_IG139: ; bbWeight=4, gcrefRegs=000000CA {ecx ebx esi edi}, byref
; gcrRegs +[edx]
mov ecx, gword ptr [ebp-0xD8]
; gcrRegs +[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov gword ptr [ebp-0xD8], ecx
...
+12 (+0.84%) : 50358.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
@@ -8,8 +8,8 @@
; 18 inlinees with PGO data; 58 single block inlinees; 15 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T52] ( 6, 5 ) ref -> ebx class-hnd single-def <System.Collections.Generic.Dictionary`2[System.String,System.String]>
-; V01 loc0 [V01,T53] ( 5, 7 ) ref -> [ebp-0x88] class-hnd <System.IO.MemoryStream>
+; V00 arg0 [V00,T53] ( 6, 5 ) ref -> ebx class-hnd single-def <System.Collections.Generic.Dictionary`2[System.String,System.String]>
+; V01 loc0 [V01,T30] ( 7, 11.50) ref -> [ebp-0x88] class-hnd <System.IO.MemoryStream>
; V02 loc1 [V02,T27] ( 9, 14.50) ref -> [ebp-0x8C] class-hnd <ubyte[]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Span`1[ubyte]>
;* V04 loc3 [V04 ] ( 0, 0 ) struct ( 8) zero-ref <System.Span`1[ubyte]>
@@ -43,7 +43,7 @@
; V32 tmp15 [V32,T16] ( 3, 24 ) int -> ecx "impAppendStmt"
;* V33 tmp16 [V33 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V34 tmp17 [V34 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V35 tmp18 [V35,T35] ( 2, 8 ) ref -> edx class-hnd "dup spill" <ubyte[]>
+; V35 tmp18 [V35,T36] ( 2, 8 ) ref -> edx class-hnd "dup spill" <ubyte[]>
; V36 tmp19 [V36,T66] ( 2, 4 ) int -> ecx "Inlining Arg"
; V37 tmp20 [V37,T73] ( 2, 2 ) struct (24) [ebp-0x64] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+Enumerator[System.String,System.String]>
;* V38 tmp21 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
@@ -58,7 +58,7 @@
;* V47 tmp30 [V47 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V48 tmp31 [V48 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V49 tmp32 [V49 ] ( 0, 0 ) int -> zero-ref
-; V50 tmp33 [V50,T30] ( 4, 8 ) int -> edx "Inline stloc first use temp"
+; V50 tmp33 [V50,T31] ( 4, 8 ) int -> edx "Inline stloc first use temp"
;* V51 tmp34 [V51 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V52 tmp35 [V52 ] ( 3, 6 ) byref -> [ebp-0x68] do-not-enreg[P] must-init pinned "Inline stloc first use temp"
; V53 tmp36 [V53,T57] ( 3, 6 ) int -> [ebp-0x6C] spill-single-def "Inline stloc first use temp"
@@ -78,7 +78,7 @@
;* V67 tmp50 [V67 ] ( 0, 0 ) int -> zero-ref
; V68 tmp51 [V68,T00] ( 11,156 ) int -> registers "Inlining Arg"
; V69 tmp52 [V69,T02] ( 11,128 ) int -> [ebp-0x70] "Inlining Arg"
-; V70 tmp53 [V70,T45] ( 2, 8 ) int -> edx "dup spill"
+; V70 tmp53 [V70,T46] ( 2, 8 ) int -> edx "dup spill"
;* V71 tmp54 [V71 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
; V72 tmp55 [V72,T06] ( 3, 48 ) int -> ebx "Inline stloc first use temp"
;* V73 tmp56 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -112,8 +112,8 @@
;* V101 tmp84 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V102 tmp85 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V103 tmp86 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V104 tmp87 [V104,T46] ( 2, 8 ) int -> esi "Inlining Arg"
-; V105 tmp88 [V105,T36] ( 2, 8 ) byref -> edi "Inlining Arg"
+; V104 tmp87 [V104,T47] ( 2, 8 ) int -> esi "Inlining Arg"
+; V105 tmp88 [V105,T37] ( 2, 8 ) byref -> edi "Inlining Arg"
;* V106 tmp89 [V106 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V107 tmp90 [V107 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V108 tmp91 [V108,T10] ( 4, 32 ) int -> esi "Inlining Arg"
@@ -124,8 +124,8 @@
;* V113 tmp96 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V114 tmp97 [V114 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V115 tmp98 [V115 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V116 tmp99 [V116,T47] ( 2, 8 ) int -> edx "Inlining Arg"
-; V117 tmp100 [V117,T37] ( 2, 8 ) byref -> ecx "Inlining Arg"
+; V116 tmp99 [V116,T48] ( 2, 8 ) int -> edx "Inlining Arg"
+; V117 tmp100 [V117,T38] ( 2, 8 ) byref -> ecx "Inlining Arg"
;* V118 tmp101 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V119 tmp102 [V119 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V120 tmp103 [V120,T11] ( 4, 32 ) int -> ecx "Inlining Arg"
@@ -149,20 +149,20 @@
; V138 tmp121 [V138,T08] ( 13, 45 ) int -> [ebp-0x74] "field V03._length (fldOffset=0x4)" P-INDEP
;* V139 tmp122 [V139 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
;* V140 tmp123 [V140 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x4)" P-INDEP
-; V141 tmp124 [V141,T38] ( 2, 8 ) ref -> esi "field V08.key (fldOffset=0x0)" P-INDEP
-; V142 tmp125 [V142,T39] ( 2, 8 ) ref -> edi "field V08.value (fldOffset=0x4)" P-INDEP
+; V141 tmp124 [V141,T39] ( 2, 8 ) ref -> esi "field V08.key (fldOffset=0x0)" P-INDEP
+; V142 tmp125 [V142,T40] ( 2, 8 ) ref -> edi "field V08.value (fldOffset=0x4)" P-INDEP
;* V143 tmp126 [V143 ] ( 0, 0 ) ubyte -> zero-ref "field V16._format (fldOffset=0x0)" P-INDEP
;* V144 tmp127 [V144 ] ( 0, 0 ) ubyte -> zero-ref "field V16._precision (fldOffset=0x1)" P-INDEP
; V145 tmp128 [V145,T71] ( 2, 2 ) byref -> ecx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V146 tmp129 [V146,T76] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x4)" P-INDEP
; V147 tmp130 [V147,T59] ( 2, 6 ) byref -> [ebp-0xA4] spill-single-def "field V21._reference (fldOffset=0x0)" P-INDEP
; V148 tmp131 [V148,T60] ( 2, 6 ) int -> [ebp-0x78] spill-single-def "field V21._length (fldOffset=0x4)" P-INDEP
-; V149 tmp132 [V149,T31] ( 3, 8 ) byref -> [ebp-0xA8] "field V25._reference (fldOffset=0x0)" P-INDEP
-; V150 tmp133 [V150,T33] ( 3, 8 ) int -> [ebp-0x7C] "field V25._length (fldOffset=0x4)" P-INDEP
+; V149 tmp132 [V149,T32] ( 3, 8 ) byref -> [ebp-0xA8] "field V25._reference (fldOffset=0x0)" P-INDEP
+; V150 tmp133 [V150,T34] ( 3, 8 ) int -> [ebp-0x7C] "field V25._length (fldOffset=0x4)" P-INDEP
;* V151 tmp134 [V151 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
;* V152 tmp135 [V152 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x4)" P-INDEP
-; V153 tmp136 [V153,T32] ( 3, 8 ) byref -> [ebp-0xAC] "field V30._reference (fldOffset=0x0)" P-INDEP
-; V154 tmp137 [V154,T34] ( 3, 8 ) int -> [ebp-0x80] "field V30._length (fldOffset=0x4)" P-INDEP
+; V153 tmp136 [V153,T33] ( 3, 8 ) byref -> [ebp-0xAC] "field V30._reference (fldOffset=0x0)" P-INDEP
+; V154 tmp137 [V154,T35] ( 3, 8 ) int -> [ebp-0x80] "field V30._length (fldOffset=0x4)" P-INDEP
;* V155 tmp138 [V155 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
;* V156 tmp139 [V156 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x4)" P-INDEP
;* V157 tmp140 [V157 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
@@ -197,27 +197,27 @@
; V186 tmp169 [V186,T68] ( 2, 4 ) int -> esi "field V102._length (fldOffset=0x4)" P-INDEP
;* V187 tmp170 [V187 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP
;* V188 tmp171 [V188 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x4)" P-INDEP
-; V189 tmp172 [V189,T40] ( 2, 8 ) byref -> edi "field V109._reference (fldOffset=0x0)" P-INDEP
-; V190 tmp173 [V190,T48] ( 2, 8 ) int -> ebx "field V109._length (fldOffset=0x4)" P-INDEP
+; V189 tmp172 [V189,T41] ( 2, 8 ) byref -> edi "field V109._reference (fldOffset=0x0)" P-INDEP
+; V190 tmp173 [V190,T49] ( 2, 8 ) int -> ebx "field V109._length (fldOffset=0x4)" P-INDEP
; V191 tmp174 [V191,T65] ( 2, 4 ) byref -> ecx "field V114._reference (fldOffset=0x0)" P-INDEP
; V192 tmp175 [V192,T69] ( 2, 4 ) int -> edx "field V114._length (fldOffset=0x4)" P-INDEP
;* V193 tmp176 [V193 ] ( 0, 0 ) byref -> zero-ref "field V115._reference (fldOffset=0x0)" P-INDEP
;* V194 tmp177 [V194 ] ( 0, 0 ) int -> zero-ref "field V115._length (fldOffset=0x4)" P-INDEP
-; V195 tmp178 [V195,T41] ( 2, 8 ) byref -> edx "field V121._reference (fldOffset=0x0)" P-INDEP
-; V196 tmp179 [V196,T49] ( 2, 8 ) int -> edi "field V121._length (fldOffset=0x4)" P-INDEP
+; V195 tmp178 [V195,T42] ( 2, 8 ) byref -> edx "field V121._reference (fldOffset=0x0)" P-INDEP
+; V196 tmp179 [V196,T50] ( 2, 8 ) int -> edi "field V121._length (fldOffset=0x4)" P-INDEP
;* V197 tmp180 [V197 ] ( 0, 0 ) byref -> zero-ref "field V127._reference (fldOffset=0x0)" P-INDEP
;* V198 tmp181 [V198 ] ( 0, 0 ) int -> zero-ref "field V127._length (fldOffset=0x4)" P-INDEP
;* V199 tmp182 [V199 ] ( 0, 0 ) byref -> zero-ref "field V131._reference (fldOffset=0x0)" P-INDEP
;* V200 tmp183 [V200 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x4)" P-INDEP
-; V201 tmp184 [V201,T42] ( 2, 8 ) byref -> ecx "field V132._reference (fldOffset=0x0)" P-INDEP
-; V202 tmp185 [V202,T50] ( 2, 8 ) int -> edi "field V132._length (fldOffset=0x4)" P-INDEP
+; V201 tmp184 [V201,T43] ( 2, 8 ) byref -> ecx "field V132._reference (fldOffset=0x0)" P-INDEP
+; V202 tmp185 [V202,T51] ( 2, 8 ) int -> edi "field V132._length (fldOffset=0x4)" P-INDEP
;* V203 tmp186 [V203 ] ( 0, 0 ) ref -> zero-ref single-def "V37.[000..004)"
; V204 tmp187 [V204,T75] ( 2, 1 ) int -> edx "V37.[004..008)"
;* V205 tmp188 [V205 ] ( 0, 0 ) int -> zero-ref "V37.[008..012)"
;* V206 tmp189 [V206 ] ( 0, 0 ) int -> zero-ref "V37.[012..016)"
-; V207 tmp190 [V207,T43] ( 2, 8 ) ref -> ecx "argument with side effect"
-; V208 tmp191 [V208,T44] ( 2, 8 ) ref -> ecx "argument with side effect"
-; V209 tmp192 [V209,T51] ( 2, 8 ) int -> edi "Cast away GC"
+; V207 tmp190 [V207,T44] ( 2, 8 ) ref -> ecx "argument with side effect"
+; V208 tmp191 [V208,T45] ( 2, 8 ) ref -> ecx "argument with side effect"
+; V209 tmp192 [V209,T52] ( 2, 8 ) int -> edi "Cast away GC"
; V210 tmp193 [V210,T72] ( 2, 2 ) ref -> ecx single-def "argument with side effect"
; V211 GsCookie [V211 ] ( 1, 1 ) int -> [ebp-0xB8] do-not-enreg[X] addr-exposed "GSSecurityCookie"
; V212 EHSlots [V212 ] ( 1, 1 ) struct (16) [ebp-0x24] do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
@@ -363,7 +363,7 @@ G_M33777_IG08: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
cmp eax, ebx
jge SHORT G_M33777_IG13
;; size=7 bbWeight=4 PerfScore 9.00
-G_M33777_IG09: ; bbWeight=2, gcVars=000000000020000008100000 {V01 V02 V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M33777_IG09: ; bbWeight=2, gcVars=000000000000000048100000 {V01 V02 V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; GC ptr vars -{V137}
cmp gword ptr [ebp-0x8C], 0
je SHORT G_M33777_IG10
@@ -415,7 +415,7 @@ G_M33777_IG12: ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=0000
mov eax, edx
; gcrRegs -[eax]
;; size=14 bbWeight=2 PerfScore 4.50
-G_M33777_IG13: ; bbWeight=4, gcVars=000000000020000008100200 {V01 V02 V07 V137}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M33777_IG13: ; bbWeight=4, gcVars=000000000000000048100200 {V01 V02 V07 V137}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; byrRegs -[ecx]
mov ecx, bword ptr [ebp-0xA0]
; byrRegs +[ecx]
@@ -426,7 +426,7 @@ G_M33777_IG13: ; bbWeight=4, gcVars=000000000020000008100200 {V01 V02 V07
test ebx, ebx
jge SHORT G_M33777_IG15
;; size=22 bbWeight=4 PerfScore 21.00
-G_M33777_IG14: ; bbWeight=2, gcVars=000000000820000008100200 {V01 V02 V07 V137 V147}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M33777_IG14: ; bbWeight=2, gcVars=000000000800000048100200 {V01 V02 V07 V137 V147}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
; byrRegs -[ecx]
mov edx, 0xD1FFAB1E ; static handle
; byrRegs +[edx]
@@ -485,7 +485,7 @@ G_M33777_IG15: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
cmp ebx, 100
jb SHORT G_M33777_IG22
;; size=102 bbWeight=2 PerfScore 48.00
-G_M33777_IG16: ; bbWeight=16, gcVars=000000000020000008100000 {V01 V02 V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000002 {ecx}, gcvars, byref
+G_M33777_IG16: ; bbWeight=16, gcVars=000000000000000048100000 {V01 V02 V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000002 {ecx}, gcvars, byref
; byrRegs -[edi]
; GC ptr vars -{V137 V171 V175}
add edx, -2
@@ -570,7 +570,7 @@ G_M33777_IG27: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000002
mov bword ptr [ebp-0xA0], ecx
; GC ptr vars +{V137}
;; size=11 bbWeight=2 PerfScore 4.50
-G_M33777_IG28: ; bbWeight=4, gcVars=000000000020000008100200 {V01 V02 V07 V137}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M33777_IG28: ; bbWeight=4, gcVars=000000000000000048100200 {V01 V02 V07 V137}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; byrRegs -[ecx edx]
mov edx, dword ptr [ebp-0x44]
mov ebx, dword ptr [ebp-0x44]
@@ -591,7 +591,7 @@ G_M33777_IG28: ; bbWeight=4, gcVars=000000000020000008100200 {V01 V02 V07
test esi, esi
jne SHORT G_M33777_IG30
;; size=53 bbWeight=4 PerfScore 55.00
-G_M33777_IG29: ; bbWeight=2, gcVars=000000000020000008300000 {V01 V02 V07 V24}, gcrefRegs=00000004 {edx}, byrefRegs=00000002 {ecx}, gcvars, byref, isz
+G_M33777_IG29: ; bbWeight=2, gcVars=000000000000000048300000 {V01 V02 V07 V24}, gcrefRegs=00000004 {edx}, byrefRegs=00000002 {ecx}, gcvars, byref, isz
; gcrRegs -[esi]
; GC ptr vars -{V137}
xor esi, esi
@@ -615,7 +615,7 @@ G_M33777_IG30: ; bbWeight=2, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
mov edi, dword ptr [ebp-0x7C]
; byrRegs -[edi]
;; size=18 bbWeight=2 PerfScore 11.00
-G_M33777_IG31: ; bbWeight=4, gcVars=000000000020000088300000 {V01 V02 V07 V24 V149}, gcrefRegs=00000004 {edx}, byrefRegs=00000002 {ecx}, gcvars, byref
+G_M33777_IG31: ; bbWeight=4, gcVars=000000000000000148300000 {V01 V02 V07 V24 V149}, gcrefRegs=00000004 {edx}, byrefRegs=00000002 {ecx}, gcvars, byref
mov esi, dword ptr [ebp-0x44]
cmp esi, eax
mov dword ptr [ebp-0x7C], edi
@@ -629,7 +629,7 @@ G_M33777_IG31: ; bbWeight=4, gcVars=000000000020000088300000 {V01 V02 V07
sub ebx, esi
js G_M33777_IG47
;; size=36 bbWeight=4 PerfScore 29.00
-G_M33777_IG32: ; bbWeight=4, gcVars=000000000020000088300200 {V01 V02 V07 V24 V137 V149}, gcrefRegs=00000004 {edx}, byrefRegs=00000080 {edi}, gcvars, byref, isz
+G_M33777_IG32: ; bbWeight=4, gcVars=000000000000000148300200 {V01 V02 V07 V24 V137 V149}, gcrefRegs=00000004 {edx}, byrefRegs=00000080 {edi}, gcvars, byref, isz
; byrRegs -[ecx]
push dword ptr [ebp-0x7C]
push bword ptr [ebp-0xA8]
@@ -668,7 +668,7 @@ G_M33777_IG32: ; bbWeight=4, gcVars=000000000020000088300200 {V01 V02 V07
test edx, edx
jne SHORT G_M33777_IG34
;; size=85 bbWeight=4 PerfScore 112.00
-G_M33777_IG33: ; bbWeight=2, gcVars=000000000020000008400000 {V01 V02 V29}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+G_M33777_IG33: ; bbWeight=2, gcVars=000000000000000048400000 {V01 V02 V29}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref, isz
; gcrRegs -[edx]
; GC ptr vars -{V07 V137}
xor ecx, ecx
@@ -678,7 +678,7 @@ G_M33777_IG33: ; bbWeight=2, gcVars=000000000020000008400000 {V01 V02 V29
; GC ptr vars +{V153}
jmp SHORT G_M33777_IG35
;; size=12 bbWeight=2 PerfScore 7.00
-G_M33777_IG34: ; bbWeight=2, gcVars=000000000020000008500000 {V01 V02 V07 V29}, gcrefRegs=00000005 {eax edx}, byrefRegs=00000040 {esi}, gcvars, byref
+G_M33777_IG34: ; bbWeight=2, gcVars=000000000000000048500000 {V01 V02 V07 V29}, gcrefRegs=00000005 {eax edx}, byrefRegs=00000040 {esi}, gcvars, byref
; gcrRegs +[edx]
; byrRegs -[ecx]
; GC ptr vars -{V153} +{V07 V20}
@@ -690,7 +690,7 @@ G_M33777_IG34: ; bbWeight=2, gcVars=000000000020000008500000 {V01 V02 V07
; GC ptr vars +{V153}
mov dword ptr [ebp-0x80], edx
;; size=15 bbWeight=2 PerfScore 9.00
-G_M33777_IG35: ; bbWeight=4, gcVars=000000000020000108400000 {V01 V02 V29 V153}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref
+G_M33777_IG35: ; bbWeight=4, gcVars=000000000000000248400000 {V01 V02 V29 V153}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref
; byrRegs -[ecx]
; GC ptr vars -{V07 V20}
mov ecx, dword ptr [ebp-0x44]
@@ -705,7 +705,7 @@ G_M33777_IG35: ; bbWeight=4, gcVars=000000000020000108400000 {V01 V02 V29
sub edi, ecx
js G_M33777_IG48
;; size=33 bbWeight=4 PerfScore 25.00
-G_M33777_IG36: ; bbWeight=4, gcVars=000000000020000109400000 {V01 V02 V29 V123 V153}, gcrefRegs=00000001 {eax}, byrefRegs=00000044 {edx esi}, gcvars, byref
+G_M33777_IG36: ; bbWeight=4, gcVars=000000000000000249400000 {V01 V02 V29 V123 V153}, gcrefRegs=00000001 {eax}, byrefRegs=00000044 {edx esi}, gcvars, byref
push dword ptr [ebp-0x80]
push bword ptr [ebp-0xAC]
; byr arg push 1
@@ -744,7 +744,9 @@ G_M33777_IG37: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
mov ecx, gword ptr [ebp-0x88]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov gword ptr [ebp-0x88], ecx
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x3C]
call [eax+0x1C]<unknown method>
; gcrRegs -[ecx]
; gcr arg pop 1
@@ -756,7 +758,7 @@ G_M33777_IG37: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
mov bword ptr [ebp-0xA0], esi
; GC ptr vars +{V137}
jne G_M33777_IG06
- ;; size=49 bbWeight=4 PerfScore 61.00
+ ;; size=55 bbWeight=4 PerfScore 73.00
G_M33777_IG38: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
...
benchmarks.run_tiered.windows.x86.checked.mch
-3 (-1.40%) : 13997.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
@@ -100,8 +100,8 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
; GC ptr vars +{V15}
mov ecx, edi
; gcrRegs +[ecx]
- cmp dword ptr [edi], edi
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edi]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]<unknown method>
; gcrRegs -[eax ecx]
mov ecx, gword ptr [ebp-0x10]
@@ -119,7 +119,7 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
call [<unknown method>]
; gcrRegs -[ecx ebx]
; gcr arg pop 2
- ;; size=48 bbWeight=2 PerfScore 47.00
+ ;; size=45 bbWeight=2 PerfScore 45.00
G_M60946_IG07: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref, isz
mov eax, dword ptr [esi+0x04]
mov edx, gword ptr [esi]
@@ -172,6 +172,6 @@ G_M60946_IG13: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 215, prolog size 11, PerfScore 360.00, instruction count 73, allocated bytes for code 215 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
+; Total bytes of code 212, prolog size 11, PerfScore 358.00, instruction count 73, allocated bytes for code 212 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
; ============================================================
-3 (-0.63%) : 47780.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGetSystem.__Canon:System.Func`2[System.Canon,System.Canon]:this (Tier1)
@@ -8,18 +8,18 @@
; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 4, 3.50) ref -> edi this class-hnd single-def <Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory>
+; V00 this [V00,T07] ( 4, 3.50) ref -> edi this class-hnd single-def <Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory>
; V01 arg1 [V01,T01] ( 9, 7 ) ref -> esi class-hnd single-def <System.Reflection.PropertyInfo>
; V02 TypeCtx [V02,T13] ( 4, 3.20) int -> ebx single-def
;* V03 loc0 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
; V04 loc1 [V04,T18] ( 3, 2.50) ref -> [ebp-0x1C] class-hnd spill-single-def <System.Linq.Expressions.ParameterExpression>
; V05 loc2 [V05,T09] ( 5, 4 ) ref -> esi class-hnd <System.Linq.Expressions.Expression>
-; V06 loc3 [V06,T07] ( 3, 5 ) ref -> [ebp-0x20] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
+; V06 loc3 [V06,T03] ( 4, 6 ) ref -> [ebp-0x20] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
; V07 tmp1 [V07,T02] ( 4, 8 ) ref -> eax class-hnd single-def "dup spill" <System.Reflection.MethodInfo>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V10 tmp4 [V10,T03] ( 3, 6 ) ref -> eax class-hnd exact single-def "dup spill" <System.Linq.Expressions.ParameterExpression[]>
-; V11 tmp5 [V11,T04] ( 3, 6 ) ref -> ebx class-hnd exact single-def "impAppendStmt" <<unknown class>>
+; V10 tmp4 [V10,T04] ( 3, 6 ) ref -> eax class-hnd exact single-def "dup spill" <System.Linq.Expressions.ParameterExpression[]>
+; V11 tmp5 [V11,T05] ( 3, 6 ) ref -> ebx class-hnd exact single-def "impAppendStmt" <<unknown class>>
; V12 tmp6 [V12,T17] ( 3, 2.75) int -> edi "spilling helperCall"
; V13 tmp7 [V13,T08] ( 3, 4.25) ref -> eax single-def "CASTCLASS eval op1"
;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
@@ -38,7 +38,7 @@
; V27 tmp21 [V27,T12] ( 5, 3.38) ref -> registers "CastInstOf QMark result"
; V28 cse0 [V28,T16] ( 3, 3 ) int -> edi "CSE - moderate"
; V29 rat0 [V29,T10] ( 3, 4 ) int -> edi "runtime lookup"
-; V30 rat1 [V30,T05] ( 3, 5.60) int -> edi "fgMakeTemp is creating a new local variable"
+; V30 rat1 [V30,T06] ( 3, 5.60) int -> edi "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 24
@@ -81,19 +81,20 @@ G_M54394_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
mov ecx, gword ptr [ebp-0x24]
; gcrRegs +[ecx]
mov gword ptr [ebp-0x24], ecx
- cmp dword ptr [ecx], ecx
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x38]
call [eax+0x0C]<unknown method>
; gcrRegs -[ecx]
mov dword ptr [ebp-0x14], eax
test eax, eax
je SHORT G_M54394_IG04
- ;; size=62 bbWeight=1 PerfScore 24.25
-G_M54394_IG03: ; bbWeight=0.50, gcVars=00000080 {V06}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+ ;; size=60 bbWeight=1 PerfScore 23.25
+G_M54394_IG03: ; bbWeight=0.50, gcVars=00000008 {V06}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
; GC ptr vars -{V18}
mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x40]
; GC ptr vars -{V06}
call [edx+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
@@ -101,7 +102,7 @@ G_M54394_IG03: ; bbWeight=0.50, gcVars=00000080 {V06}, gcrefRegs=000000C0
; gcrRegs +[ecx]
mov gword ptr [ebp-0x24], ecx
; GC ptr vars +{V18}
- ;; size=17 bbWeight=0.50 PerfScore 3.62
+ ;; size=16 bbWeight=0.50 PerfScore 4.62
G_M54394_IG04: ; bbWeight=1, gcVars=00000001 {V18}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax ecx]
push dword ptr [ebp-0x14]
@@ -318,6 +319,6 @@ G_M54394_IG16: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=45 bbWeight=0 PerfScore 0.00
-; Total bytes of code 476, prolog size 20, PerfScore 123.04, instruction count 155, allocated bytes for code 476 (MethodHash=365c2b85) for method Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGet[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
+; Total bytes of code 473, prolog size 20, PerfScore 123.04, instruction count 156, allocated bytes for code 473 (MethodHash=365c2b85) for method Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGet[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
; ============================================================
-9 (-0.52%) : 14252.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
@@ -8,12 +8,12 @@
; 0 inlinees with PGO data; 31 single block inlinees; 35 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T07] ( 12, 47 ) ref -> [ebp-0x5C] this class-hnd EH-live single-def <System.Net.Http.HttpConnectionPool>
+; V00 this [V00,T05] ( 13, 55 ) ref -> [ebp-0x5C] this class-hnd EH-live single-def <System.Net.Http.HttpConnectionPool>
; V01 arg1 [V01,T08] ( 28, 46 ) ref -> [ebp-0x60] class-hnd EH-live single-def <System.Net.Http.HttpConnection>
; V02 arg2 [V02,T49] ( 4, 10 ) ubyte -> [ebp+0x0C] do-not-enreg[Z] EH-live
; V03 arg3 [V03,T33] ( 3, 12 ) ref -> [ebp+0x08] do-not-enreg[Z] class-hnd EH-live <System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
; V04 loc0 [V04 ] ( 18, 18 ) struct (24) [ebp-0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V05 loc1 [V05,T06] ( 8, 52 ) ref -> [ebp-0x64] do-not-enreg[Z] must-init ld-addr-op class-hnd EH-live <System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
+; V05 loc1 [V05,T07] ( 8, 52 ) ref -> [ebp-0x64] do-not-enreg[Z] must-init ld-addr-op class-hnd EH-live <System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
; V06 loc2 [V06,T32] ( 3, 13 ) ubyte -> [ebp-0x3C] do-not-enreg[Z] EH-live
; V07 loc3 [V07,T23] ( 4, 20 ) ref -> [ebp-0x68] do-not-enreg[Z] class-hnd EH-live <<unknown class>>
; V08 loc4 [V08 ] ( 6, 28 ) ubyte -> [ebp-0x40] do-not-enreg[X] addr-exposed ld-addr-op
@@ -22,7 +22,7 @@
; V11 tmp2 [V11,T29] ( 3, 16 ) ref -> esi
;* V12 tmp3 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
;* V13 tmp4 [V13 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V14 tmp5 [V14,T58] ( 4, 8 ) int -> ecx "Inlining Arg"
+; V14 tmp5 [V14,T60] ( 4, 8 ) int -> ecx "Inlining Arg"
;* V15 tmp6 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V16 tmp7 [V16,T65] ( 3, 6 ) int -> edi "Inlining Arg"
; V17 tmp8 [V17,T67] ( 2, 4 ) byref -> esi single-def "Inlining Arg"
@@ -33,7 +33,7 @@
;* V22 tmp13 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V23 tmp14 [V23,T68] ( 2, 4 ) byref -> edx single-def "Inlining Arg"
;* V24 tmp15 [V24 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V25 tmp16 [V25,T59] ( 4, 8 ) int -> ecx "Inlining Arg"
+; V25 tmp16 [V25,T61] ( 4, 8 ) int -> ecx "Inlining Arg"
;* V26 tmp17 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V27 tmp18 [V27,T66] ( 3, 6 ) int -> edi "Inlining Arg"
; V28 tmp19 [V28,T69] ( 2, 4 ) byref -> esi single-def "Inlining Arg"
@@ -43,12 +43,12 @@
;* V32 tmp23 [V32 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V33 tmp24 [V33 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V34 tmp25 [V34,T70] ( 2, 4 ) byref -> edx single-def "Inlining Arg"
-; V35 tmp26 [V35,T63] ( 3, 6 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
+; V35 tmp26 [V35,T50] ( 4, 8 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
; V36 tmp27 [V36,T79] ( 3, 3 ) ref -> ebx single-def
;* V37 tmp28 [V37 ] ( 0, 0 ) ref -> zero-ref single-def
;* V38 tmp29 [V38 ] ( 0, 0 ) ref -> zero-ref single-def
; V39 tmp30 [V39,T84] ( 3, 3 ) int -> edi
-; V40 tmp31 [V40,T50] ( 4, 8 ) ref -> edx class-hnd single-def "dup spill" <<unknown class>>
+; V40 tmp31 [V40,T51] ( 4, 8 ) ref -> edx class-hnd single-def "dup spill" <<unknown class>>
; V41 tmp32 [V41,T72] ( 2, 4 ) int -> [ebp-0x44] spill-single-def "impAppendStmt"
;* V42 tmp33 [V42 ] ( 0, 0 ) ref -> zero-ref single-def
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref
@@ -60,12 +60,12 @@
; V49 tmp40 [V49,T85] ( 3, 3 ) int -> edx
; V50 tmp41 [V50,T71] ( 2, 4 ) ref -> esi class-hnd exact single-def "Inlining Arg" <System.String>
;* V51 tmp42 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V52 tmp43 [V52,T64] ( 3, 6 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
+; V52 tmp43 [V52,T52] ( 4, 8 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
; V53 tmp44 [V53,T80] ( 3, 3 ) ref -> ebx single-def
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref single-def
;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref single-def
; V56 tmp47 [V56,T86] ( 3, 3 ) int -> esi
-; V57 tmp48 [V57,T51] ( 4, 8 ) ref -> eax class-hnd single-def "dup spill" <<unknown class>>
+; V57 tmp48 [V57,T53] ( 4, 8 ) ref -> eax class-hnd single-def "dup spill" <<unknown class>>
; V58 tmp49 [V58,T73] ( 2, 4 ) int -> edi "impAppendStmt"
;* V59 tmp50 [V59 ] ( 0, 0 ) ref -> zero-ref single-def
;* V60 tmp51 [V60 ] ( 0, 0 ) int -> zero-ref
@@ -80,14 +80,14 @@
;* V69 tmp60 [V69 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
;* V70 tmp61 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
;* V71 tmp62 [V71 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
-;* V72 tmp63 [V72,T61] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V72 tmp63 [V72,T63] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V73 tmp64 [V73 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
;* V74 tmp65 [V74,T78] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V75 tmp66 [V75,T77] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V76 tmp67 [V76 ] ( 0, 0 ) struct ( 8) zero-ref "Inline stloc first use temp" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
; V77 tmp68 [V77,T15] ( 3, 24 ) byref -> eax "Inlining Arg"
; V78 tmp69 [V78,T25] ( 4, 16 ) int -> esi "Inline stloc first use temp"
-;* V79 tmp70 [V79,T62] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V79 tmp70 [V79,T64] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V80 tmp71 [V80,T04] ( 11, 88 ) byref -> esi "Inlining Arg"
;* V81 tmp72 [V81 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
;* V82 tmp73 [V82 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.Net.Http.HttpConnectionPool+RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
@@ -98,7 +98,7 @@
; V87 tmp78 [V87,T26] ( 4, 16 ) int -> ecx "Inline stloc first use temp"
; V88 tmp79 [V88,T17] ( 3, 24 ) ref -> edx class-hnd exact "dup spill" <System.Net.Http.Metrics.ConnectionMetrics>
;* V89 tmp80 [V89 ] ( 0, 0 ) ref -> zero-ref
-; V90 tmp81 [V90,T05] ( 7, 56 ) ref -> eax class-hnd "Inlining Arg" <<unknown class>>
+; V90 tmp81 [V90,T06] ( 7, 56 ) ref -> eax class-hnd "Inlining Arg" <<unknown class>>
; V91 tmp82 [V91,T35] ( 3, 12 ) ref -> esi class-hnd "Inline stloc first use temp" <<unknown class>>
; V92 tmp83 [V92,T27] ( 4, 16 ) int -> edi "Inline stloc first use temp"
; V93 tmp84 [V93,T11] ( 2, 32 ) ref -> esi class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
@@ -117,12 +117,12 @@
; V106 tmp97 [V106,T18] ( 3, 24 ) byref -> ecx "Inlining Arg"
; V107 tmp98 [V107,T30] ( 2, 16 ) ref -> edx class-hnd exact "Inlining Arg" <System.Object>
;* V108 tmp99 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V109 tmp100 [V109,T52] ( 4, 8 ) ref -> ecx class-hnd exact "dup spill" <System.Net.Http.HttpConnectionPool>
+; V109 tmp100 [V109,T54] ( 4, 8 ) ref -> ecx class-hnd exact "dup spill" <System.Net.Http.HttpConnectionPool>
; V110 tmp101 [V110,T81] ( 3, 3 ) ref -> ebx
;* V111 tmp102 [V111 ] ( 0, 0 ) ref -> zero-ref
;* V112 tmp103 [V112 ] ( 0, 0 ) ref -> zero-ref
; V113 tmp104 [V113,T88] ( 3, 3 ) int -> esi
-; V114 tmp105 [V114,T53] ( 4, 8 ) ref -> ecx class-hnd "dup spill" <<unknown class>>
+; V114 tmp105 [V114,T55] ( 4, 8 ) ref -> ecx class-hnd "dup spill" <<unknown class>>
; V115 tmp106 [V115,T74] ( 2, 4 ) int -> edi "impAppendStmt"
;* V116 tmp107 [V116 ] ( 0, 0 ) ref -> zero-ref
;* V117 tmp108 [V117 ] ( 0, 0 ) int -> zero-ref
@@ -138,12 +138,12 @@
; V127 tmp118 [V127,T09] ( 3, 48 ) ref -> ebx class-hnd exact "non-inline candidate call" <System.Net.NetEventSource>
; V128 tmp119 [V128,T13] ( 2, 32 ) int -> eax "Inlining Arg"
;* V129 tmp120 [V129 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V130 tmp121 [V130,T54] ( 4, 8 ) ref -> eax class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
+; V130 tmp121 [V130,T56] ( 4, 8 ) ref -> eax class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
; V131 tmp122 [V131,T82] ( 3, 3 ) ref -> ebx single-def
;* V132 tmp123 [V132 ] ( 0, 0 ) ref -> zero-ref single-def
;* V133 tmp124 [V133 ] ( 0, 0 ) ref -> zero-ref single-def
; V134 tmp125 [V134,T90] ( 3, 3 ) int -> esi
-; V135 tmp126 [V135,T55] ( 4, 8 ) ref -> ecx class-hnd single-def "dup spill" <<unknown class>>
+; V135 tmp126 [V135,T57] ( 4, 8 ) ref -> ecx class-hnd single-def "dup spill" <<unknown class>>
; V136 tmp127 [V136,T75] ( 2, 4 ) int -> edi "impAppendStmt"
;* V137 tmp128 [V137 ] ( 0, 0 ) ref -> zero-ref single-def
;* V138 tmp129 [V138 ] ( 0, 0 ) int -> zero-ref
@@ -154,12 +154,12 @@
;* V143 tmp134 [V143 ] ( 0, 0 ) int -> zero-ref
; V144 tmp135 [V144,T91] ( 3, 3 ) int -> eax
;* V145 tmp136 [V145 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V146 tmp137 [V146,T56] ( 4, 8 ) ref -> eax class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
+; V146 tmp137 [V146,T58] ( 4, 8 ) ref -> eax class-hnd exact single-def "dup spill" <System.Net.Http.HttpConnectionPool>
; V147 tmp138 [V147,T83] ( 3, 3 ) ref -> ebx single-def
;* V148 tmp139 [V148 ] ( 0, 0 ) ref -> zero-ref single-def
;* V149 tmp140 [V149 ] ( 0, 0 ) ref -> zero-ref single-def
; V150 tmp141 [V150,T92] ( 3, 3 ) int -> esi
-; V151 tmp142 [V151,T57] ( 4, 8 ) ref -> eax class-hnd single-def "dup spill" <<unknown class>>
+; V151 tmp142 [V151,T59] ( 4, 8 ) ref -> eax class-hnd single-def "dup spill" <<unknown class>>
; V152 tmp143 [V152,T76] ( 2, 4 ) int -> edi "impAppendStmt"
;* V153 tmp144 [V153 ] ( 0, 0 ) ref -> zero-ref single-def
;* V154 tmp145 [V154 ] ( 0, 0 ) int -> zero-ref
@@ -194,7 +194,7 @@
;* V183 tmp174 [V183 ] ( 0, 0 ) ref -> zero-ref "field V82.Request (fldOffset=0x0)" P-INDEP
;* V184 tmp175 [V184 ] ( 0, 0 ) ref -> zero-ref "field V82.Waiter (fldOffset=0x4)" P-INDEP
;* V185 tmp176 [V185 ] ( 0, 0 ) ref -> zero-ref "field V85.Request (fldOffset=0x0)" P-INDEP
-; V186 tmp177 [V186,T60] ( 2, 8 ) ref -> edx "field V85.Waiter (fldOffset=0x4)" P-INDEP
+; V186 tmp177 [V186,T62] ( 2, 8 ) ref -> edx "field V85.Waiter (fldOffset=0x4)" P-INDEP
; V187 tmp178 [V187,T19] ( 3, 24 ) byref -> edx "BlockOp address local"
; V188 tmp179 [V188,T20] ( 3, 24 ) ref -> eax "arr expr"
; V189 tmp180 [V189,T22] ( 3, 24 ) int -> esi "index expr"
@@ -230,7 +230,7 @@ G_M4424_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
mov gword ptr [ebp-0x60], edx
; GC ptr vars +{V01}
;; size=37 bbWeight=1 PerfScore 13.08
-G_M4424_IG02: ; bbWeight=1, gcVars=000000000000000000000180 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M4424_IG02: ; bbWeight=1, gcVars=000000000000000000000120 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
mov edx, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[edx]
cmp byte ptr [edx+0x59], 0
@@ -345,13 +345,14 @@ G_M4424_IG08: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
;; size=47 bbWeight=1 PerfScore 17.75
G_M4424_IG09: ; bbWeight=1, gcrefRegs=0000004A {ecx ebx esi}, byrefRegs=00000000 {}, byref
; gcrRegs -[eax]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]System.Object:GetHashCode():int:this
; gcrRegs -[ecx]
mov edi, eax
mov eax, gword ptr [ebp-0x60]
; gcrRegs +[eax]
- ;; size=14 bbWeight=1 PerfScore 6.25
+ ;; size=13 bbWeight=1 PerfScore 8.25
G_M4424_IG10: ; bbWeight=1, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000000 {}, byref, isz
mov ecx, eax
; gcrRegs +[ecx]
@@ -427,13 +428,14 @@ G_M4424_IG13: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
G_M4424_IG14: ; bbWeight=1, gcVars=000000000000000000000100 {V01}, gcrefRegs=0000000A {ecx ebx}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax]
; GC ptr vars -{V00}
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]System.Object:GetHashCode():int:this
; gcrRegs -[ecx]
mov esi, eax
mov eax, gword ptr [ebp-0x60]
; gcrRegs +[eax]
- ;; size=14 bbWeight=1 PerfScore 6.25
+ ;; size=13 bbWeight=1 PerfScore 8.25
G_M4424_IG15: ; bbWeight=1, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
mov ecx, eax
; gcrRegs +[ecx]
@@ -493,18 +495,16 @@ G_M4424_IG19: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret 8
;; size=10 bbWeight=1 PerfScore 4.50
-G_M4424_IG20: ; bbWeight=8, gcVars=000000000000000000000180 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; GC ptr vars +{V00 V01 V07}
+G_M4424_IG20: ; bbWeight=8, gcVars=000000000000000000000120 {V00 V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ; GC ptr vars +{V00 V01 V05}
mov eax, gword ptr [ebp-0x60]
; gcrRegs +[eax]
xor edx, edx
; gcrRegs +[edx]
mov gword ptr [ebp-0x64], edx
- ; GC ptr vars +{V05}
;; size=8 bbWeight=8 PerfScore 18.00
-G_M4424_IG21: ; bbWeight=8, gcVars=0000000000000000000001C0 {V00 V01 V05}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref
+G_M4424_IG21: ; bbWeight=8, gcVars=0000000000000000000001A0 {V00 V01 V05}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[edx]
- ; GC ptr vars -{V07}
mov dword ptr [ebp-0x3C], edx
mov ecx, gword ptr [ebp-0x5C]
; gcrRegs +[ecx]
@@ -516,7 +516,7 @@ G_M4424_IG21: ; bbWeight=8, gcVars=0000000000000000000001C0 {V00 V01 V05}
; gcrRegs -[edx]
mov dword ptr [ebp-0x40], edx
;; size=17 bbWeight=8 PerfScore 50.00
-G_M4424_IG22: ; bbWeight=4, gcVars=0000000000000000008001C0 {V00 V01 V05 V07}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M4424_IG22: ; bbWeight=4, gcVars=0000000000000000008001A0 {V00 V01 V05 V07}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[ecx]
cmp byte ptr [ebp-0x40], 0
jne SHORT G_M4424_IG27
@@ -759,7 +759,7 @@ G_M4424_IG39: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
mov dword ptr [ebp-0x18], 0
jmp SHORT G_M4424_IG42
;; size=9 bbWeight=4 PerfScore 12.00
-G_M4424_IG40: ; bbWeight=4, gcVars=0000000000000000008001C0 {V00 V01 V05 V07}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M4424_IG40: ; bbWeight=4, gcVars=0000000000000000008001A0 {V00 V01 V05 V07}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
; GC ptr vars +{V07 V23}
cmp byte ptr [ebp-0x40], 0
je SHORT G_M4424_IG41
@@ -899,7 +899,7 @@ G_M4424_IG51: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
cmp edx, 0xD1FFAB1E
je SHORT G_M4424_IG53
;; size=59 bbWeight=8 PerfScore 196.00
-G_M4424_IG52: ; bbWeight=4, gcVars=000000000000000000000180 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M4424_IG52: ; bbWeight=4, gcVars=000000000000000000000120 {V00 V01}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[ecx]
; GC ptr vars -{V05}
mov esi, 0xD1FFAB1E
@@ -917,7 +917,8 @@ G_M4424_IG54: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs +[ebx]
mov ecx, gword ptr [ebp-0x5C]
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]System.Object:GetHashCode():int:this
; gcrRegs -[ecx]
cmp byte ptr [ebx], bl
@@ -935,7 +936,7 @@ G_M4424_IG54: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs -[ecx ebx esi]
; gcr arg pop 2
jmp G_M4424_IG20
- ;; size=49 bbWeight=8 PerfScore 172.00
...
+12 (+0.88%) : 26641.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 58 single block inlinees; 33 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T52] ( 6, 5 ) ref -> ebx class-hnd single-def <System.Collections.Generic.Dictionary`2[System.String,System.String]>
-; V01 loc0 [V01,T53] ( 5, 7 ) ref -> [ebp-0x88] class-hnd <System.IO.MemoryStream>
+; V00 arg0 [V00,T53] ( 6, 5 ) ref -> ebx class-hnd single-def <System.Collections.Generic.Dictionary`2[System.String,System.String]>
+; V01 loc0 [V01,T30] ( 7, 11.50) ref -> [ebp-0x88] class-hnd <System.IO.MemoryStream>
; V02 loc1 [V02,T27] ( 9, 14.50) ref -> [ebp-0x8C] class-hnd <ubyte[]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Span`1[ubyte]>
;* V04 loc3 [V04 ] ( 0, 0 ) struct ( 8) zero-ref <System.Span`1[ubyte]>
@@ -43,7 +43,7 @@
; V32 tmp15 [V32,T16] ( 3, 24 ) int -> ecx "impAppendStmt"
;* V33 tmp16 [V33 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V34 tmp17 [V34 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V35 tmp18 [V35,T35] ( 2, 8 ) ref -> edx class-hnd "dup spill" <ubyte[]>
+; V35 tmp18 [V35,T36] ( 2, 8 ) ref -> edx class-hnd "dup spill" <ubyte[]>
; V36 tmp19 [V36,T66] ( 2, 4 ) int -> ecx "Inlining Arg"
; V37 tmp20 [V37,T73] ( 2, 2 ) struct (24) [ebp-0x64] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+Enumerator[System.String,System.String]>
;* V38 tmp21 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
@@ -58,7 +58,7 @@
;* V47 tmp30 [V47 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V48 tmp31 [V48 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V49 tmp32 [V49 ] ( 0, 0 ) int -> zero-ref
-; V50 tmp33 [V50,T30] ( 4, 8 ) int -> edx "Inline stloc first use temp"
+; V50 tmp33 [V50,T31] ( 4, 8 ) int -> edx "Inline stloc first use temp"
;* V51 tmp34 [V51 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V52 tmp35 [V52 ] ( 3, 6 ) byref -> [ebp-0x68] do-not-enreg[P] must-init pinned "Inline stloc first use temp"
; V53 tmp36 [V53,T57] ( 3, 6 ) int -> [ebp-0x6C] spill-single-def "Inline stloc first use temp"
@@ -78,7 +78,7 @@
;* V67 tmp50 [V67 ] ( 0, 0 ) int -> zero-ref
; V68 tmp51 [V68,T00] ( 11,156 ) int -> registers "Inlining Arg"
; V69 tmp52 [V69,T02] ( 11,128 ) int -> [ebp-0x70] "Inlining Arg"
-; V70 tmp53 [V70,T45] ( 2, 8 ) int -> edx "dup spill"
+; V70 tmp53 [V70,T46] ( 2, 8 ) int -> edx "dup spill"
;* V71 tmp54 [V71 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
; V72 tmp55 [V72,T06] ( 3, 48 ) int -> ebx "Inline stloc first use temp"
;* V73 tmp56 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -112,8 +112,8 @@
;* V101 tmp84 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V102 tmp85 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V103 tmp86 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V104 tmp87 [V104,T46] ( 2, 8 ) int -> esi "Inlining Arg"
-; V105 tmp88 [V105,T36] ( 2, 8 ) byref -> edi "Inlining Arg"
+; V104 tmp87 [V104,T47] ( 2, 8 ) int -> esi "Inlining Arg"
+; V105 tmp88 [V105,T37] ( 2, 8 ) byref -> edi "Inlining Arg"
;* V106 tmp89 [V106 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V107 tmp90 [V107 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V108 tmp91 [V108,T10] ( 4, 32 ) int -> esi "Inlining Arg"
@@ -124,8 +124,8 @@
;* V113 tmp96 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V114 tmp97 [V114 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V115 tmp98 [V115 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V116 tmp99 [V116,T47] ( 2, 8 ) int -> ecx "Inlining Arg"
-; V117 tmp100 [V117,T37] ( 2, 8 ) byref -> edx "Inlining Arg"
+; V116 tmp99 [V116,T48] ( 2, 8 ) int -> ecx "Inlining Arg"
+; V117 tmp100 [V117,T38] ( 2, 8 ) byref -> edx "Inlining Arg"
;* V118 tmp101 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V119 tmp102 [V119 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V120 tmp103 [V120,T11] ( 4, 32 ) int -> edx "Inlining Arg"
@@ -149,20 +149,20 @@
; V138 tmp121 [V138,T08] ( 13, 45 ) int -> [ebp-0x74] "field V03._length (fldOffset=0x4)" P-INDEP
;* V139 tmp122 [V139 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
;* V140 tmp123 [V140 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x4)" P-INDEP
-; V141 tmp124 [V141,T38] ( 2, 8 ) ref -> esi "field V08.key (fldOffset=0x0)" P-INDEP
-; V142 tmp125 [V142,T39] ( 2, 8 ) ref -> edi "field V08.value (fldOffset=0x4)" P-INDEP
+; V141 tmp124 [V141,T39] ( 2, 8 ) ref -> esi "field V08.key (fldOffset=0x0)" P-INDEP
+; V142 tmp125 [V142,T40] ( 2, 8 ) ref -> edi "field V08.value (fldOffset=0x4)" P-INDEP
;* V143 tmp126 [V143 ] ( 0, 0 ) ubyte -> zero-ref "field V16._format (fldOffset=0x0)" P-INDEP
;* V144 tmp127 [V144 ] ( 0, 0 ) ubyte -> zero-ref "field V16._precision (fldOffset=0x1)" P-INDEP
; V145 tmp128 [V145,T71] ( 2, 2 ) byref -> ecx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V146 tmp129 [V146,T76] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x4)" P-INDEP
; V147 tmp130 [V147,T59] ( 2, 6 ) byref -> [ebp-0xA4] spill-single-def "field V21._reference (fldOffset=0x0)" P-INDEP
; V148 tmp131 [V148,T60] ( 2, 6 ) int -> [ebp-0x78] spill-single-def "field V21._length (fldOffset=0x4)" P-INDEP
-; V149 tmp132 [V149,T31] ( 3, 8 ) byref -> [ebp-0xA8] "field V25._reference (fldOffset=0x0)" P-INDEP
-; V150 tmp133 [V150,T33] ( 3, 8 ) int -> [ebp-0x7C] "field V25._length (fldOffset=0x4)" P-INDEP
+; V149 tmp132 [V149,T32] ( 3, 8 ) byref -> [ebp-0xA8] "field V25._reference (fldOffset=0x0)" P-INDEP
+; V150 tmp133 [V150,T34] ( 3, 8 ) int -> [ebp-0x7C] "field V25._length (fldOffset=0x4)" P-INDEP
;* V151 tmp134 [V151 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
;* V152 tmp135 [V152 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x4)" P-INDEP
-; V153 tmp136 [V153,T32] ( 3, 8 ) byref -> [ebp-0xAC] "field V30._reference (fldOffset=0x0)" P-INDEP
-; V154 tmp137 [V154,T34] ( 3, 8 ) int -> [ebp-0x80] "field V30._length (fldOffset=0x4)" P-INDEP
+; V153 tmp136 [V153,T33] ( 3, 8 ) byref -> [ebp-0xAC] "field V30._reference (fldOffset=0x0)" P-INDEP
+; V154 tmp137 [V154,T35] ( 3, 8 ) int -> [ebp-0x80] "field V30._length (fldOffset=0x4)" P-INDEP
;* V155 tmp138 [V155 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
;* V156 tmp139 [V156 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x4)" P-INDEP
;* V157 tmp140 [V157 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
@@ -197,27 +197,27 @@
; V186 tmp169 [V186,T68] ( 2, 4 ) int -> esi "field V102._length (fldOffset=0x4)" P-INDEP
;* V187 tmp170 [V187 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP
;* V188 tmp171 [V188 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x4)" P-INDEP
-; V189 tmp172 [V189,T40] ( 2, 8 ) byref -> edi "field V109._reference (fldOffset=0x0)" P-INDEP
-; V190 tmp173 [V190,T48] ( 2, 8 ) int -> ebx "field V109._length (fldOffset=0x4)" P-INDEP
+; V189 tmp172 [V189,T41] ( 2, 8 ) byref -> edi "field V109._reference (fldOffset=0x0)" P-INDEP
+; V190 tmp173 [V190,T49] ( 2, 8 ) int -> ebx "field V109._length (fldOffset=0x4)" P-INDEP
; V191 tmp174 [V191,T65] ( 2, 4 ) byref -> edx "field V114._reference (fldOffset=0x0)" P-INDEP
; V192 tmp175 [V192,T69] ( 2, 4 ) int -> ecx "field V114._length (fldOffset=0x4)" P-INDEP
;* V193 tmp176 [V193 ] ( 0, 0 ) byref -> zero-ref "field V115._reference (fldOffset=0x0)" P-INDEP
;* V194 tmp177 [V194 ] ( 0, 0 ) int -> zero-ref "field V115._length (fldOffset=0x4)" P-INDEP
-; V195 tmp178 [V195,T41] ( 2, 8 ) byref -> ecx "field V121._reference (fldOffset=0x0)" P-INDEP
-; V196 tmp179 [V196,T49] ( 2, 8 ) int -> edi "field V121._length (fldOffset=0x4)" P-INDEP
+; V195 tmp178 [V195,T42] ( 2, 8 ) byref -> ecx "field V121._reference (fldOffset=0x0)" P-INDEP
+; V196 tmp179 [V196,T50] ( 2, 8 ) int -> edi "field V121._length (fldOffset=0x4)" P-INDEP
;* V197 tmp180 [V197 ] ( 0, 0 ) byref -> zero-ref "field V127._reference (fldOffset=0x0)" P-INDEP
;* V198 tmp181 [V198 ] ( 0, 0 ) int -> zero-ref "field V127._length (fldOffset=0x4)" P-INDEP
;* V199 tmp182 [V199 ] ( 0, 0 ) byref -> zero-ref "field V131._reference (fldOffset=0x0)" P-INDEP
;* V200 tmp183 [V200 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x4)" P-INDEP
-; V201 tmp184 [V201,T42] ( 2, 8 ) byref -> ecx "field V132._reference (fldOffset=0x0)" P-INDEP
-; V202 tmp185 [V202,T50] ( 2, 8 ) int -> edi "field V132._length (fldOffset=0x4)" P-INDEP
+; V201 tmp184 [V201,T43] ( 2, 8 ) byref -> ecx "field V132._reference (fldOffset=0x0)" P-INDEP
+; V202 tmp185 [V202,T51] ( 2, 8 ) int -> edi "field V132._length (fldOffset=0x4)" P-INDEP
;* V203 tmp186 [V203 ] ( 0, 0 ) ref -> zero-ref single-def "V37.[000..004)"
; V204 tmp187 [V204,T75] ( 2, 1 ) int -> edx "V37.[004..008)"
;* V205 tmp188 [V205 ] ( 0, 0 ) int -> zero-ref "V37.[008..012)"
;* V206 tmp189 [V206 ] ( 0, 0 ) int -> zero-ref "V37.[012..016)"
-; V207 tmp190 [V207,T43] ( 2, 8 ) ref -> ecx "argument with side effect"
-; V208 tmp191 [V208,T44] ( 2, 8 ) ref -> ecx "argument with side effect"
-; V209 tmp192 [V209,T51] ( 2, 8 ) int -> edi "Cast away GC"
+; V207 tmp190 [V207,T44] ( 2, 8 ) ref -> ecx "argument with side effect"
+; V208 tmp191 [V208,T45] ( 2, 8 ) ref -> ecx "argument with side effect"
+; V209 tmp192 [V209,T52] ( 2, 8 ) int -> edi "Cast away GC"
; V210 tmp193 [V210,T72] ( 2, 2 ) ref -> ecx single-def "argument with side effect"
; V211 GsCookie [V211 ] ( 1, 1 ) int -> [ebp-0xB8] do-not-enreg[X] addr-exposed "GSSecurityCookie"
; V212 EHSlots [V212 ] ( 1, 1 ) struct (16) [ebp-0x24] do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
@@ -363,7 +363,7 @@ G_M33777_IG08: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
cmp eax, ebx
jge SHORT G_M33777_IG13
;; size=7 bbWeight=4 PerfScore 9.00
-G_M33777_IG09: ; bbWeight=2, gcVars=000000000020000008100000 {V01 V02 V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M33777_IG09: ; bbWeight=2, gcVars=000000000000000048100000 {V01 V02 V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; GC ptr vars -{V137}
cmp gword ptr [ebp-0x8C], 0
je SHORT G_M33777_IG10
@@ -415,7 +415,7 @@ G_M33777_IG12: ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=0000
mov eax, edx
; gcrRegs -[eax]
;; size=14 bbWeight=2 PerfScore 4.50
-G_M33777_IG13: ; bbWeight=4, gcVars=000000000020000008100200 {V01 V02 V07 V137}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M33777_IG13: ; bbWeight=4, gcVars=000000000000000048100200 {V01 V02 V07 V137}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; byrRegs -[ecx]
mov ecx, bword ptr [ebp-0xA0]
; byrRegs +[ecx]
@@ -426,7 +426,7 @@ G_M33777_IG13: ; bbWeight=4, gcVars=000000000020000008100200 {V01 V02 V07
test ebx, ebx
jge SHORT G_M33777_IG15
;; size=22 bbWeight=4 PerfScore 21.00
-G_M33777_IG14: ; bbWeight=2, gcVars=000000000820000008100200 {V01 V02 V07 V137 V147}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M33777_IG14: ; bbWeight=2, gcVars=000000000800000048100200 {V01 V02 V07 V137 V147}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
; byrRegs -[ecx]
mov edx, 0xD1FFAB1E ; static handle
; byrRegs +[edx]
@@ -609,7 +609,7 @@ G_M33777_IG29: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
test esi, esi
jne SHORT G_M33777_IG31
;; size=53 bbWeight=4 PerfScore 55.00
-G_M33777_IG30: ; bbWeight=2, gcVars=000000000020000008300000 {V01 V02 V07 V24}, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, gcvars, byref, isz
+G_M33777_IG30: ; bbWeight=2, gcVars=000000000000000048300000 {V01 V02 V07 V24}, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, gcvars, byref, isz
; gcrRegs -[edx esi]
; GC ptr vars -{V137}
mov edx, gword ptr [ebp-0x94]
@@ -637,7 +637,7 @@ G_M33777_IG31: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000002
mov edi, dword ptr [ebp-0x7C]
; byrRegs -[edi]
;; size=24 bbWeight=2 PerfScore 13.00
-G_M33777_IG32: ; bbWeight=4, gcVars=000000000020000088300000 {V01 V02 V07 V24 V149}, gcrefRegs=00000004 {edx}, byrefRegs=00000002 {ecx}, gcvars, byref, isz
+G_M33777_IG32: ; bbWeight=4, gcVars=000000000000000148300000 {V01 V02 V07 V24 V149}, gcrefRegs=00000004 {edx}, byrefRegs=00000002 {ecx}, gcvars, byref, isz
mov esi, dword ptr [ebp-0x44]
cmp esi, eax
mov dword ptr [ebp-0x7C], edi
@@ -651,7 +651,7 @@ G_M33777_IG32: ; bbWeight=4, gcVars=000000000020000088300000 {V01 V02 V07
sub ebx, esi
jns SHORT G_M33777_IG34
;; size=32 bbWeight=4 PerfScore 29.00
-G_M33777_IG33: ; bbWeight=2, gcVars=000000000020000088300200 {V01 V02 V07 V24 V137 V149}, gcrefRegs=00000004 {edx}, byrefRegs=00000080 {edi}, gcvars, byref
+G_M33777_IG33: ; bbWeight=2, gcVars=000000000000000148300200 {V01 V02 V07 V24 V137 V149}, gcrefRegs=00000004 {edx}, byrefRegs=00000080 {edi}, gcvars, byref
; byrRegs -[ecx]
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -699,7 +699,7 @@ G_M33777_IG34: ; bbWeight=4, gcrefRegs=00000004 {edx}, byrefRegs=00000080
test ecx, ecx
jne SHORT G_M33777_IG36
;; size=85 bbWeight=4 PerfScore 112.00
-G_M33777_IG35: ; bbWeight=2, gcVars=000000000020000008400000 {V01 V02 V29}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+G_M33777_IG35: ; bbWeight=2, gcVars=000000000000000048400000 {V01 V02 V29}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref, isz
; gcrRegs -[eax ecx]
; GC ptr vars -{V07 V137}
mov eax, gword ptr [ebp-0x98]
@@ -711,7 +711,7 @@ G_M33777_IG35: ; bbWeight=2, gcVars=000000000020000008400000 {V01 V02 V29
; GC ptr vars +{V153}
jmp SHORT G_M33777_IG37
;; size=18 bbWeight=2 PerfScore 9.00
-G_M33777_IG36: ; bbWeight=2, gcVars=000000000020000008500000 {V01 V02 V07 V29}, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, gcvars, byref
+G_M33777_IG36: ; bbWeight=2, gcVars=000000000000000048500000 {V01 V02 V07 V29}, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, gcvars, byref
; gcrRegs -[eax] +[ecx]
; byrRegs -[edx]
; GC ptr vars -{V153} +{V07 V20}
@@ -725,7 +725,7 @@ G_M33777_IG36: ; bbWeight=2, gcVars=000000000020000008500000 {V01 V02 V07
; GC ptr vars +{V153}
mov dword ptr [ebp-0x80], ecx
;; size=21 bbWeight=2 PerfScore 11.00
-G_M33777_IG37: ; bbWeight=4, gcVars=000000000020000108400000 {V01 V02 V29 V153}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+G_M33777_IG37: ; bbWeight=4, gcVars=000000000000000248400000 {V01 V02 V29 V153}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref, isz
; byrRegs -[edx]
; GC ptr vars -{V07 V20}
mov edx, dword ptr [ebp-0x44]
@@ -740,7 +740,7 @@ G_M33777_IG37: ; bbWeight=4, gcVars=000000000020000108400000 {V01 V02 V29
sub edi, edx
jns SHORT G_M33777_IG39
;; size=29 bbWeight=4 PerfScore 25.00
-G_M33777_IG38: ; bbWeight=2, gcVars=000000000020000109400000 {V01 V02 V29 V123 V153}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref
+G_M33777_IG38: ; bbWeight=2, gcVars=000000000000000249400000 {V01 V02 V29 V123 V153}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref
; byrRegs -[ecx]
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -806,7 +806,9 @@ G_M33777_IG41: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
mov ecx, gword ptr [ebp-0x88]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov gword ptr [ebp-0x88], ecx
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x3C]
call [eax+0x1C]<unknown method>
; gcrRegs -[ecx]
; gcr arg pop 1
@@ -818,7 +820,7 @@ G_M33777_IG41: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
mov bword ptr [ebp-0xA0], esi
; GC ptr vars +{V137}
jne G_M33777_IG06
- ;; size=49 bbWeight=4 PerfScore 61.00
+ ;; size=55 bbWeight=4 PerfScore 73.00
G_M33777_IG42: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
; byrRegs -[esi]
; GC ptr vars -{V137}
@@ -826,12 +828,14 @@ G_M33777_IG42: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
push 0
mov ecx, gword ptr [ebp-0x88]
; gcrRegs +[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov gword ptr [ebp-0x88], ecx
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x30]
call [eax+0x0C]<unknown method>
; gcrRegs -[ecx]
mov esi, gword ptr [ebp-0x88]
; gcrRegs +[esi]
- ;; size=24 bbWeight=0.50 PerfScore 4.50
+ ;; size=30 bbWeight=0.50 PerfScore 6.00
G_M33777_IG43: ; bbWeight=1, gcVars=000000000000000008000000 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; GC ptr vars -{V01}
...
+9 (+3.88%) : 31360.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (Tier1)
@@ -60,23 +60,25 @@ G_M61493_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=0000
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax+0x38]
mov dword ptr [ebp-0x20], eax
call [eax+0x0C]<unknown method>
; gcrRegs -[ecx]
mov dword ptr [ebp-0x18], eax
test eax, eax
je SHORT G_M61493_IG04
- ;; size=58 bbWeight=1 PerfScore 18.25
+ ;; size=61 bbWeight=1 PerfScore 20.25
G_M61493_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
; gcrRegs -[ebx]
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edx+0x40]
call [edx+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ebx, eax
; gcrRegs +[ebx]
- ;; size=16 bbWeight=0.50 PerfScore 2.75
+ ;; size=19 bbWeight=0.50 PerfScore 3.75
G_M61493_IG04: ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=000000C0 {esi edi}, byref, isz
; gcrRegs -[eax]
push dword ptr [ebp-0x18]
@@ -112,11 +114,12 @@ G_M61493_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=000000C0
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edx+0x40]
call [edx+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ebx, eax
; gcrRegs +[ebx]
- ;; size=16 bbWeight=0.50 PerfScore 2.75
+ ;; size=19 bbWeight=0.50 PerfScore 3.75
G_M61493_IG06: ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=000000C0 {esi edi}, byref
; gcrRegs -[eax]
push dword ptr [ebp-0x1C]
@@ -155,6 +158,6 @@ G_M61493_IG07: ; bbWeight=1, epilog, nogc, extend
ret 12
;; size=10 bbWeight=1 PerfScore 4.50
-; Total bytes of code 232, prolog size 17, PerfScore 69.75, instruction count 70, allocated bytes for code 232 (MethodHash=8df50fca) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (Tier1)
+; Total bytes of code 241, prolog size 17, PerfScore 73.75, instruction count 73, allocated bytes for code 241 (MethodHash=8df50fca) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (Tier1)
; ============================================================
+2 (+6.45%) : 31316.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
@@ -25,12 +25,15 @@ G_M5950_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
mov byte ptr [D1FFAB1EH], 1
;; size=14 bbWeight=0.50 PerfScore 1.00
G_M5950_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- movzx eax, byte ptr [D1FFAB1EH]
- ;; size=7 bbWeight=1 PerfScore 2.00
+ mov eax, 0xD1FFAB1E ; static handle
+ ; byrRegs +[eax]
+ movzx eax, byte ptr [eax+0x01]
+ ; byrRegs -[eax]
+ ;; size=9 bbWeight=1 PerfScore 2.25
G_M5950_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 31, prolog size 0, PerfScore 8.00, instruction count 6, allocated bytes for code 31 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
+; Total bytes of code 33, prolog size 0, PerfScore 8.25, instruction count 7, allocated bytes for code 33 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
; ============================================================
coreclr_tests.run.windows.x86.checked.mch
-3 (-3.53%) : 531092.dasm - bug1:TestEntryPoint() (FullOpts)
@@ -20,15 +20,16 @@ G_M5006_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
;; size=9 bbWeight=1 PerfScore 4.00
G_M5006_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov dword ptr [D1FFAB1EH], 3 ; data for <unknown class>:<unknown field>
- mov dword ptr [D1FFAB1EH], 2 ; global ptr
+ mov eax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ mov dword ptr [eax+0x04], 2
vmovsd xmm0, qword ptr [@RWD00]
- vmovsd qword ptr [D1FFAB1EH], xmm0
- mov eax, 0xD1FFAB1E ; global ptr
+ vmovsd qword ptr [eax+0x08], xmm0
+ add eax, 16
mov dword ptr [eax], 1
xor edx, edx
mov dword ptr [eax+0x04], edx
call [bug1:f():int]
- ;; size=58 bbWeight=1 PerfScore 12.50
+ ;; size=55 bbWeight=1 PerfScore 12.75
G_M5006_IG04: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
@@ -41,6 +42,6 @@ G_M5006_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, by
RWD00 dq 4018000000000000h ; 6
-; Total bytes of code 85, prolog size 0, PerfScore 17.50, instruction count 16, allocated bytes for code 85 (MethodHash=c14fec71) for method bug1:TestEntryPoint() (FullOpts)
+; Total bytes of code 82, prolog size 0, PerfScore 17.75, instruction count 17, allocated bytes for code 82 (MethodHash=c14fec71) for method bug1:TestEntryPoint() (FullOpts)
; ============================================================
-26 (-2.25%) : 505328.dasm - Program:Negative() (FullOpts)
@@ -76,9 +76,9 @@ G_M17814_IG04: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -92,7 +92,7 @@ G_M17814_IG04: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -115,9 +115,9 @@ G_M17814_IG07: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -131,7 +131,7 @@ G_M17814_IG07: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG08: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -154,9 +154,9 @@ G_M17814_IG10: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -170,7 +170,7 @@ G_M17814_IG10: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG11: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -193,9 +193,9 @@ G_M17814_IG13: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -209,7 +209,7 @@ G_M17814_IG13: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG14: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -232,9 +232,9 @@ G_M17814_IG16: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -248,7 +248,7 @@ G_M17814_IG16: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG17: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -273,9 +273,9 @@ G_M17814_IG19: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -289,7 +289,7 @@ G_M17814_IG19: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG20: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -312,9 +312,9 @@ G_M17814_IG22: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -328,7 +328,7 @@ G_M17814_IG22: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG23: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -353,9 +353,9 @@ G_M17814_IG25: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -369,7 +369,7 @@ G_M17814_IG25: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG26: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -392,9 +392,9 @@ G_M17814_IG28: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -408,7 +408,7 @@ G_M17814_IG28: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG29: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -433,9 +433,9 @@ G_M17814_IG31: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -449,7 +449,7 @@ G_M17814_IG31: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG32: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -472,9 +472,9 @@ G_M17814_IG34: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -488,7 +488,7 @@ G_M17814_IG34: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG35: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
@@ -513,9 +513,9 @@ G_M17814_IG37: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
; gcrRegs +[eax]
mov ecx, eax
; gcrRegs +[ecx]
- cmp dword ptr [eax], eax
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
@@ -529,7 +529,7 @@ G_M17814_IG37: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[eax ecx]
call CORINFO_HELP_ENDCATCH
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M17814_IG38: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
...
-2 (-1.53%) : 505687.dasm - CMain:RunTest_ExplicitOverride4():ubyte (FullOpts)
@@ -16,9 +16,9 @@
;* V05 tmp1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V06 tmp2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V07 tmp3 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V08 tmp4 [V08,T00] ( 2, 4 ) ref -> ecx single-def "argument with side effect"
-; V09 tmp5 [V09,T01] ( 2, 4 ) ref -> ecx single-def "argument with side effect"
-; V10 tmp6 [V10,T02] ( 2, 4 ) ref -> ecx single-def "argument with side effect"
+; V08 tmp4 [V08,T00] ( 3, 6 ) ref -> eax single-def "argument with side effect"
+; V09 tmp5 [V09,T02] ( 2, 4 ) ref -> ecx single-def "argument with side effect"
+; V10 tmp6 [V10,T01] ( 3, 6 ) ref -> eax single-def "argument with side effect"
; V11 tmp7 [V11,T03] ( 2, 4 ) ref -> ecx single-def "argument with side effect"
; V12 cse0 [V12,T04] ( 3, 3 ) int -> esi "CSE - aggressive"
; V13 cse1 [V13,T05] ( 3, 3 ) int -> esi "CSE - aggressive"
@@ -43,9 +43,11 @@ G_M13146_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov ecx, eax
; gcrRegs +[ecx]
lea edx, [ebp-0x08]
- mov esi, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
+ ; gcrRegs -[eax]
+ mov esi, dword ptr [eax+0x30]
call [esi]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
mov ecx, eax
@@ -58,9 +60,11 @@ G_M13146_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov ecx, eax
; gcrRegs +[ecx]
lea edx, [ebp-0x10]
- mov esi, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax]
+ ; gcrRegs -[eax]
+ mov esi, dword ptr [eax+0x34]
call [esi]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
mov ecx, eax
@@ -77,7 +81,7 @@ G_M13146_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[eax ecx edx]
- ;; size=104 bbWeight=1 PerfScore 31.25
+ ;; size=102 bbWeight=1 PerfScore 35.25
G_M13146_IG03: ; bbWeight=1, epilog, nogc, extend
lea esp, [ebp-0x04]
pop esi
@@ -85,6 +89,6 @@ G_M13146_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 2.50
-; Total bytes of code 131, prolog size 21, PerfScore 40.50, instruction count 41, allocated bytes for code 131 (MethodHash=9a20cca5) for method CMain:RunTest_ExplicitOverride4():ubyte (FullOpts)
+; Total bytes of code 129, prolog size 21, PerfScore 44.50, instruction count 43, allocated bytes for code 129 (MethodHash=9a20cca5) for method CMain:RunTest_ExplicitOverride4():ubyte (FullOpts)
; ============================================================
+9 (+11.25%) : 485797.dasm - ZeroOffsetFieldSeqs:ProblemWithStaticUnions():ubyte (FullOpts)
@@ -23,22 +23,25 @@ G_M49484_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
je SHORT G_M49484_IG08
;; size=9 bbWeight=1 PerfScore 4.00
G_M49484_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- mov eax, 0xD1FFAB1E ; global ptr
+ mov eax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ add eax, 8
mov ecx, dword ptr [eax]
or ecx, dword ptr [eax+0x04]
jne SHORT G_M49484_IG06
- ;; size=12 bbWeight=1 PerfScore 6.25
+ ;; size=15 bbWeight=1 PerfScore 6.50
G_M49484_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- mov eax, 0xD1FFAB1E ; global ptr
+ mov eax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ add eax, 8
mov dword ptr [eax], 1
xor ecx, ecx
mov dword ptr [eax+0x04], ecx
- mov eax, 0xD1FFAB1E ; global ptr
+ mov eax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ add eax, 8
mov ecx, dword ptr [eax]
or ecx, dword ptr [eax+0x04]
jne SHORT G_M49484_IG06
mov eax, 1
- ;; size=33 bbWeight=0.50 PerfScore 4.50
+ ;; size=39 bbWeight=0.50 PerfScore 4.75
G_M49484_IG05: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret
@@ -57,6 +60,6 @@ G_M49484_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
jmp SHORT G_M49484_IG03
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 80, prolog size 3, PerfScore 17.62, instruction count 26, allocated bytes for code 80 (MethodHash=88913eb3) for method ZeroOffsetFieldSeqs:ProblemWithStaticUnions():ubyte (FullOpts)
+; Total bytes of code 89, prolog size 3, PerfScore 18.12, instruction count 29, allocated bytes for code 89 (MethodHash=88913eb3) for method ZeroOffsetFieldSeqs:ProblemWithStaticUnions():ubyte (FullOpts)
; ============================================================
+27 (+128.57%) : 285891.dasm - Test_b18049:main():int (Tier0-FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-;* V00 loc0 [V00,T00] ( 0, 0 ) int -> zero-ref
+; V00 loc0 [V00,T00] ( 7, 16 ) int -> ecx
;
; Lcl frame size = 0
@@ -15,18 +15,29 @@ G_M6588_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push ebp
mov ebp, esp
;; size=3 bbWeight=1 PerfScore 1.25
-G_M6588_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M6588_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ mov ecx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ add ecx, 4
+ cmp ecx, 0xD1FFAB1E
+ jae SHORT G_M6588_IG04
+ ;; size=16 bbWeight=1 PerfScore 1.75
+G_M6588_IG03: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ add ecx, 4
+ cmp ecx, 0xD1FFAB1E
+ jb SHORT G_M6588_IG03
+ ;; size=11 bbWeight=4 PerfScore 6.00
+G_M6588_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx]
mov eax, 100
;; size=16 bbWeight=1 PerfScore 3.50
-G_M6588_IG03: ; bbWeight=1, epilog, nogc, extend
+G_M6588_IG05: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 21, prolog size 3, PerfScore 6.25, instruction count 7, allocated bytes for code 21 (MethodHash=1b81e643) for method Test_b18049:main():int (Tier0-FullOpts)
+; Total bytes of code 48, prolog size 3, PerfScore 14.00, instruction count 14, allocated bytes for code 48 (MethodHash=1b81e643) for method Test_b18049:main():int (Tier0-FullOpts)
; ============================================================
+27 (+128.57%) : 523168.dasm - Test_b18049:main():int (FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-;* V00 loc0 [V00,T00] ( 0, 0 ) int -> zero-ref
+; V00 loc0 [V00,T00] ( 7, 16 ) int -> ecx
;
; Lcl frame size = 0
@@ -15,18 +15,29 @@ G_M6588_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push ebp
mov ebp, esp
;; size=3 bbWeight=1 PerfScore 1.25
-G_M6588_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M6588_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ mov ecx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ add ecx, 4
+ cmp ecx, 0xD1FFAB1E
+ jae SHORT G_M6588_IG04
+ ;; size=16 bbWeight=1 PerfScore 1.75
+G_M6588_IG03: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ add ecx, 4
+ cmp ecx, 0xD1FFAB1E
+ jb SHORT G_M6588_IG03
+ ;; size=11 bbWeight=4 PerfScore 6.00
+G_M6588_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx]
mov eax, 100
;; size=16 bbWeight=1 PerfScore 3.50
-G_M6588_IG03: ; bbWeight=1, epilog, nogc, extend
+G_M6588_IG05: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 21, prolog size 3, PerfScore 6.25, instruction count 7, allocated bytes for code 21 (MethodHash=1b81e643) for method Test_b18049:main():int (FullOpts)
+; Total bytes of code 48, prolog size 3, PerfScore 14.00, instruction count 14, allocated bytes for code 48 (MethodHash=1b81e643) for method Test_b18049:main():int (FullOpts)
; ============================================================
libraries.pmi.windows.x86.checked.mch
-2 (-4.88%) : 302624.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
@@ -46,17 +46,17 @@ G_M31553_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000004
push dword ptr [ebp+0x10]
push eax
push gword ptr [ebp+0x08]
- cmp dword ptr [ecx], ecx
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ecx]
+ mov eax, dword ptr [eax+0x34]
call [eax]<unknown method>
; gcrRegs -[ecx]
; byrRegs -[edx]
- ;; size=34 bbWeight=1 PerfScore 17.25
+ ;; size=32 bbWeight=1 PerfScore 16.25
G_M31553_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret 24
;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 41, prolog size 3, PerfScore 21.00, instruction count 16, allocated bytes for code 41 (MethodHash=3bd084be) for method System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
+; Total bytes of code 39, prolog size 3, PerfScore 20.00, instruction count 16, allocated bytes for code 39 (MethodHash=3bd084be) for method System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
; ============================================================
-18 (-4.66%) : 304272.dasm - System.Runtime.Serialization.CodeExporter:CreateTypeDeclaration(System.String,System.Runtime.Serialization.DataContracts.DataContract):System.CodeDom.CodeTypeDeclaration (FullOpts)
@@ -8,36 +8,34 @@
; 0 inlinees with PGO data; 31 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T10] ( 3, 3 ) ref -> esi class-hnd single-def <System.String>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> [ebp-0x10] class-hnd single-def <System.Runtime.Serialization.DataContracts.DataContract>
+; V00 arg0 [V00,T11] ( 3, 3 ) ref -> esi class-hnd single-def <System.String>
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> [ebp-0x10] class-hnd single-def <System.Runtime.Serialization.DataContracts.DataContract>
;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.CodeDom.CodeTypeDeclaration>
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.CodeDom.CodeAttributeDeclaration>
;* V04 loc2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.CodeDom.CodeAttributeDeclaration>
; V05 loc3 [V05,T16] ( 3, 3 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <System.Reflection.AssemblyName>
; V06 tmp0 [V06,T01] ( 5, 9 ) ref -> ebx class-hnd exact single-def "NewObj constructor temp" <System.CodeDom.CodeTypeDeclaration>
-; V07 tmp1 [V07,T12] ( 3, 5 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <System.CodeDom.CodeAttributeDeclaration>
+; V07 tmp1 [V07,T13] ( 3, 5 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <System.CodeDom.CodeAttributeDeclaration>
; V08 tmp2 [V08,T00] ( 5, 10 ) ref -> [ebp-0x18] class-hnd exact spill-single-def "NewObj constructor temp" <System.CodeDom.CodeAttributeDeclaration>
-; V09 tmp3 [V09,T02] ( 3, 6 ) ref -> [ebp-0x1C] class-hnd spill-single-def "impAppendStmt" <System.CodeDom.CodeAttributeArgumentCollection>
-; V10 tmp4 [V10,T03] ( 3, 6 ) ref -> [ebp-0x20] class-hnd exact spill-single-def "NewObj constructor temp" <System.CodeDom.CodePrimitiveExpression>
-; V11 tmp5 [V11,T04] ( 3, 6 ) ref -> eax class-hnd exact single-def "NewObj constructor temp" <System.CodeDom.CodeAttributeArgument>
-; V12 tmp6 [V12,T05] ( 3, 6 ) ref -> [ebp-0x24] class-hnd spill-single-def "impAppendStmt" <System.CodeDom.CodeAttributeArgumentCollection>
-; V13 tmp7 [V13,T13] ( 3, 5 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Version>
+; V09 tmp3 [V09,T03] ( 3, 6 ) ref -> [ebp-0x1C] class-hnd spill-single-def "impAppendStmt" <System.CodeDom.CodeAttributeArgumentCollection>
+; V10 tmp4 [V10,T04] ( 3, 6 ) ref -> [ebp-0x20] class-hnd exact spill-single-def "NewObj constructor temp" <System.CodeDom.CodePrimitiveExpression>
+; V11 tmp5 [V11,T05] ( 3, 6 ) ref -> eax class-hnd exact single-def "NewObj constructor temp" <System.CodeDom.CodeAttributeArgument>
+; V12 tmp6 [V12,T06] ( 3, 6 ) ref -> [ebp-0x24] class-hnd spill-single-def "impAppendStmt" <System.CodeDom.CodeAttributeArgumentCollection>
+; V13 tmp7 [V13,T02] ( 4, 6 ) ref -> ecx class-hnd exact single-def "dup spill" <System.Version>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
; V17 tmp11 [V17,T18] ( 3, 2 ) ref -> [ebp-0x28]
-; V18 tmp12 [V18,T06] ( 3, 6 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <System.CodeDom.CodePrimitiveExpression>
-; V19 tmp13 [V19,T07] ( 3, 6 ) ref -> eax class-hnd exact single-def "NewObj constructor temp" <System.CodeDom.CodeAttributeArgument>
+; V18 tmp12 [V18,T07] ( 3, 6 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <System.CodeDom.CodePrimitiveExpression>
+; V19 tmp13 [V19,T08] ( 3, 6 ) ref -> eax class-hnd exact single-def "NewObj constructor temp" <System.CodeDom.CodeAttributeArgument>
;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V21 tmp15 [V21,T17] ( 3, 3 ) ref -> eax class-hnd single-def "Inlining Arg" <System.CodeDom.CodeAttributeDeclarationCollection>
-; V22 tmp16 [V22,T08] ( 3, 6 ) ref -> eax class-hnd single-def "Inlining Arg" <System.CodeDom.CodeAttributeDeclarationCollection>
+; V22 tmp16 [V22,T09] ( 3, 6 ) ref -> eax class-hnd single-def "Inlining Arg" <System.CodeDom.CodeAttributeDeclarationCollection>
; V23 tmp17 [V23,T14] ( 2, 4 ) ref -> edx single-def "argument with side effect"
; V24 tmp18 [V24,T15] ( 2, 4 ) ref -> edx single-def "argument with side effect"
-; V25 tmp19 [V25,T09] ( 3, 6 ) ref -> eax single-def "argument with side effect"
-; TEMP_02 ref -> [ebp-0x30]
-; TEMP_01 int -> [ebp-0x34]
+; V25 tmp19 [V25,T10] ( 3, 6 ) ref -> eax single-def "argument with side effect"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M10061_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -45,15 +43,13 @@ G_M10061_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 40
- xor eax, eax
- mov dword ptr [ebp-0x30], eax
+ sub esp, 32
mov gword ptr [ebp-0x10], edx
; GC ptr vars +{V01}
mov esi, ecx
; gcrRegs +[esi]
- ;; size=19 bbWeight=1 PerfScore 7.00
-G_M10061_IG02: ; bbWeight=1, gcVars=00000800 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+ ;; size=14 bbWeight=1 PerfScore 5.75
+G_M10061_IG02: ; bbWeight=1, gcVars=00001000 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
mov ecx, 0xD1FFAB1E ; System.CodeDom.CodeTypeDeclaration
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
@@ -161,7 +157,7 @@ G_M10061_IG03: ; bbWeight=1, isz, extend
test ecx, ecx
jne SHORT G_M10061_IG05
;; size=37 bbWeight=1 PerfScore 16.50
-G_M10061_IG04: ; bbWeight=0.50, gcVars=00000821 {V01 V08 V12}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M10061_IG04: ; bbWeight=0.50, gcVars=00001041 {V01 V08 V12}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax ecx edx]
; GC ptr vars -{V05}
mov edi, gword ptr [ebp-0x10]
@@ -175,23 +171,18 @@ G_M10061_IG04: ; bbWeight=0.50, gcVars=00000821 {V01 V08 V12}, gcrefRegs=
G_M10061_IG05: ; bbWeight=0.50, gcrefRegs=0000004A {ecx ebx esi}, byrefRegs=00000000 {}, byref
; gcrRegs -[edi]
; GC ptr vars -{V17}
- mov gword ptr [ebp-0x30], ecx
- mov ecx, dword ptr [D1FFAB1EH]
- ; gcrRegs -[ecx]
- mov dword ptr [ebp-0x34], ecx
- mov ecx, gword ptr [ebp-0x30]
- ; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x34]
+ mov edi, dword ptr [ecx]
+ mov edi, dword ptr [edi+0x2C]
call [edi+0x04]<unknown method>
; gcrRegs -[ecx] +[eax]
mov gword ptr [ebp-0x28], eax
; GC ptr vars +{V17}
mov edi, gword ptr [ebp-0x10]
; gcrRegs +[edi]
- ;; size=27 bbWeight=0.50 PerfScore 5.50
-G_M10061_IG06: ; bbWeight=1, gcVars=00040021 {V08 V12 V17}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ;; size=14 bbWeight=0.50 PerfScore 4.50
+G_M10061_IG06: ; bbWeight=1, gcVars=00040041 {V08 V12 V17}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax]
- ; GC ptr vars -{V01}
+ ; GC ptr vars -{V01 V12}
mov ecx, 0xD1FFAB1E ; System.CodeDom.CodePrimitiveExpression
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
@@ -201,7 +192,7 @@ G_M10061_IG06: ; bbWeight=1, gcVars=00040021 {V08 V12 V17}, gcrefRegs=000
; byrRegs +[edx]
mov ecx, gword ptr [ebp-0x28]
; gcrRegs +[ecx]
- ; GC ptr vars -{V17 V18}
+ ; GC ptr vars -{V17 V18} +{V12}
call CORINFO_HELP_ASSIGN_REF_ECX
; gcrRegs -[eax ecx]
; byrRegs -[edx]
@@ -268,6 +259,6 @@ G_M10061_IG09: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 386, prolog size 14, PerfScore 118.75, instruction count 116, allocated bytes for code 386 (MethodHash=6dd6d8b2) for method System.Runtime.Serialization.CodeExporter:CreateTypeDeclaration(System.String,System.Runtime.Serialization.DataContracts.DataContract):System.CodeDom.CodeTypeDeclaration (FullOpts)
+; Total bytes of code 368, prolog size 9, PerfScore 116.50, instruction count 111, allocated bytes for code 368 (MethodHash=6dd6d8b2) for method System.Runtime.Serialization.CodeExporter:CreateTypeDeclaration(System.String,System.Runtime.Serialization.DataContracts.DataContract):System.CodeDom.CodeTypeDeclaration (FullOpts)
; ============================================================
-2 (-4.26%) : 242636.dasm - System.Linq.Expressions.Interpreter.InterpretedFrameInfo:ToString():System.String:this (FullOpts)
@@ -49,8 +49,8 @@ G_M37260_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000004 {e
mov ecx, edx
; gcrRegs +[ecx]
; byrRegs -[ecx]
- cmp dword ptr [edx], edx
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [edx]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x04]<unknown method>
; gcrRegs -[ecx edx] +[eax]
push eax
@@ -60,13 +60,13 @@ G_M37260_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000004 {e
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[ecx edx esi]
- ;; size=28 bbWeight=0.50 PerfScore 7.38
+ ;; size=26 bbWeight=0.50 PerfScore 6.88
G_M37260_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop esi
pop ebp
ret
;; size=3 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 47, prolog size 4, PerfScore 15.88, instruction count 22, allocated bytes for code 47 (MethodHash=da936e73) for method System.Linq.Expressions.Interpreter.InterpretedFrameInfo:ToString():System.String:this (FullOpts)
+; Total bytes of code 45, prolog size 4, PerfScore 15.38, instruction count 22, allocated bytes for code 45 (MethodHash=da936e73) for method System.Linq.Expressions.Interpreter.InterpretedFrameInfo:ToString():System.String:this (FullOpts)
; ============================================================
+3 (+9.09%) : 297149.dasm - System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:.cctor() (FullOpts)
@@ -24,17 +24,18 @@ G_M58324_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov edx, 0xD1FFAB1E
; gcrRegs +[edx]
mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax+0x68]
call [eax+0x08]<unknown method>
; gcrRegs -[ecx edx] +[eax]
mov edx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
- ;; size=28 bbWeight=1 PerfScore 6.75
+ ;; size=31 bbWeight=1 PerfScore 8.75
G_M58324_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 3, PerfScore 9.50, instruction count 10, allocated bytes for code 33 (MethodHash=ca881c2b) for method System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:.cctor() (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 11.50, instruction count 11, allocated bytes for code 36 (MethodHash=ca881c2b) for method System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:.cctor() (FullOpts)
; ============================================================
+3 (+9.09%) : 296736.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:.cctor() (FullOpts)
@@ -24,17 +24,18 @@ G_M47755_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov edx, 0xD1FFAB1E
; gcrRegs +[edx]
mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax+0x68]
call [eax+0x08]<unknown method>
; gcrRegs -[ecx edx] +[eax]
mov edx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
- ;; size=28 bbWeight=1 PerfScore 6.75
+ ;; size=31 bbWeight=1 PerfScore 8.75
G_M47755_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 3, PerfScore 9.50, instruction count 10, allocated bytes for code 33 (MethodHash=6fdb4574) for method System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:.cctor() (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 11.50, instruction count 11, allocated bytes for code 36 (MethodHash=6fdb4574) for method System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:.cctor() (FullOpts)
; ============================================================
+28 (+9.59%) : 288356.dasm - Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
@@ -8,36 +8,38 @@
; 15 inlinees with PGO data; 14 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T10] ( 8, 9 ) ref -> esi this class-hnd single-def <Xunit.Sdk.MaxConcurrencySyncContext>
+; V00 this [V00,T10] ( 8, 9 ) ref -> [ebp-0x2C] this class-hnd single-def <Xunit.Sdk.MaxConcurrencySyncContext>
;* V01 loc0 [V01 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Xunit.Sdk.XunitWorkerThread]>
;* V02 tmp0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <Xunit.Sdk.XunitWorkerThread>
; V03 tmp1 [V03,T15] ( 2, 2 ) ref -> edi class-hnd single-def "Inlining Arg" <<unknown class>>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Xunit.Sdk.XunitWorkerThread]>
; V05 tmp3 [V05,T06] ( 3, 12 ) ref -> edx class-hnd exact "Inlining Arg" <<unknown class>>
-; V06 tmp4 [V06,T07] ( 3, 12 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
-; V07 tmp5 [V07,T04] ( 4, 16 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "dup spill" <<unknown class>>
+; V06 tmp4 [V06,T07] ( 3, 12 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
+; V07 tmp5 [V07,T01] ( 5, 20 ) ref -> [ebp-0x34] class-hnd exact spill-single-def "dup spill" <<unknown class>>
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref
;* V09 tmp7 [V09,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V10 tmp8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-; V11 tmp9 [V11,T03] ( 3, 17 ) ref -> edi class-hnd exact single-def "Inlining Arg" <<unknown class>>
-; V12 tmp10 [V12,T02] ( 4, 18 ) ref -> ebx class-hnd exact single-def "dup spill" <<unknown class>>
+; V11 tmp9 [V11,T04] ( 3, 17 ) ref -> edi class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V12 tmp10 [V12,T03] ( 5, 19 ) ref -> ebx class-hnd exact single-def "dup spill" <<unknown class>>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
; V14 tmp12 [V14,T14] ( 3, 3 ) ref -> esi class-hnd exact single-def "Inlining Arg" <<unknown class>>
-; V15 tmp13 [V15,T13] ( 4, 4 ) ref -> edi class-hnd exact single-def "dup spill" <<unknown class>>
+; V15 tmp13 [V15,T12] ( 5, 5 ) ref -> edi class-hnd exact single-def "dup spill" <<unknown class>>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
; V17 tmp15 [V17,T08] ( 4, 11.83) ref -> edi single-def "field V01._list (fldOffset=0x0)" P-INDEP
-; V18 tmp16 [V18,T09] ( 3, 7.33) ref -> [ebp-0x34] spill-single-def "field V01._current (fldOffset=0x4)" P-INDEP
+; V18 tmp16 [V18,T09] ( 3, 7.33) ref -> [ebp-0x38] spill-single-def "field V01._current (fldOffset=0x4)" P-INDEP
; V19 tmp17 [V19,T00] ( 6, 17.83) int -> [ebp-0x24] "field V01._index (fldOffset=0x8)" P-INDEP
-; V20 tmp18 [V20,T12] ( 2, 4.50) int -> [ebp-0x28] spill-single-def "field V01._version (fldOffset=0xc)" P-INDEP
+; V20 tmp18 [V20,T13] ( 2, 4.50) int -> [ebp-0x28] spill-single-def "field V01._version (fldOffset=0xc)" P-INDEP
; V21 tmp19 [V21,T16] ( 3, 1.50) ref -> edi single-def "field V04._list (fldOffset=0x0)" P-INDEP
;* V22 tmp20 [V22 ] ( 0, 0 ) ref -> zero-ref single-def "field V04._current (fldOffset=0x4)" P-INDEP
;* V23 tmp21 [V23,T18] ( 0, 0 ) int -> zero-ref single-def "field V04._index (fldOffset=0x8)" P-INDEP
; V24 tmp22 [V24,T17] ( 2, 1 ) int -> ebx single-def "field V04._version (fldOffset=0xc)" P-INDEP
-; V25 tmp23 [V25,T01] ( 3, 19.98) ref -> edx "arr expr"
+; V25 tmp23 [V25,T02] ( 3, 19.98) ref -> edx "arr expr"
; V26 EHSlots [V26 ] ( 1, 1 ) struct (16) [ebp-0x20] do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
; V27 cse0 [V27,T05] ( 2, 8.01) int -> edx "CSE - moderate"
+; TEMP_02 ref -> [ebp-0x3C]
+; TEMP_01 int -> [ebp-0x40]
;
-; Lcl frame size = 40
+; Lcl frame size = 52
G_M36449_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -45,15 +47,16 @@ G_M36449_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 40
+ sub esp, 52
+ vxorps xmm4, xmm4, xmm4
+ vmovdqu ymmword ptr [ebp-0x3C], ymm4
xor eax, eax
- mov dword ptr [ebp-0x20], eax
mov dword ptr [ebp-0x1C], eax
mov dword ptr [ebp-0x18], eax
mov dword ptr [ebp-0x14], eax
mov esi, ecx
; gcrRegs +[esi]
- ;; size=25 bbWeight=1 PerfScore 9.00
+ ;; size=31 bbWeight=1 PerfScore 10.33
G_M36449_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
cmp byte ptr [esi+0x05], 0
je SHORT G_M36449_IG04
@@ -75,15 +78,17 @@ G_M36449_IG04: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {e
cmp dword ptr [ecx], ecx
call [System.Threading.EventWaitHandle:Set():ubyte:this]
; gcrRegs -[ecx]
+ mov gword ptr [ebp-0x2C], esi
+ ; GC ptr vars +{V00}
mov edi, gword ptr [esi+0x0C]
; gcrRegs +[edi]
mov ebx, dword ptr [edi+0x0C]
xor ecx, ecx
mov dword ptr [ebp-0x28], ebx
jmp SHORT G_M36449_IG07
- ;; size=28 bbWeight=0.50 PerfScore 8.12
-G_M36449_IG05: ; bbWeight=2, gcVars=00000200 {V18}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[eax]
+ ;; size=31 bbWeight=0.50 PerfScore 8.62
+G_M36449_IG05: ; bbWeight=2, gcVars=00000600 {V00 V18}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[esi] +[eax]
; GC ptr vars +{V09 V18}
mov edx, gword ptr [eax+0x04]
; gcrRegs +[edx]
@@ -97,34 +102,43 @@ G_M36449_IG05: ; bbWeight=2, gcVars=00000200 {V18}, gcrefRegs=000000C1 {e
; gcrRegs -[edx]
call [<unknown method>]
; gcrRegs -[eax ecx]
- mov ecx, gword ptr [ebp-0x34]
+ mov ecx, gword ptr [ebp-0x38]
; gcrRegs +[ecx]
mov eax, gword ptr [ecx+0x04]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x2C], eax
+ mov gword ptr [ebp-0x30], eax
; GC ptr vars +{V06}
mov edx, gword ptr [eax+0x04]
; gcrRegs +[edx]
- mov gword ptr [ebp-0x30], edx
+ mov gword ptr [ebp-0x34], edx
; GC ptr vars +{V07}
test edx, edx
je SHORT G_M36449_IG10
mov ecx, edx
+ mov gword ptr [ebp-0x3C], ecx
mov edx, 1
; gcrRegs -[edx]
- mov ebx, dword ptr [D1FFAB1EH]
+ mov ebx, gword ptr [ebp-0x34]
+ ; gcrRegs +[ebx]
+ mov ecx, dword ptr [ebx]
+ ; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x2C]
+ mov dword ptr [ebp-0x40], ecx
+ mov ecx, gword ptr [ebp-0x3C]
+ ; gcrRegs +[ecx]
+ mov esi, dword ptr [ebp-0x40]
; GC ptr vars -{V09 V18}
- call [ebx+0x18]<unknown method>
+ call [esi+0x18]<unknown method>
; gcrRegs -[eax ecx]
- mov ecx, gword ptr [ebp-0x30]
+ mov ecx, ebx
; gcrRegs +[ecx]
; GC ptr vars -{V07}
call <unknown method>
- ; gcrRegs -[ecx]
- mov eax, gword ptr [ebp-0x2C]
+ ; gcrRegs -[ecx ebx]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
- ;; size=70 bbWeight=2 PerfScore 56.50
-G_M36449_IG06: ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=83 bbWeight=2 PerfScore 69.00
+G_M36449_IG06: ; bbWeight=2, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref
mov ecx, eax
; gcrRegs +[ecx]
; GC ptr vars -{V06}
@@ -133,57 +147,61 @@ G_M36449_IG06: ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
mov ecx, dword ptr [ebp-0x24]
mov ebx, dword ptr [ebp-0x28]
;; size=13 bbWeight=2 PerfScore 6.50
-G_M36449_IG07: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M36449_IG07: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
cmp ebx, dword ptr [edi+0x0C]
jne G_M36449_IG17
;; size=9 bbWeight=4 PerfScore 16.00
-G_M36449_IG08: ; bbWeight=4.00, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36449_IG08: ; bbWeight=4.00, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [edi+0x08]
cmp ecx, edx
jae SHORT G_M36449_IG11
;; size=7 bbWeight=4.00 PerfScore 13.01
-G_M36449_IG09: ; bbWeight=3.33, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36449_IG09: ; bbWeight=3.33, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
mov edx, gword ptr [edi+0x04]
; gcrRegs +[edx]
cmp ecx, dword ptr [edx+0x04]
jae SHORT G_M36449_IG16
mov eax, gword ptr [edx+4*ecx+0x08]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x34], eax
+ mov gword ptr [ebp-0x38], eax
; GC ptr vars +{V18}
inc ecx
mov dword ptr [ebp-0x24], ecx
- jmp SHORT G_M36449_IG05
- ;; size=21 bbWeight=3.33 PerfScore 40.80
-G_M36449_IG10: ; bbWeight=1, gcVars=00000080 {V06}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ jmp G_M36449_IG05
+ ;; size=24 bbWeight=3.33 PerfScore 40.80
+G_M36449_IG10: ; bbWeight=1, gcVars=00000480 {V00 V06}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax edx]
; GC ptr vars -{V18} +{V06 V07}
- mov eax, gword ptr [ebp-0x2C]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
jmp SHORT G_M36449_IG06
;; size=5 bbWeight=1 PerfScore 3.00
-G_M36449_IG11: ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M36449_IG11: ; bbWeight=4, gcVars=00000400 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax edi]
; GC ptr vars -{V06 V07}
+ mov esi, gword ptr [ebp-0x2C]
+ ; gcrRegs +[esi]
mov edi, gword ptr [esi+0x08]
; gcrRegs +[edi]
mov ebx, gword ptr [edi+0x04]
; gcrRegs +[ebx]
test ebx, ebx
je SHORT G_M36449_IG13
- ;; size=10 bbWeight=4 PerfScore 21.00
-G_M36449_IG12: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=13 bbWeight=4 PerfScore 25.00
+G_M36449_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+ ; GC ptr vars -{V00}
mov ecx, ebx
; gcrRegs +[ecx]
mov edx, 1
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ebx]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx]
mov ecx, ebx
; gcrRegs +[ecx]
call [System.GC:SuppressFinalize(System.Object)]
; gcrRegs -[ecx ebx]
- ;; size=23 bbWeight=0.50 PerfScore 4.38
+ ;; size=23 bbWeight=0.50 PerfScore 5.38
G_M36449_IG13: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, edi
; gcrRegs +[ecx]
@@ -197,14 +215,15 @@ G_M36449_IG13: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
mov ecx, edi
; gcrRegs +[ecx]
mov edx, 1
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [edi]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx]
mov ecx, edi
; gcrRegs +[ecx]
call [System.GC:SuppressFinalize(System.Object)]
; gcrRegs -[ecx edi]
- ;; size=40 bbWeight=0.50 PerfScore 7.62
+ ;; size=40 bbWeight=0.50 PerfScore 8.62
G_M36449_IG14: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, esi
; gcrRegs +[ecx]
@@ -227,6 +246,6 @@ G_M36449_IG17: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 292, prolog size 23, PerfScore 194.06, instruction count 103, allocated bytes for code 292 (MethodHash=2fc9719e) for method Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
+; Total bytes of code 320, prolog size 29, PerfScore 214.39, instruction count 114, allocated bytes for code 320 (MethodHash=2fc9719e) for method Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
; ============================================================
libraries_tests.run.windows.x86.Release.mch
-36 (-7.30%) : 558765.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTime[],ubyte):System.String (Tier0-FullOpts)
@@ -12,14 +12,14 @@
; V01 arg1 [V01,T05] ( 4, 7 ) ref -> edi class-hnd single-def <System.String>
; V02 arg2 [V02,T04] ( 6, 9 ) ref -> esi class-hnd single-def <System.DateTime[]>
; V03 arg3 [V03,T11] ( 2, 5 ) ubyte -> [ebp+0x08] single-def
-; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x20] class-hnd exact spill-single-def <System.IO.MemoryStream>
+; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x1C] class-hnd exact spill-single-def <System.IO.MemoryStream>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
-; V06 loc2 [V06,T00] ( 11, 17 ) ref -> [ebp-0x24] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
+; V06 loc2 [V06,T00] ( 16, 24.50) ref -> [ebp-0x20] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
; V07 loc3 [V07,T01] ( 5, 17 ) int -> [ebp-0x10]
-; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
-; V09 tmp1 [V09,T02] ( 6, 12 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
-; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-; V11 tmp3 [V11,T03] ( 6, 12 ) ref -> [ebp-0x34] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
+; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x24] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
+; V09 tmp1 [V09,T03] ( 6, 12 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
+; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V11 tmp3 [V11,T02] ( 7, 14 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp5 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -34,11 +34,11 @@
; V23 tmp15 [V23,T12] ( 2, 4 ) ref -> edx single-def "argument with side effect"
; V24 tmp16 [V24,T13] ( 2, 4 ) ref -> esi single-def "argument with side effect"
; V25 tmp17 [V25,T14] ( 2, 4 ) ref -> esi single-def "argument with side effect"
-; V26 cse0 [V26,T06] ( 6, 8.50) int -> [ebp-0x14] hoist multi-def "CSE - moderate"
-; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
-; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x1C] spill-single-def "CSE - moderate"
+; V26 cse0 [V26,T06] ( 6, 8.50) int -> ebx hoist multi-def "CSE - moderate"
+; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 36
G_M543_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -46,32 +46,31 @@ G_M543_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- sub esp, 40
+ sub esp, 36
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
- mov ebx, dword ptr [ebp+0x08]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=13 bbWeight=1 PerfScore 5.00
G_M543_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E ; System.IO.MemoryStream
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x28], eax
+ mov gword ptr [ebp-0x24], eax
; GC ptr vars +{V08}
mov ecx, eax
; gcrRegs +[ecx]
xor edx, edx
call [System.IO.MemoryStream:.ctor(int):this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x28]
+ mov eax, gword ptr [ebp-0x24]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x20], eax
+ mov gword ptr [ebp-0x1C], eax
; GC ptr vars +{V04}
mov ecx, 0xD1FFAB1E ; System.Text.UTF8Encoding
; GC ptr vars -{V08}
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x2C], eax
+ mov gword ptr [ebp-0x28], eax
; GC ptr vars +{V09}
mov byte ptr [eax+0x14], 1
mov dword ptr [eax+0x10], 0xFDE9
@@ -79,19 +78,19 @@ G_M543_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=000000
; gcrRegs +[ecx]
call [System.Text.UTF8Encoding:SetDefaultFallbacks():this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x2C]
+ mov eax, gword ptr [ebp-0x28]
; gcrRegs +[eax]
mov byte ptr [eax+0x15], 0
mov ecx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x30], eax
+ mov gword ptr [ebp-0x2C], eax
; GC ptr vars +{V10}
- push gword ptr [ebp-0x2C]
+ push gword ptr [ebp-0x28]
push 0x400
push 1
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x20]
+ mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
; GC ptr vars -{V09}
call [<unknown method>]
@@ -99,11 +98,11 @@ G_M543_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=000000
mov ecx, 0xD1FFAB1E ; Newtonsoft.Json.JsonTextWriter
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x34], eax
+ mov gword ptr [ebp-0x30], eax
; GC ptr vars +{V11}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x30]
+ mov edx, gword ptr [ebp-0x2C]
; gcrRegs +[edx]
; GC ptr vars -{V10}
call [Newtonsoft.Json.JsonTextWriter:.ctor(System.IO.TextWriter):this]
@@ -111,51 +110,50 @@ G_M543_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=000000
xor edx, edx
test byte ptr [ebp+0x14], 1
setne dl
- mov ecx, gword ptr [ebp-0x34]
+ mov ecx, gword ptr [ebp-0x30]
; gcrRegs +[ecx]
call [Newtonsoft.Json.JsonWriter:set_Formatting(int):this]
; gcrRegs -[ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
mov dword ptr [eax+0x20], 2
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x18], edx
+ mov edx, dword ptr [eax]
+ mov edx, dword ptr [edx+0x4C]
+ mov dword ptr [ebp-0x14], edx
call [edx+0x04]<unknown method>
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x24], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V06}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [ebp-0x18]
+ mov edx, dword ptr [ebp-0x14]
+ ;; size=178 bbWeight=1 PerfScore 54.00
+G_M543_IG03: ; bbWeight=1, isz, extend
; GC ptr vars -{V11}
call [edx+0x10]<unknown method>
; gcrRegs -[eax ecx]
- ;; size=182 bbWeight=1 PerfScore 55.00
-G_M543_IG03: ; bbWeight=1, extend
xor eax, eax
mov dword ptr [ebp-0x10], eax
mov edx, dword ptr [esi+0x04]
- mov dword ptr [ebp-0x1C], edx
+ mov dword ptr [ebp-0x18], edx
test edx, edx
- jle G_M543_IG09
- ;; size=19 bbWeight=1 PerfScore 5.50
+ jle SHORT G_M543_IG06
+ ;; size=18 bbWeight=1 PerfScore 8.50
G_M543_IG04: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x14], ecx
- ;; size=9 bbWeight=0.50 PerfScore 1.50
-G_M543_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov dword ptr [ebp+0x08], ebx
- movzx ebx, bl
- push ebx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
+ mov ebx, dword ptr [ecx]
+ mov ebx, dword ptr [ebx+0x50]
+ ;; size=8 bbWeight=0.50 PerfScore 2.50
+G_M543_IG05: ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref
+ movzx edx, byte ptr [ebp+0x08]
+ push edx
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [ebp-0x14]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx]
mov eax, dword ptr [ebp-0x10]
@@ -165,75 +163,78 @@ G_M543_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=000000
; byrRegs +[ecx]
push dword ptr [ecx+0x04]
push dword ptr [ecx]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x10]<unknown method>
; gcrRegs -[ecx]
mov eax, dword ptr [ebp-0x10]
inc eax
- cmp dword ptr [ebp-0x1C], eax
+ cmp dword ptr [ebp-0x18], eax
mov dword ptr [ebp-0x10], eax
- mov dword ptr [ebp-0x14], ebx
jg G_M543_IG08
- ;; size=69 bbWeight=4 PerfScore 103.00
-G_M543_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=57 bbWeight=4 PerfScore 98.00
+G_M543_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
movzx ecx, byte ptr [ebp+0x08]
push ecx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ecx]
+ mov ebx, dword ptr [eax+0x50]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx edi]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x18]
+ mov edi, dword ptr [ebp-0x14]
call [edi+0x18]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 0
- jbe G_M543_IG10
+ cmp dword ptr [ebp-0x18], 0
+ jbe G_M543_IG09
lea ecx, bword ptr [esi+0x08]
; byrRegs +[ecx]
push dword ptr [ecx+0x04]
push dword ptr [ecx]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x10]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 1
- jbe G_M543_IG10
+ cmp dword ptr [ebp-0x18], 1
+ jbe SHORT G_M543_IG09
...
-36 (-7.19%) : 557072.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTimeOffset[],ubyte):System.String (Tier0-FullOpts)
@@ -12,14 +12,14 @@
; V01 arg1 [V01,T05] ( 4, 7 ) ref -> edi class-hnd single-def <System.String>
; V02 arg2 [V02,T04] ( 6, 9 ) ref -> esi class-hnd single-def <System.DateTimeOffset[]>
; V03 arg3 [V03,T11] ( 2, 5 ) ubyte -> [ebp+0x08] single-def
-; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x20] class-hnd exact spill-single-def <System.IO.MemoryStream>
+; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x1C] class-hnd exact spill-single-def <System.IO.MemoryStream>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
-; V06 loc2 [V06,T00] ( 11, 17 ) ref -> [ebp-0x24] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
+; V06 loc2 [V06,T00] ( 16, 24.50) ref -> [ebp-0x20] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
; V07 loc3 [V07,T01] ( 5, 17 ) int -> [ebp-0x10]
-; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
-; V09 tmp1 [V09,T02] ( 6, 12 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
-; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-; V11 tmp3 [V11,T03] ( 6, 12 ) ref -> [ebp-0x34] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
+; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x24] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
+; V09 tmp1 [V09,T03] ( 6, 12 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
+; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V11 tmp3 [V11,T02] ( 7, 14 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp5 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -34,11 +34,11 @@
; V23 tmp15 [V23,T12] ( 2, 4 ) ref -> edx single-def "argument with side effect"
; V24 tmp16 [V24,T13] ( 2, 4 ) ref -> esi single-def "argument with side effect"
; V25 tmp17 [V25,T14] ( 2, 4 ) ref -> esi single-def "argument with side effect"
-; V26 cse0 [V26,T06] ( 6, 8.50) int -> [ebp-0x14] hoist multi-def "CSE - moderate"
-; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
-; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x1C] spill-single-def "CSE - moderate"
+; V26 cse0 [V26,T06] ( 6, 8.50) int -> ebx hoist multi-def "CSE - moderate"
+; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 36
G_M2706_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -46,32 +46,31 @@ G_M2706_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- sub esp, 40
+ sub esp, 36
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
- mov ebx, dword ptr [ebp+0x08]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=13 bbWeight=1 PerfScore 5.00
G_M2706_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E ; System.IO.MemoryStream
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x28], eax
+ mov gword ptr [ebp-0x24], eax
; GC ptr vars +{V08}
mov ecx, eax
; gcrRegs +[ecx]
xor edx, edx
call [System.IO.MemoryStream:.ctor(int):this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x28]
+ mov eax, gword ptr [ebp-0x24]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x20], eax
+ mov gword ptr [ebp-0x1C], eax
; GC ptr vars +{V04}
mov ecx, 0xD1FFAB1E ; System.Text.UTF8Encoding
; GC ptr vars -{V08}
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x2C], eax
+ mov gword ptr [ebp-0x28], eax
; GC ptr vars +{V09}
mov byte ptr [eax+0x14], 1
mov dword ptr [eax+0x10], 0xFDE9
@@ -79,19 +78,19 @@ G_M2706_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
; gcrRegs +[ecx]
call [System.Text.UTF8Encoding:SetDefaultFallbacks():this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x2C]
+ mov eax, gword ptr [ebp-0x28]
; gcrRegs +[eax]
mov byte ptr [eax+0x15], 0
mov ecx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x30], eax
+ mov gword ptr [ebp-0x2C], eax
; GC ptr vars +{V10}
- push gword ptr [ebp-0x2C]
+ push gword ptr [ebp-0x28]
push 0x400
push 1
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x20]
+ mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
; GC ptr vars -{V09}
call [<unknown method>]
@@ -99,11 +98,11 @@ G_M2706_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
mov ecx, 0xD1FFAB1E ; Newtonsoft.Json.JsonTextWriter
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x34], eax
+ mov gword ptr [ebp-0x30], eax
; GC ptr vars +{V11}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x30]
+ mov edx, gword ptr [ebp-0x2C]
; gcrRegs +[edx]
; GC ptr vars -{V10}
call [Newtonsoft.Json.JsonTextWriter:.ctor(System.IO.TextWriter):this]
@@ -111,51 +110,50 @@ G_M2706_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
xor edx, edx
test byte ptr [ebp+0x14], 1
setne dl
- mov ecx, gword ptr [ebp-0x34]
+ mov ecx, gword ptr [ebp-0x30]
; gcrRegs +[ecx]
call [Newtonsoft.Json.JsonWriter:set_Formatting(int):this]
; gcrRegs -[ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
mov dword ptr [eax+0x20], 2
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x18], edx
+ mov edx, dword ptr [eax]
+ mov edx, dword ptr [edx+0x4C]
+ mov dword ptr [ebp-0x14], edx
call [edx+0x04]<unknown method>
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x24], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V06}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [ebp-0x18]
+ mov edx, dword ptr [ebp-0x14]
+ ;; size=178 bbWeight=1 PerfScore 54.00
+G_M2706_IG03: ; bbWeight=1, isz, extend
; GC ptr vars -{V11}
call [edx+0x10]<unknown method>
; gcrRegs -[eax ecx]
- ;; size=182 bbWeight=1 PerfScore 55.00
-G_M2706_IG03: ; bbWeight=1, extend
xor eax, eax
mov dword ptr [ebp-0x10], eax
mov edx, dword ptr [esi+0x04]
- mov dword ptr [ebp-0x1C], edx
+ mov dword ptr [ebp-0x18], edx
test edx, edx
- jle G_M2706_IG09
- ;; size=19 bbWeight=1 PerfScore 5.50
+ jle SHORT G_M2706_IG06
+ ;; size=18 bbWeight=1 PerfScore 8.50
G_M2706_IG04: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x14], ecx
- ;; size=9 bbWeight=0.50 PerfScore 1.50
-G_M2706_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov dword ptr [ebp+0x08], ebx
- movzx ebx, bl
- push ebx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
+ mov ebx, dword ptr [ecx]
+ mov ebx, dword ptr [ebx+0x50]
+ ;; size=8 bbWeight=0.50 PerfScore 2.50
+G_M2706_IG05: ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref
+ movzx edx, byte ptr [ebp+0x08]
+ push edx
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [ebp-0x14]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx]
mov eax, dword ptr [ebp-0x10]
@@ -167,77 +165,80 @@ G_M2706_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
push dword ptr [ecx+0x08]
push dword ptr [ecx+0x04]
push dword ptr [ecx]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x14]<unknown method>
; gcrRegs -[ecx]
mov eax, dword ptr [ebp-0x10]
inc eax
- cmp dword ptr [ebp-0x1C], eax
+ cmp dword ptr [ebp-0x18], eax
mov dword ptr [ebp-0x10], eax
- mov dword ptr [ebp-0x14], ebx
- jg G_M2706_IG08
- ;; size=71 bbWeight=4 PerfScore 113.00
-G_M2706_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ jg G_M2706_IG09
+ ;; size=59 bbWeight=4 PerfScore 108.00
+G_M2706_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
movzx ecx, byte ptr [ebp+0x08]
push ecx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ecx]
+ mov ebx, dword ptr [eax+0x50]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx edi]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x18]
+ mov edi, dword ptr [ebp-0x14]
call [edi+0x18]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 0
+ cmp dword ptr [ebp-0x18], 0
jbe G_M2706_IG10
lea ecx, bword ptr [esi+0x08]
; byrRegs +[ecx]
push dword ptr [ecx+0x08]
push dword ptr [ecx+0x04]
push dword ptr [ecx]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x14]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 1
- jbe G_M2706_IG10
+ cmp dword ptr [ebp-0x18], 1
...
-36 (-7.13%) : 557483.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetGuidsExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.Guid[],ubyte):System.String (Tier0-FullOpts)
@@ -12,14 +12,14 @@
; V01 arg1 [V01,T05] ( 4, 7 ) ref -> edi class-hnd single-def <System.String>
; V02 arg2 [V02,T04] ( 6, 9 ) ref -> esi class-hnd single-def <System.Guid[]>
; V03 arg3 [V03,T11] ( 2, 5 ) ubyte -> [ebp+0x08] single-def
-; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x20] class-hnd exact spill-single-def <System.IO.MemoryStream>
+; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x1C] class-hnd exact spill-single-def <System.IO.MemoryStream>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
-; V06 loc2 [V06,T00] ( 11, 17 ) ref -> [ebp-0x24] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
+; V06 loc2 [V06,T00] ( 16, 24.50) ref -> [ebp-0x20] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
; V07 loc3 [V07,T01] ( 5, 17 ) int -> [ebp-0x10]
-; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
-; V09 tmp1 [V09,T02] ( 6, 12 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
-; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-; V11 tmp3 [V11,T03] ( 6, 12 ) ref -> [ebp-0x34] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
+; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x24] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
+; V09 tmp1 [V09,T03] ( 6, 12 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
+; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V11 tmp3 [V11,T02] ( 7, 14 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp5 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -34,11 +34,11 @@
; V23 tmp15 [V23,T12] ( 2, 4 ) ref -> edx single-def "argument with side effect"
; V24 tmp16 [V24,T13] ( 2, 4 ) ref -> esi single-def "argument with side effect"
; V25 tmp17 [V25,T14] ( 2, 4 ) ref -> esi single-def "argument with side effect"
-; V26 cse0 [V26,T06] ( 6, 8.50) int -> [ebp-0x14] hoist multi-def "CSE - moderate"
-; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
-; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x1C] spill-single-def "CSE - moderate"
+; V26 cse0 [V26,T06] ( 6, 8.50) int -> ebx hoist multi-def "CSE - moderate"
+; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 36
G_M2794_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -46,32 +46,31 @@ G_M2794_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- sub esp, 40
+ sub esp, 36
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
- mov ebx, dword ptr [ebp+0x08]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=13 bbWeight=1 PerfScore 5.00
G_M2794_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E ; System.IO.MemoryStream
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x28], eax
+ mov gword ptr [ebp-0x24], eax
; GC ptr vars +{V08}
mov ecx, eax
; gcrRegs +[ecx]
xor edx, edx
call [System.IO.MemoryStream:.ctor(int):this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x28]
+ mov eax, gword ptr [ebp-0x24]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x20], eax
+ mov gword ptr [ebp-0x1C], eax
; GC ptr vars +{V04}
mov ecx, 0xD1FFAB1E ; System.Text.UTF8Encoding
; GC ptr vars -{V08}
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x2C], eax
+ mov gword ptr [ebp-0x28], eax
; GC ptr vars +{V09}
mov byte ptr [eax+0x14], 1
mov dword ptr [eax+0x10], 0xFDE9
@@ -79,19 +78,19 @@ G_M2794_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
; gcrRegs +[ecx]
call [System.Text.UTF8Encoding:SetDefaultFallbacks():this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x2C]
+ mov eax, gword ptr [ebp-0x28]
; gcrRegs +[eax]
mov byte ptr [eax+0x15], 0
mov ecx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x30], eax
+ mov gword ptr [ebp-0x2C], eax
; GC ptr vars +{V10}
- push gword ptr [ebp-0x2C]
+ push gword ptr [ebp-0x28]
push 0x400
push 1
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x20]
+ mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
; GC ptr vars -{V09}
call [<unknown method>]
@@ -99,11 +98,11 @@ G_M2794_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
mov ecx, 0xD1FFAB1E ; Newtonsoft.Json.JsonTextWriter
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x34], eax
+ mov gword ptr [ebp-0x30], eax
; GC ptr vars +{V11}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x30]
+ mov edx, gword ptr [ebp-0x2C]
; gcrRegs +[edx]
; GC ptr vars -{V10}
call [Newtonsoft.Json.JsonTextWriter:.ctor(System.IO.TextWriter):this]
@@ -111,51 +110,50 @@ G_M2794_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
xor edx, edx
test byte ptr [ebp+0x14], 1
setne dl
- mov ecx, gword ptr [ebp-0x34]
+ mov ecx, gword ptr [ebp-0x30]
; gcrRegs +[ecx]
call [Newtonsoft.Json.JsonWriter:set_Formatting(int):this]
; gcrRegs -[ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
mov dword ptr [eax+0x20], 2
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x18], edx
+ mov edx, dword ptr [eax]
+ mov edx, dword ptr [edx+0x4C]
+ mov dword ptr [ebp-0x14], edx
call [edx+0x04]<unknown method>
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x24], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V06}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [ebp-0x18]
+ mov edx, dword ptr [ebp-0x14]
+ ;; size=178 bbWeight=1 PerfScore 54.00
+G_M2794_IG03: ; bbWeight=1, isz, extend
; GC ptr vars -{V11}
call [edx+0x10]<unknown method>
; gcrRegs -[eax ecx]
- ;; size=182 bbWeight=1 PerfScore 55.00
-G_M2794_IG03: ; bbWeight=1, extend
xor eax, eax
mov dword ptr [ebp-0x10], eax
mov edx, dword ptr [esi+0x04]
- mov dword ptr [ebp-0x1C], edx
+ mov dword ptr [ebp-0x18], edx
test edx, edx
- jle G_M2794_IG09
- ;; size=19 bbWeight=1 PerfScore 5.50
+ jle SHORT G_M2794_IG06
+ ;; size=18 bbWeight=1 PerfScore 8.50
G_M2794_IG04: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x14], ecx
- ;; size=9 bbWeight=0.50 PerfScore 1.50
-G_M2794_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov dword ptr [ebp+0x08], ebx
- movzx ebx, bl
- push ebx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
+ mov ebx, dword ptr [ecx]
+ mov ebx, dword ptr [ebx+0x50]
+ ;; size=8 bbWeight=0.50 PerfScore 2.50
+G_M2794_IG05: ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref
+ movzx edx, byte ptr [ebp+0x08]
+ push edx
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [ebp-0x14]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx]
mov eax, dword ptr [ebp-0x10]
@@ -164,69 +162,72 @@ G_M2794_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
vmovups xmm0, xmmword ptr [esi+ecx+0x08]
sub esp, 16
vmovups xmmword ptr [esp], xmm0
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x18]<unknown method>
; gcrRegs -[ecx]
mov eax, dword ptr [ebp-0x10]
inc eax
- cmp dword ptr [ebp-0x1C], eax
+ cmp dword ptr [ebp-0x18], eax
mov dword ptr [ebp-0x10], eax
- mov dword ptr [ebp-0x14], ebx
jg G_M2794_IG08
- ;; size=71 bbWeight=4 PerfScore 111.00
-G_M2794_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=59 bbWeight=4 PerfScore 106.00
+G_M2794_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
movzx ecx, byte ptr [ebp+0x08]
push ecx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ecx]
+ mov ebx, dword ptr [eax+0x50]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx edi]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x18]
+ mov edi, dword ptr [ebp-0x14]
call [edi+0x18]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 0
- jbe G_M2794_IG10
+ cmp dword ptr [ebp-0x18], 0
+ jbe G_M2794_IG09
vmovups xmm0, xmmword ptr [esi+0x08]
sub esp, 16
vmovups xmmword ptr [esp], xmm0
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x18]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 1
- jbe G_M2794_IG10
+ cmp dword ptr [ebp-0x18], 1
+ jbe SHORT G_M2794_IG09
vmovups xmm0, xmmword ptr [esi+0x18]
sub esp, 16
vmovups xmmword ptr [esp], xmm0
...
+15 (+2.84%) : 170747.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
@@ -9,12 +9,12 @@
; Final local variable assignments
;
; V00 loc0 [V00,T14] ( 5, 4 ) int -> [ebp-0x24] do-not-enreg[Z] EH-live
-; V01 loc1 [V01,T03] ( 4, 9 ) ref -> [ebp-0x34] class-hnd exact EH-live spill-single-def <System.Collections.Hashtable>
+; V01 loc1 [V01,T02] ( 5, 13 ) ref -> [ebp-0x38] class-hnd exact EH-live single-def <System.Collections.Hashtable>
; V02 loc2 [V02,T00] ( 6, 27 ) int -> [ebp-0x28] do-not-enreg[Z] EH-live
;* V03 loc3 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
;* V04 loc4 [V04 ] ( 0, 0 ) int -> zero-ref
-; V05 loc5 [V05,T12] ( 2, 5 ) ref -> [ebp-0x38] class-hnd exact spill-single-def <System.String>
-; V06 loc6 [V06,T13] ( 2, 5 ) ref -> esi class-hnd exact <System.String>
+; V05 loc5 [V05,T12] ( 2, 5 ) ref -> [ebp-0x3C] class-hnd exact spill-single-def <System.String>
+; V06 loc6 [V06,T13] ( 2, 5 ) ref -> edi class-hnd exact <System.String>
;* V07 loc7 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Collections.Hashtable>
;* V08 loc8 [V08 ] ( 0, 0 ) int -> zero-ref
; V09 tmp0 [V09,T08] ( 3, 6 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <System.Collections.Hashtable>
@@ -34,30 +34,30 @@
;* V23 tmp14 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V24 tmp15 [V24,T24] ( 0, 0 ) short -> zero-ref "Inlining Arg"
;* V25 tmp16 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V26 tmp17 [V26,T07] ( 6, 6 ) int -> ebx "Inline return value spill temp"
+; V26 tmp17 [V26,T07] ( 6, 6 ) int -> [ebp-0x2C] spill-single-def "Inline return value spill temp"
;* V27 tmp18 [V27 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V28 tmp19 [V28 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V29 tmp20 [V29 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V30 tmp21 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V31 tmp22 [V31 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V32 tmp23 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V33 tmp24 [V33,T05] ( 4, 8 ) int -> ebx "Inlining Arg"
+; V33 tmp24 [V33,T05] ( 4, 8 ) int -> ecx "Inlining Arg"
;* V34 tmp25 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V35 tmp26 [V35,T10] ( 3, 6 ) int -> edi "Inlining Arg"
-; V36 tmp27 [V36,T15] ( 2, 4 ) byref -> esi "Inlining Arg"
+; V35 tmp26 [V35,T10] ( 3, 6 ) int -> ebx "Inlining Arg"
+; V36 tmp27 [V36,T15] ( 2, 4 ) byref -> edi "Inlining Arg"
; V37 tmp28 [V37,T16] ( 2, 4 ) ref -> eax single-def "Single return block return value"
-; V38 FramesRoot [V38,T11] ( 5, 5 ) int -> [ebp-0x2C] do-not-enreg[H] EH-live "Pinvoke FrameListRoot"
-; V39 PInvokeFrame [V39 ] ( 8, 8 ) struct (32) [ebp-0x58] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+; V38 FramesRoot [V38,T11] ( 5, 5 ) int -> [ebp-0x30] do-not-enreg[H] EH-live "Pinvoke FrameListRoot"
+; V39 PInvokeFrame [V39 ] ( 8, 8 ) struct (32) [ebp-0x5C] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
;* V40 tmp31 [V40 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
-; V41 tmp32 [V41,T02] ( 2, 16 ) int -> [ebp-0x30] do-not-enreg[Z] EH-live "field V03._length (fldOffset=0x4)" P-INDEP
+; V41 tmp32 [V41,T03] ( 2, 16 ) int -> [ebp-0x34] do-not-enreg[Z] EH-live "field V03._length (fldOffset=0x4)" P-INDEP
;* V42 tmp33 [V42 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x4)" P-INDEP
;* V44 tmp35 [V44 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
;* V45 tmp36 [V45 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x4)" P-INDEP
-; V46 tmp37 [V46,T04] ( 5, 8 ) byref -> esi "field V15._reference (fldOffset=0x0)" P-INDEP
-; V47 tmp38 [V47,T01] ( 8, 25 ) int -> edi "field V15._length (fldOffset=0x4)" P-INDEP
-; V48 tmp39 [V48,T17] ( 2, 2 ) byref -> esi "field V16._reference (fldOffset=0x0)" P-INDEP
-; V49 tmp40 [V49,T20] ( 2, 2 ) int -> edi "field V16._length (fldOffset=0x4)" P-INDEP
+; V46 tmp37 [V46,T04] ( 5, 8 ) byref -> edi "field V15._reference (fldOffset=0x0)" P-INDEP
+; V47 tmp38 [V47,T01] ( 8, 25 ) int -> ebx "field V15._length (fldOffset=0x4)" P-INDEP
+; V48 tmp39 [V48,T17] ( 2, 2 ) byref -> edi "field V16._reference (fldOffset=0x0)" P-INDEP
+; V49 tmp40 [V49,T20] ( 2, 2 ) int -> ebx "field V16._length (fldOffset=0x4)" P-INDEP
;* V50 tmp41 [V50 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
;* V51 tmp42 [V51 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x4)" P-INDEP
;* V52 tmp43 [V52 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
@@ -67,13 +67,13 @@
;* V56 tmp47 [V56 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
;* V57 tmp48 [V57 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x4)" P-INDEP
; V58 tmp49 [V58,T18] ( 2, 2 ) byref -> eax "field V31._reference (fldOffset=0x0)" P-INDEP
-; V59 tmp50 [V59,T21] ( 2, 2 ) int -> edx "field V31._length (fldOffset=0x4)" P-INDEP
-; V60 tmp51 [V60,T19] ( 2, 2 ) byref -> esi "field V34._reference (fldOffset=0x0)" P-INDEP
-; V61 tmp52 [V61,T22] ( 2, 2 ) int -> edi "field V34._length (fldOffset=0x4)" P-INDEP
+; V59 tmp50 [V59,T21] ( 2, 2 ) int -> ecx "field V31._length (fldOffset=0x4)" P-INDEP
+; V60 tmp51 [V60,T19] ( 2, 2 ) byref -> edi "field V34._reference (fldOffset=0x0)" P-INDEP
+; V61 tmp52 [V61,T22] ( 2, 2 ) int -> ebx "field V34._length (fldOffset=0x4)" P-INDEP
;* V62 tmp53 [V62,T06] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V63 EHSlots [V63 ] ( 1, 1 ) struct (16) [ebp-0x20] do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
;
-; Lcl frame size = 76
+; Lcl frame size = 80
G_M17506_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -81,23 +81,23 @@ G_M17506_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 76
+ sub esp, 80
vzeroupper
xor ecx, ecx
mov dword ptr [ebp-0x18], ecx
;; size=17 bbWeight=1 PerfScore 6.75
G_M17506_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- lea edi, [ebp-0x54]
+ lea edi, [ebp-0x58]
call CORINFO_HELP_INIT_PINVOKE_FRAME
- mov dword ptr [ebp-0x2C], esi
+ mov dword ptr [ebp-0x30], esi
mov eax, ebp
- mov dword ptr [ebp-0x40], eax
- mov dword ptr [ebp-0x4C], 0xD1FFAB1E
- mov eax, esp
- mov dword ptr [ebp-0x48], eax
- lea eax, G_M17506_IG05
mov dword ptr [ebp-0x44], eax
- mov eax, dword ptr [ebp-0x2C]
+ mov dword ptr [ebp-0x50], 0xD1FFAB1E
+ mov eax, esp
+ mov dword ptr [ebp-0x4C], eax
+ lea eax, G_M17506_IG05
+ mov dword ptr [ebp-0x48], eax
+ mov eax, dword ptr [ebp-0x30]
mov byte ptr [eax+0x08], 0
;; size=44 bbWeight=1 PerfScore 10.00
G_M17506_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
@@ -108,7 +108,7 @@ G_M17506_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=2 bbWeight=1 PerfScore 3.00
G_M17506_IG05: ; bbWeight=1, isz, extend
mov esi, eax
- mov eax, dword ptr [ebp-0x2C]
+ mov eax, dword ptr [ebp-0x30]
mov byte ptr [eax+0x08], 1
cmp dword ptr [D1FFAB1EH], 0
je SHORT G_M17506_IG06
@@ -116,7 +116,7 @@ G_M17506_IG05: ; bbWeight=1, isz, extend
;; size=23 bbWeight=1 PerfScore 7.25
G_M17506_IG06: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
xor ecx, ecx
- mov dword ptr [ebp-0x44], ecx
+ mov dword ptr [ebp-0x48], ecx
mov dword ptr [ebp-0x24], esi
cmp dword ptr [ebp-0x24], 0
je G_M17506_IG21
@@ -135,128 +135,136 @@ G_M17506_IG07: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
xor edx, edx
call [<unknown method>]
; gcrRegs -[eax ecx]
- mov gword ptr [ebp-0x34], esi
+ mov gword ptr [ebp-0x38], esi
; GC ptr vars +{V01}
mov ecx, dword ptr [ebp-0x24]
mov dword ptr [ebp-0x28], ecx
;; size=47 bbWeight=1 PerfScore 13.25
-G_M17506_IG08: ; bbWeight=8, gcVars=00000008 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[esi]
+G_M17506_IG08: ; bbWeight=8, gcVars=00000004 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
cmp dword ptr [ebp-0x28], 0
jne SHORT G_M17506_IG11
;; size=6 bbWeight=8 PerfScore 24.00
-G_M17506_IG09: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- xor esi, esi
- ; byrRegs +[esi]
+G_M17506_IG09: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
xor edi, edi
+ ; byrRegs +[edi]
+ xor ebx, ebx
jmp SHORT G_M17506_IG12
;; size=6 bbWeight=4 PerfScore 10.00
G_M17506_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; byrRegs -[esi]
+ ; gcrRegs -[esi]
+ ; byrRegs -[edi]
; GC ptr vars -{V01}
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M17506_IG11: ; bbWeight=1, gcVars=00000008 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; GC ptr vars +{V01}
+G_M17506_IG11: ; bbWeight=1, gcVars=00000004 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs +[esi]
+ ; GC ptr vars +{V01 V02}
mov ecx, dword ptr [ebp-0x28]
call [<unknown method>]
test eax, eax
jl SHORT G_M17506_IG10
- mov esi, dword ptr [ebp-0x28]
- mov edi, eax
+ mov edi, dword ptr [ebp-0x28]
+ mov ebx, eax
;; size=18 bbWeight=1 PerfScore 6.50
-G_M17506_IG12: ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
- ; byrRegs +[esi]
- mov dword ptr [ebp-0x30], edi
- test edi, edi
+G_M17506_IG12: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+ ; byrRegs +[edi]
+ mov dword ptr [ebp-0x34], ebx
+ test ebx, ebx
je G_M17506_IG17
;; size=11 bbWeight=8 PerfScore 18.00
-G_M17506_IG13: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
+G_M17506_IG13: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
mov ecx, 1
call [<unknown method>]
mov ecx, 1
call [<unknown method>]
mov ecx, 1
call [<unknown method>]
- push edi
+ push ebx
mov edx, 61
- mov ecx, esi
+ mov ecx, edi
; byrRegs +[ecx]
call [<unknown method>]
; byrRegs -[ecx]
- mov ebx, eax
- test ebx, ebx
- jle SHORT G_M17506_IG16
- cmp ebx, edi
+ mov dword ptr [ebp-0x2C], eax
+ test eax, eax
+ jle G_M17506_IG16
+ cmp eax, ebx
ja SHORT G_M17506_IG10
- mov ecx, ebx
+ mov ecx, eax
not ecx
shr ecx, 31
call [<unknown method>]
- mov eax, esi
+ mov eax, edi
; byrRegs +[eax]
- mov edx, ebx
- push edx
+ mov edx, dword ptr [ebp-0x2C]
+ mov ecx, edx
+ push ecx
push eax
call <unknown method>
; gcrRegs +[eax]
; byrRegs -[eax]
- mov gword ptr [ebp-0x38], eax
+ mov gword ptr [ebp-0x3C], eax
; GC ptr vars +{V05}
- inc ebx
- cmp ebx, edi
- ja SHORT G_M17506_IG10
- lea esi, bword ptr [esi+2*ebx]
- sub edi, ebx
- mov ecx, edi
+ mov ecx, dword ptr [ebp-0x2C]
+ inc ecx
+ cmp ecx, ebx
+ ja G_M17506_IG10
+ lea edi, bword ptr [edi+2*ecx]
+ sub ebx, ecx
+ mov ecx, ebx
not ecx
shr ecx, 31
+ ; GC ptr vars -{V02}
call [<unknown method>]
; gcrRegs -[eax]
+ push ebx
push edi
- push esi
...
+15 (+2.84%) : 272431.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
@@ -9,12 +9,12 @@
; Final local variable assignments
;
; V00 loc0 [V00,T14] ( 5, 4 ) int -> [ebp-0x24] do-not-enreg[Z] EH-live
-; V01 loc1 [V01,T03] ( 4, 9 ) ref -> [ebp-0x34] class-hnd exact EH-live spill-single-def <System.Collections.Hashtable>
+; V01 loc1 [V01,T02] ( 5, 13 ) ref -> [ebp-0x38] class-hnd exact EH-live single-def <System.Collections.Hashtable>
; V02 loc2 [V02,T00] ( 6, 27 ) int -> [ebp-0x28] do-not-enreg[Z] EH-live
;* V03 loc3 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
;* V04 loc4 [V04 ] ( 0, 0 ) int -> zero-ref
-; V05 loc5 [V05,T12] ( 2, 5 ) ref -> [ebp-0x38] class-hnd exact spill-single-def <System.String>
-; V06 loc6 [V06,T13] ( 2, 5 ) ref -> esi class-hnd exact <System.String>
+; V05 loc5 [V05,T12] ( 2, 5 ) ref -> [ebp-0x3C] class-hnd exact spill-single-def <System.String>
+; V06 loc6 [V06,T13] ( 2, 5 ) ref -> edi class-hnd exact <System.String>
;* V07 loc7 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Collections.Hashtable>
;* V08 loc8 [V08 ] ( 0, 0 ) int -> zero-ref
; V09 tmp0 [V09,T08] ( 3, 6 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <System.Collections.Hashtable>
@@ -34,30 +34,30 @@
;* V23 tmp14 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V24 tmp15 [V24,T24] ( 0, 0 ) short -> zero-ref "Inlining Arg"
;* V25 tmp16 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V26 tmp17 [V26,T07] ( 6, 6 ) int -> ebx "Inline return value spill temp"
+; V26 tmp17 [V26,T07] ( 6, 6 ) int -> [ebp-0x2C] spill-single-def "Inline return value spill temp"
;* V27 tmp18 [V27 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V28 tmp19 [V28 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V29 tmp20 [V29 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V30 tmp21 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V31 tmp22 [V31 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V32 tmp23 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V33 tmp24 [V33,T05] ( 4, 8 ) int -> ebx "Inlining Arg"
+; V33 tmp24 [V33,T05] ( 4, 8 ) int -> ecx "Inlining Arg"
;* V34 tmp25 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-; V35 tmp26 [V35,T10] ( 3, 6 ) int -> edi "Inlining Arg"
-; V36 tmp27 [V36,T15] ( 2, 4 ) byref -> esi "Inlining Arg"
+; V35 tmp26 [V35,T10] ( 3, 6 ) int -> ebx "Inlining Arg"
+; V36 tmp27 [V36,T15] ( 2, 4 ) byref -> edi "Inlining Arg"
; V37 tmp28 [V37,T16] ( 2, 4 ) ref -> eax single-def "Single return block return value"
-; V38 FramesRoot [V38,T11] ( 5, 5 ) int -> [ebp-0x2C] do-not-enreg[H] EH-live "Pinvoke FrameListRoot"
-; V39 PInvokeFrame [V39 ] ( 8, 8 ) struct (32) [ebp-0x58] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+; V38 FramesRoot [V38,T11] ( 5, 5 ) int -> [ebp-0x30] do-not-enreg[H] EH-live "Pinvoke FrameListRoot"
+; V39 PInvokeFrame [V39 ] ( 8, 8 ) struct (32) [ebp-0x5C] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
;* V40 tmp31 [V40 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
-; V41 tmp32 [V41,T02] ( 2, 16 ) int -> [ebp-0x30] do-not-enreg[Z] EH-live "field V03._length (fldOffset=0x4)" P-INDEP
+; V41 tmp32 [V41,T03] ( 2, 16 ) int -> [ebp-0x34] do-not-enreg[Z] EH-live "field V03._length (fldOffset=0x4)" P-INDEP
;* V42 tmp33 [V42 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x4)" P-INDEP
;* V44 tmp35 [V44 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
;* V45 tmp36 [V45 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x4)" P-INDEP
-; V46 tmp37 [V46,T04] ( 5, 8 ) byref -> esi "field V15._reference (fldOffset=0x0)" P-INDEP
-; V47 tmp38 [V47,T01] ( 8, 25 ) int -> edi "field V15._length (fldOffset=0x4)" P-INDEP
-; V48 tmp39 [V48,T17] ( 2, 2 ) byref -> esi "field V16._reference (fldOffset=0x0)" P-INDEP
-; V49 tmp40 [V49,T20] ( 2, 2 ) int -> edi "field V16._length (fldOffset=0x4)" P-INDEP
+; V46 tmp37 [V46,T04] ( 5, 8 ) byref -> edi "field V15._reference (fldOffset=0x0)" P-INDEP
+; V47 tmp38 [V47,T01] ( 8, 25 ) int -> ebx "field V15._length (fldOffset=0x4)" P-INDEP
+; V48 tmp39 [V48,T17] ( 2, 2 ) byref -> edi "field V16._reference (fldOffset=0x0)" P-INDEP
+; V49 tmp40 [V49,T20] ( 2, 2 ) int -> ebx "field V16._length (fldOffset=0x4)" P-INDEP
;* V50 tmp41 [V50 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
;* V51 tmp42 [V51 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x4)" P-INDEP
;* V52 tmp43 [V52 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
@@ -67,13 +67,13 @@
;* V56 tmp47 [V56 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
;* V57 tmp48 [V57 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x4)" P-INDEP
; V58 tmp49 [V58,T18] ( 2, 2 ) byref -> eax "field V31._reference (fldOffset=0x0)" P-INDEP
-; V59 tmp50 [V59,T21] ( 2, 2 ) int -> edx "field V31._length (fldOffset=0x4)" P-INDEP
-; V60 tmp51 [V60,T19] ( 2, 2 ) byref -> esi "field V34._reference (fldOffset=0x0)" P-INDEP
-; V61 tmp52 [V61,T22] ( 2, 2 ) int -> edi "field V34._length (fldOffset=0x4)" P-INDEP
+; V59 tmp50 [V59,T21] ( 2, 2 ) int -> ecx "field V31._length (fldOffset=0x4)" P-INDEP
+; V60 tmp51 [V60,T19] ( 2, 2 ) byref -> edi "field V34._reference (fldOffset=0x0)" P-INDEP
+; V61 tmp52 [V61,T22] ( 2, 2 ) int -> ebx "field V34._length (fldOffset=0x4)" P-INDEP
;* V62 tmp53 [V62,T06] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V63 EHSlots [V63 ] ( 1, 1 ) struct (16) [ebp-0x20] do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
;
-; Lcl frame size = 76
+; Lcl frame size = 80
G_M17506_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -81,23 +81,23 @@ G_M17506_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 76
+ sub esp, 80
vzeroupper
xor ecx, ecx
mov dword ptr [ebp-0x18], ecx
;; size=17 bbWeight=1 PerfScore 6.75
G_M17506_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- lea edi, [ebp-0x54]
+ lea edi, [ebp-0x58]
call CORINFO_HELP_INIT_PINVOKE_FRAME
- mov dword ptr [ebp-0x2C], esi
+ mov dword ptr [ebp-0x30], esi
mov eax, ebp
- mov dword ptr [ebp-0x40], eax
- mov dword ptr [ebp-0x4C], 0xD1FFAB1E
- mov eax, esp
- mov dword ptr [ebp-0x48], eax
- lea eax, G_M17506_IG05
mov dword ptr [ebp-0x44], eax
- mov eax, dword ptr [ebp-0x2C]
+ mov dword ptr [ebp-0x50], 0xD1FFAB1E
+ mov eax, esp
+ mov dword ptr [ebp-0x4C], eax
+ lea eax, G_M17506_IG05
+ mov dword ptr [ebp-0x48], eax
+ mov eax, dword ptr [ebp-0x30]
mov byte ptr [eax+0x08], 0
;; size=44 bbWeight=1 PerfScore 10.00
G_M17506_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
@@ -108,7 +108,7 @@ G_M17506_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=2 bbWeight=1 PerfScore 3.00
G_M17506_IG05: ; bbWeight=1, isz, extend
mov esi, eax
- mov eax, dword ptr [ebp-0x2C]
+ mov eax, dword ptr [ebp-0x30]
mov byte ptr [eax+0x08], 1
cmp dword ptr [D1FFAB1EH], 0
je SHORT G_M17506_IG06
@@ -116,7 +116,7 @@ G_M17506_IG05: ; bbWeight=1, isz, extend
;; size=23 bbWeight=1 PerfScore 7.25
G_M17506_IG06: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
xor ecx, ecx
- mov dword ptr [ebp-0x44], ecx
+ mov dword ptr [ebp-0x48], ecx
mov dword ptr [ebp-0x24], esi
cmp dword ptr [ebp-0x24], 0
je G_M17506_IG21
@@ -135,128 +135,136 @@ G_M17506_IG07: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
xor edx, edx
call [<unknown method>]
; gcrRegs -[eax ecx]
- mov gword ptr [ebp-0x34], esi
+ mov gword ptr [ebp-0x38], esi
; GC ptr vars +{V01}
mov ecx, dword ptr [ebp-0x24]
mov dword ptr [ebp-0x28], ecx
;; size=47 bbWeight=1 PerfScore 13.25
-G_M17506_IG08: ; bbWeight=8, gcVars=00000008 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[esi]
+G_M17506_IG08: ; bbWeight=8, gcVars=00000004 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
cmp dword ptr [ebp-0x28], 0
jne SHORT G_M17506_IG11
;; size=6 bbWeight=8 PerfScore 24.00
-G_M17506_IG09: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- xor esi, esi
- ; byrRegs +[esi]
+G_M17506_IG09: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
xor edi, edi
+ ; byrRegs +[edi]
+ xor ebx, ebx
jmp SHORT G_M17506_IG12
;; size=6 bbWeight=4 PerfScore 10.00
G_M17506_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; byrRegs -[esi]
+ ; gcrRegs -[esi]
+ ; byrRegs -[edi]
; GC ptr vars -{V01}
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M17506_IG11: ; bbWeight=1, gcVars=00000008 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; GC ptr vars +{V01}
+G_M17506_IG11: ; bbWeight=1, gcVars=00000004 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs +[esi]
+ ; GC ptr vars +{V01 V02}
mov ecx, dword ptr [ebp-0x28]
call [<unknown method>]
test eax, eax
jl SHORT G_M17506_IG10
- mov esi, dword ptr [ebp-0x28]
- mov edi, eax
+ mov edi, dword ptr [ebp-0x28]
+ mov ebx, eax
;; size=18 bbWeight=1 PerfScore 6.50
-G_M17506_IG12: ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
- ; byrRegs +[esi]
- mov dword ptr [ebp-0x30], edi
- test edi, edi
+G_M17506_IG12: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+ ; byrRegs +[edi]
+ mov dword ptr [ebp-0x34], ebx
+ test ebx, ebx
je G_M17506_IG17
;; size=11 bbWeight=8 PerfScore 18.00
-G_M17506_IG13: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
+G_M17506_IG13: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
mov ecx, 1
call [<unknown method>]
mov ecx, 1
call [<unknown method>]
mov ecx, 1
call [<unknown method>]
- push edi
+ push ebx
mov edx, 61
- mov ecx, esi
+ mov ecx, edi
; byrRegs +[ecx]
call [<unknown method>]
; byrRegs -[ecx]
- mov ebx, eax
- test ebx, ebx
- jle SHORT G_M17506_IG16
- cmp ebx, edi
+ mov dword ptr [ebp-0x2C], eax
+ test eax, eax
+ jle G_M17506_IG16
+ cmp eax, ebx
ja SHORT G_M17506_IG10
- mov ecx, ebx
+ mov ecx, eax
not ecx
shr ecx, 31
call [<unknown method>]
- mov eax, esi
+ mov eax, edi
; byrRegs +[eax]
- mov edx, ebx
- push edx
+ mov edx, dword ptr [ebp-0x2C]
+ mov ecx, edx
+ push ecx
push eax
call <unknown method>
; gcrRegs +[eax]
; byrRegs -[eax]
- mov gword ptr [ebp-0x38], eax
+ mov gword ptr [ebp-0x3C], eax
; GC ptr vars +{V05}
- inc ebx
- cmp ebx, edi
- ja SHORT G_M17506_IG10
- lea esi, bword ptr [esi+2*ebx]
- sub edi, ebx
- mov ecx, edi
+ mov ecx, dword ptr [ebp-0x2C]
+ inc ecx
+ cmp ecx, ebx
+ ja G_M17506_IG10
+ lea edi, bword ptr [edi+2*ecx]
+ sub ebx, ecx
+ mov ecx, ebx
not ecx
shr ecx, 31
+ ; GC ptr vars -{V02}
call [<unknown method>]
; gcrRegs -[eax]
+ push ebx
push edi
- push esi
...
+2 (+6.06%) : 566964.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
@@ -22,8 +22,11 @@ G_M5950_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
je SHORT G_M5950_IG05
;; size=9 bbWeight=1 PerfScore 4.00
G_M5950_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- movzx eax, byte ptr [D1FFAB1EH]
- ;; size=7 bbWeight=1 PerfScore 2.00
+ mov eax, 0xD1FFAB1E ; static handle
+ ; byrRegs +[eax]
+ movzx eax, byte ptr [eax+0x01]
+ ; byrRegs -[eax]
+ ;; size=9 bbWeight=1 PerfScore 2.25
G_M5950_IG04: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
@@ -33,6 +36,6 @@ G_M5950_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, by
jmp SHORT G_M5950_IG03
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 33, prolog size 0, PerfScore 7.00, instruction count 7, allocated bytes for code 33 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
+; Total bytes of code 35, prolog size 0, PerfScore 7.25, instruction count 8, allocated bytes for code 35 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
; ============================================================
librariestestsnotieredcompilation.run.windows.x86.Release.mch
-36 (-7.30%) : 273778.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTime[],ubyte):System.String (FullOpts)
@@ -12,14 +12,14 @@
; V01 arg1 [V01,T05] ( 4, 7 ) ref -> edi class-hnd single-def <System.String>
; V02 arg2 [V02,T04] ( 6, 9 ) ref -> esi class-hnd single-def <System.DateTime[]>
; V03 arg3 [V03,T11] ( 2, 5 ) ubyte -> [ebp+0x08] single-def
-; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x20] class-hnd exact spill-single-def <System.IO.MemoryStream>
+; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x1C] class-hnd exact spill-single-def <System.IO.MemoryStream>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
-; V06 loc2 [V06,T00] ( 11, 17 ) ref -> [ebp-0x24] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
+; V06 loc2 [V06,T00] ( 16, 24.50) ref -> [ebp-0x20] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
; V07 loc3 [V07,T01] ( 5, 17 ) int -> [ebp-0x10]
-; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
-; V09 tmp1 [V09,T02] ( 6, 12 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
-; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-; V11 tmp3 [V11,T03] ( 6, 12 ) ref -> [ebp-0x34] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
+; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x24] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
+; V09 tmp1 [V09,T03] ( 6, 12 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
+; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V11 tmp3 [V11,T02] ( 7, 14 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp5 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -34,11 +34,11 @@
; V23 tmp15 [V23,T12] ( 2, 4 ) ref -> edx single-def "argument with side effect"
; V24 tmp16 [V24,T13] ( 2, 4 ) ref -> esi single-def "argument with side effect"
; V25 tmp17 [V25,T14] ( 2, 4 ) ref -> esi single-def "argument with side effect"
-; V26 cse0 [V26,T06] ( 6, 8.50) int -> [ebp-0x14] hoist multi-def "CSE - moderate"
-; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
-; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x1C] spill-single-def "CSE - moderate"
+; V26 cse0 [V26,T06] ( 6, 8.50) int -> ebx hoist multi-def "CSE - moderate"
+; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 36
G_M543_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -46,32 +46,31 @@ G_M543_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- sub esp, 40
+ sub esp, 36
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
- mov ebx, dword ptr [ebp+0x08]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=13 bbWeight=1 PerfScore 5.00
G_M543_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E ; System.IO.MemoryStream
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x28], eax
+ mov gword ptr [ebp-0x24], eax
; GC ptr vars +{V08}
mov ecx, eax
; gcrRegs +[ecx]
xor edx, edx
call [System.IO.MemoryStream:.ctor(int):this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x28]
+ mov eax, gword ptr [ebp-0x24]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x20], eax
+ mov gword ptr [ebp-0x1C], eax
; GC ptr vars +{V04}
mov ecx, 0xD1FFAB1E ; System.Text.UTF8Encoding
; GC ptr vars -{V08}
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x2C], eax
+ mov gword ptr [ebp-0x28], eax
; GC ptr vars +{V09}
mov byte ptr [eax+0x14], 1
mov dword ptr [eax+0x10], 0xFDE9
@@ -79,19 +78,19 @@ G_M543_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=000000
; gcrRegs +[ecx]
call [System.Text.UTF8Encoding:SetDefaultFallbacks():this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x2C]
+ mov eax, gword ptr [ebp-0x28]
; gcrRegs +[eax]
mov byte ptr [eax+0x15], 0
mov ecx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x30], eax
+ mov gword ptr [ebp-0x2C], eax
; GC ptr vars +{V10}
- push gword ptr [ebp-0x2C]
+ push gword ptr [ebp-0x28]
push 0x400
push 1
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x20]
+ mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
; GC ptr vars -{V09}
call [<unknown method>]
@@ -99,11 +98,11 @@ G_M543_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=000000
mov ecx, 0xD1FFAB1E ; Newtonsoft.Json.JsonTextWriter
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x34], eax
+ mov gword ptr [ebp-0x30], eax
; GC ptr vars +{V11}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x30]
+ mov edx, gword ptr [ebp-0x2C]
; gcrRegs +[edx]
; GC ptr vars -{V10}
call [Newtonsoft.Json.JsonTextWriter:.ctor(System.IO.TextWriter):this]
@@ -111,51 +110,50 @@ G_M543_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=000000
xor edx, edx
test byte ptr [ebp+0x14], 1
setne dl
- mov ecx, gword ptr [ebp-0x34]
+ mov ecx, gword ptr [ebp-0x30]
; gcrRegs +[ecx]
call [Newtonsoft.Json.JsonWriter:set_Formatting(int):this]
; gcrRegs -[ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
mov dword ptr [eax+0x20], 2
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x18], edx
+ mov edx, dword ptr [eax]
+ mov edx, dword ptr [edx+0x4C]
+ mov dword ptr [ebp-0x14], edx
call [edx+0x04]<unknown method>
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x24], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V06}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [ebp-0x18]
+ mov edx, dword ptr [ebp-0x14]
+ ;; size=178 bbWeight=1 PerfScore 54.00
+G_M543_IG03: ; bbWeight=1, isz, extend
; GC ptr vars -{V11}
call [edx+0x10]<unknown method>
; gcrRegs -[eax ecx]
- ;; size=182 bbWeight=1 PerfScore 55.00
-G_M543_IG03: ; bbWeight=1, extend
xor eax, eax
mov dword ptr [ebp-0x10], eax
mov edx, dword ptr [esi+0x04]
- mov dword ptr [ebp-0x1C], edx
+ mov dword ptr [ebp-0x18], edx
test edx, edx
- jle G_M543_IG09
- ;; size=19 bbWeight=1 PerfScore 5.50
+ jle SHORT G_M543_IG06
+ ;; size=18 bbWeight=1 PerfScore 8.50
G_M543_IG04: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x14], ecx
- ;; size=9 bbWeight=0.50 PerfScore 1.50
-G_M543_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov dword ptr [ebp+0x08], ebx
- movzx ebx, bl
- push ebx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
+ mov ebx, dword ptr [ecx]
+ mov ebx, dword ptr [ebx+0x50]
+ ;; size=8 bbWeight=0.50 PerfScore 2.50
+G_M543_IG05: ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref
+ movzx edx, byte ptr [ebp+0x08]
+ push edx
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [ebp-0x14]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx]
mov eax, dword ptr [ebp-0x10]
@@ -165,75 +163,78 @@ G_M543_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=000000
; byrRegs +[ecx]
push dword ptr [ecx+0x04]
push dword ptr [ecx]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x10]<unknown method>
; gcrRegs -[ecx]
mov eax, dword ptr [ebp-0x10]
inc eax
- cmp dword ptr [ebp-0x1C], eax
+ cmp dword ptr [ebp-0x18], eax
mov dword ptr [ebp-0x10], eax
- mov dword ptr [ebp-0x14], ebx
jg G_M543_IG08
- ;; size=69 bbWeight=4 PerfScore 103.00
-G_M543_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=57 bbWeight=4 PerfScore 98.00
+G_M543_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
movzx ecx, byte ptr [ebp+0x08]
push ecx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ecx]
+ mov ebx, dword ptr [eax+0x50]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx edi]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x18]
+ mov edi, dword ptr [ebp-0x14]
call [edi+0x18]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 0
- jbe G_M543_IG10
+ cmp dword ptr [ebp-0x18], 0
+ jbe G_M543_IG09
lea ecx, bword ptr [esi+0x08]
; byrRegs +[ecx]
push dword ptr [ecx+0x04]
push dword ptr [ecx]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x10]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 1
- jbe G_M543_IG10
+ cmp dword ptr [ebp-0x18], 1
+ jbe SHORT G_M543_IG09
...
-36 (-7.19%) : 272976.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTimeOffset[],ubyte):System.String (FullOpts)
@@ -12,14 +12,14 @@
; V01 arg1 [V01,T05] ( 4, 7 ) ref -> edi class-hnd single-def <System.String>
; V02 arg2 [V02,T04] ( 6, 9 ) ref -> esi class-hnd single-def <System.DateTimeOffset[]>
; V03 arg3 [V03,T11] ( 2, 5 ) ubyte -> [ebp+0x08] single-def
-; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x20] class-hnd exact spill-single-def <System.IO.MemoryStream>
+; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x1C] class-hnd exact spill-single-def <System.IO.MemoryStream>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
-; V06 loc2 [V06,T00] ( 11, 17 ) ref -> [ebp-0x24] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
+; V06 loc2 [V06,T00] ( 16, 24.50) ref -> [ebp-0x20] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
; V07 loc3 [V07,T01] ( 5, 17 ) int -> [ebp-0x10]
-; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
-; V09 tmp1 [V09,T02] ( 6, 12 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
-; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-; V11 tmp3 [V11,T03] ( 6, 12 ) ref -> [ebp-0x34] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
+; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x24] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
+; V09 tmp1 [V09,T03] ( 6, 12 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
+; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V11 tmp3 [V11,T02] ( 7, 14 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp5 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -34,11 +34,11 @@
; V23 tmp15 [V23,T12] ( 2, 4 ) ref -> edx single-def "argument with side effect"
; V24 tmp16 [V24,T13] ( 2, 4 ) ref -> esi single-def "argument with side effect"
; V25 tmp17 [V25,T14] ( 2, 4 ) ref -> esi single-def "argument with side effect"
-; V26 cse0 [V26,T06] ( 6, 8.50) int -> [ebp-0x14] hoist multi-def "CSE - moderate"
-; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
-; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x1C] spill-single-def "CSE - moderate"
+; V26 cse0 [V26,T06] ( 6, 8.50) int -> ebx hoist multi-def "CSE - moderate"
+; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 36
G_M2706_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -46,32 +46,31 @@ G_M2706_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- sub esp, 40
+ sub esp, 36
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
- mov ebx, dword ptr [ebp+0x08]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=13 bbWeight=1 PerfScore 5.00
G_M2706_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E ; System.IO.MemoryStream
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x28], eax
+ mov gword ptr [ebp-0x24], eax
; GC ptr vars +{V08}
mov ecx, eax
; gcrRegs +[ecx]
xor edx, edx
call [System.IO.MemoryStream:.ctor(int):this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x28]
+ mov eax, gword ptr [ebp-0x24]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x20], eax
+ mov gword ptr [ebp-0x1C], eax
; GC ptr vars +{V04}
mov ecx, 0xD1FFAB1E ; System.Text.UTF8Encoding
; GC ptr vars -{V08}
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x2C], eax
+ mov gword ptr [ebp-0x28], eax
; GC ptr vars +{V09}
mov byte ptr [eax+0x14], 1
mov dword ptr [eax+0x10], 0xFDE9
@@ -79,19 +78,19 @@ G_M2706_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
; gcrRegs +[ecx]
call [System.Text.UTF8Encoding:SetDefaultFallbacks():this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x2C]
+ mov eax, gword ptr [ebp-0x28]
; gcrRegs +[eax]
mov byte ptr [eax+0x15], 0
mov ecx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x30], eax
+ mov gword ptr [ebp-0x2C], eax
; GC ptr vars +{V10}
- push gword ptr [ebp-0x2C]
+ push gword ptr [ebp-0x28]
push 0x400
push 1
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x20]
+ mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
; GC ptr vars -{V09}
call [<unknown method>]
@@ -99,11 +98,11 @@ G_M2706_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
mov ecx, 0xD1FFAB1E ; Newtonsoft.Json.JsonTextWriter
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x34], eax
+ mov gword ptr [ebp-0x30], eax
; GC ptr vars +{V11}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x30]
+ mov edx, gword ptr [ebp-0x2C]
; gcrRegs +[edx]
; GC ptr vars -{V10}
call [Newtonsoft.Json.JsonTextWriter:.ctor(System.IO.TextWriter):this]
@@ -111,51 +110,50 @@ G_M2706_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
xor edx, edx
test byte ptr [ebp+0x14], 1
setne dl
- mov ecx, gword ptr [ebp-0x34]
+ mov ecx, gword ptr [ebp-0x30]
; gcrRegs +[ecx]
call [Newtonsoft.Json.JsonWriter:set_Formatting(int):this]
; gcrRegs -[ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
mov dword ptr [eax+0x20], 2
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x18], edx
+ mov edx, dword ptr [eax]
+ mov edx, dword ptr [edx+0x4C]
+ mov dword ptr [ebp-0x14], edx
call [edx+0x04]<unknown method>
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x24], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V06}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [ebp-0x18]
+ mov edx, dword ptr [ebp-0x14]
+ ;; size=178 bbWeight=1 PerfScore 54.00
+G_M2706_IG03: ; bbWeight=1, isz, extend
; GC ptr vars -{V11}
call [edx+0x10]<unknown method>
; gcrRegs -[eax ecx]
- ;; size=182 bbWeight=1 PerfScore 55.00
-G_M2706_IG03: ; bbWeight=1, extend
xor eax, eax
mov dword ptr [ebp-0x10], eax
mov edx, dword ptr [esi+0x04]
- mov dword ptr [ebp-0x1C], edx
+ mov dword ptr [ebp-0x18], edx
test edx, edx
- jle G_M2706_IG09
- ;; size=19 bbWeight=1 PerfScore 5.50
+ jle SHORT G_M2706_IG06
+ ;; size=18 bbWeight=1 PerfScore 8.50
G_M2706_IG04: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x14], ecx
- ;; size=9 bbWeight=0.50 PerfScore 1.50
-G_M2706_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov dword ptr [ebp+0x08], ebx
- movzx ebx, bl
- push ebx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
+ mov ebx, dword ptr [ecx]
+ mov ebx, dword ptr [ebx+0x50]
+ ;; size=8 bbWeight=0.50 PerfScore 2.50
+G_M2706_IG05: ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref
+ movzx edx, byte ptr [ebp+0x08]
+ push edx
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [ebp-0x14]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx]
mov eax, dword ptr [ebp-0x10]
@@ -167,77 +165,80 @@ G_M2706_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
push dword ptr [ecx+0x08]
push dword ptr [ecx+0x04]
push dword ptr [ecx]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x14]<unknown method>
; gcrRegs -[ecx]
mov eax, dword ptr [ebp-0x10]
inc eax
- cmp dword ptr [ebp-0x1C], eax
+ cmp dword ptr [ebp-0x18], eax
mov dword ptr [ebp-0x10], eax
- mov dword ptr [ebp-0x14], ebx
- jg G_M2706_IG08
- ;; size=71 bbWeight=4 PerfScore 113.00
-G_M2706_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ jg G_M2706_IG09
+ ;; size=59 bbWeight=4 PerfScore 108.00
+G_M2706_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
movzx ecx, byte ptr [ebp+0x08]
push ecx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ecx]
+ mov ebx, dword ptr [eax+0x50]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx edi]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x18]
+ mov edi, dword ptr [ebp-0x14]
call [edi+0x18]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 0
+ cmp dword ptr [ebp-0x18], 0
jbe G_M2706_IG10
lea ecx, bword ptr [esi+0x08]
; byrRegs +[ecx]
push dword ptr [ecx+0x08]
push dword ptr [ecx+0x04]
push dword ptr [ecx]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
; byrRegs -[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x14]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 1
- jbe G_M2706_IG10
+ cmp dword ptr [ebp-0x18], 1
...
-36 (-7.13%) : 273187.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetGuidsExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.Guid[],ubyte):System.String (FullOpts)
@@ -12,14 +12,14 @@
; V01 arg1 [V01,T05] ( 4, 7 ) ref -> edi class-hnd single-def <System.String>
; V02 arg2 [V02,T04] ( 6, 9 ) ref -> esi class-hnd single-def <System.Guid[]>
; V03 arg3 [V03,T11] ( 2, 5 ) ubyte -> [ebp+0x08] single-def
-; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x20] class-hnd exact spill-single-def <System.IO.MemoryStream>
+; V04 loc0 [V04,T15] ( 3, 3 ) ref -> [ebp-0x1C] class-hnd exact spill-single-def <System.IO.MemoryStream>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
-; V06 loc2 [V06,T00] ( 11, 17 ) ref -> [ebp-0x24] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
+; V06 loc2 [V06,T00] ( 16, 24.50) ref -> [ebp-0x20] class-hnd spill-single-def <Newtonsoft.Json.JsonTextWriter>
; V07 loc3 [V07,T01] ( 5, 17 ) int -> [ebp-0x10]
-; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
-; V09 tmp1 [V09,T02] ( 6, 12 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
-; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-; V11 tmp3 [V11,T03] ( 6, 12 ) ref -> [ebp-0x34] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
+; V08 tmp0 [V08,T08] ( 3, 6 ) ref -> [ebp-0x24] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.MemoryStream>
+; V09 tmp1 [V09,T03] ( 6, 12 ) ref -> [ebp-0x28] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
+; V10 tmp2 [V10,T09] ( 3, 6 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V11 tmp3 [V11,T02] ( 7, 14 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <Newtonsoft.Json.JsonTextWriter>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp5 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -34,11 +34,11 @@
; V23 tmp15 [V23,T12] ( 2, 4 ) ref -> edx single-def "argument with side effect"
; V24 tmp16 [V24,T13] ( 2, 4 ) ref -> esi single-def "argument with side effect"
; V25 tmp17 [V25,T14] ( 2, 4 ) ref -> esi single-def "argument with side effect"
-; V26 cse0 [V26,T06] ( 6, 8.50) int -> [ebp-0x14] hoist multi-def "CSE - moderate"
-; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
-; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x1C] spill-single-def "CSE - moderate"
+; V26 cse0 [V26,T06] ( 6, 8.50) int -> ebx hoist multi-def "CSE - moderate"
+; V27 cse1 [V27,T10] ( 5, 5 ) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V28 cse2 [V28,T07] ( 5, 8 ) int -> [ebp-0x18] spill-single-def "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 36
G_M2794_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -46,32 +46,31 @@ G_M2794_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- sub esp, 40
+ sub esp, 36
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
- mov ebx, dword ptr [ebp+0x08]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=13 bbWeight=1 PerfScore 5.00
G_M2794_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E ; System.IO.MemoryStream
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x28], eax
+ mov gword ptr [ebp-0x24], eax
; GC ptr vars +{V08}
mov ecx, eax
; gcrRegs +[ecx]
xor edx, edx
call [System.IO.MemoryStream:.ctor(int):this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x28]
+ mov eax, gword ptr [ebp-0x24]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x20], eax
+ mov gword ptr [ebp-0x1C], eax
; GC ptr vars +{V04}
mov ecx, 0xD1FFAB1E ; System.Text.UTF8Encoding
; GC ptr vars -{V08}
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x2C], eax
+ mov gword ptr [ebp-0x28], eax
; GC ptr vars +{V09}
mov byte ptr [eax+0x14], 1
mov dword ptr [eax+0x10], 0xFDE9
@@ -79,19 +78,19 @@ G_M2794_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
; gcrRegs +[ecx]
call [System.Text.UTF8Encoding:SetDefaultFallbacks():this]
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x2C]
+ mov eax, gword ptr [ebp-0x28]
; gcrRegs +[eax]
mov byte ptr [eax+0x15], 0
mov ecx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
- mov gword ptr [ebp-0x30], eax
+ mov gword ptr [ebp-0x2C], eax
; GC ptr vars +{V10}
- push gword ptr [ebp-0x2C]
+ push gword ptr [ebp-0x28]
push 0x400
push 1
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x20]
+ mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
; GC ptr vars -{V09}
call [<unknown method>]
@@ -99,11 +98,11 @@ G_M2794_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
mov ecx, 0xD1FFAB1E ; Newtonsoft.Json.JsonTextWriter
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x34], eax
+ mov gword ptr [ebp-0x30], eax
; GC ptr vars +{V11}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x30]
+ mov edx, gword ptr [ebp-0x2C]
; gcrRegs +[edx]
; GC ptr vars -{V10}
call [Newtonsoft.Json.JsonTextWriter:.ctor(System.IO.TextWriter):this]
@@ -111,51 +110,50 @@ G_M2794_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
xor edx, edx
test byte ptr [ebp+0x14], 1
setne dl
- mov ecx, gword ptr [ebp-0x34]
+ mov ecx, gword ptr [ebp-0x30]
; gcrRegs +[ecx]
call [Newtonsoft.Json.JsonWriter:set_Formatting(int):this]
; gcrRegs -[ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
mov dword ptr [eax+0x20], 2
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x18], edx
+ mov edx, dword ptr [eax]
+ mov edx, dword ptr [edx+0x4C]
+ mov dword ptr [ebp-0x14], edx
call [edx+0x04]<unknown method>
; gcrRegs -[eax ecx]
- mov eax, gword ptr [ebp-0x34]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x24], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V06}
mov ecx, eax
; gcrRegs +[ecx]
- mov edx, dword ptr [ebp-0x18]
+ mov edx, dword ptr [ebp-0x14]
+ ;; size=178 bbWeight=1 PerfScore 54.00
+G_M2794_IG03: ; bbWeight=1, isz, extend
; GC ptr vars -{V11}
call [edx+0x10]<unknown method>
; gcrRegs -[eax ecx]
- ;; size=182 bbWeight=1 PerfScore 55.00
-G_M2794_IG03: ; bbWeight=1, extend
xor eax, eax
mov dword ptr [ebp-0x10], eax
mov edx, dword ptr [esi+0x04]
- mov dword ptr [ebp-0x1C], edx
+ mov dword ptr [ebp-0x18], edx
test edx, edx
- jle G_M2794_IG09
- ;; size=19 bbWeight=1 PerfScore 5.50
+ jle SHORT G_M2794_IG06
+ ;; size=18 bbWeight=1 PerfScore 8.50
G_M2794_IG04: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [D1FFAB1EH]
- mov dword ptr [ebp-0x14], ecx
- ;; size=9 bbWeight=0.50 PerfScore 1.50
-G_M2794_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- mov dword ptr [ebp+0x08], ebx
- movzx ebx, bl
- push ebx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
+ mov ebx, dword ptr [ecx]
+ mov ebx, dword ptr [ebx+0x50]
+ ;; size=8 bbWeight=0.50 PerfScore 2.50
+G_M2794_IG05: ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref
+ movzx edx, byte ptr [ebp+0x08]
+ push edx
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [ebp-0x14]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx]
mov eax, dword ptr [ebp-0x10]
@@ -164,69 +162,72 @@ G_M2794_IG05: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
vmovups xmm0, xmmword ptr [esi+ecx+0x08]
sub esp, 16
vmovups xmmword ptr [esp], xmm0
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x18]<unknown method>
; gcrRegs -[ecx]
mov eax, dword ptr [ebp-0x10]
inc eax
- cmp dword ptr [ebp-0x1C], eax
+ cmp dword ptr [ebp-0x18], eax
mov dword ptr [ebp-0x10], eax
- mov dword ptr [ebp-0x14], ebx
jg G_M2794_IG08
- ;; size=71 bbWeight=4 PerfScore 111.00
-G_M2794_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=59 bbWeight=4 PerfScore 106.00
+G_M2794_IG06: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
movzx ecx, byte ptr [ebp+0x08]
push ecx
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
mov edx, edi
; gcrRegs +[edx]
- mov ebx, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ecx]
+ mov ebx, dword ptr [eax+0x50]
call [ebx+0x0C]<unknown method>
; gcrRegs -[ecx edx edi]
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x18]
+ mov edi, dword ptr [ebp-0x14]
call [edi+0x18]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 0
- jbe G_M2794_IG10
+ cmp dword ptr [ebp-0x18], 0
+ jbe G_M2794_IG09
vmovups xmm0, xmmword ptr [esi+0x08]
sub esp, 16
vmovups xmmword ptr [esp], xmm0
- mov ecx, gword ptr [ebp-0x24]
+ mov ecx, gword ptr [ebp-0x20]
; gcrRegs +[ecx]
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [ecx]
+ mov edx, dword ptr [edx+0x5C]
call [edx+0x18]<unknown method>
; gcrRegs -[ecx]
- cmp dword ptr [ebp-0x1C], 1
- jbe G_M2794_IG10
+ cmp dword ptr [ebp-0x18], 1
+ jbe SHORT G_M2794_IG09
vmovups xmm0, xmmword ptr [esi+0x18]
sub esp, 16
vmovups xmmword ptr [esp], xmm0
...
+3 (+9.09%) : 210236.dasm - System.Tests.Types.NestedGenericTypeParameter2Tests:CreateType():System.Type:this (FullOpts)
@@ -24,12 +24,13 @@ G_M2263_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax+0x64]
call [eax+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
cmp dword ptr [eax+0x04], 1
jbe SHORT G_M2263_IG04
mov eax, gword ptr [eax+0x0C]
- ;; size=22 bbWeight=1 PerfScore 11.25
+ ;; size=25 bbWeight=1 PerfScore 13.25
G_M2263_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
@@ -40,6 +41,6 @@ G_M2263_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, by
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 33, prolog size 3, PerfScore 14.00, instruction count 12, allocated bytes for code 33 (MethodHash=15d1f728) for method System.Tests.Types.NestedGenericTypeParameter2Tests:CreateType():System.Type:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 16.00, instruction count 13, allocated bytes for code 36 (MethodHash=15d1f728) for method System.Tests.Types.NestedGenericTypeParameter2Tests:CreateType():System.Type:this (FullOpts)
; ============================================================
+28 (+9.59%) : 1915.dasm - Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
@@ -8,36 +8,38 @@
; 15 inlinees with PGO data; 14 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T10] ( 8, 9 ) ref -> esi this class-hnd single-def <Xunit.Sdk.MaxConcurrencySyncContext>
+; V00 this [V00,T10] ( 8, 9 ) ref -> [ebp-0x2C] this class-hnd single-def <Xunit.Sdk.MaxConcurrencySyncContext>
;* V01 loc0 [V01 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.List`1+Enumerator[Xunit.Sdk.XunitWorkerThread]>
;* V02 tmp0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <Xunit.Sdk.XunitWorkerThread>
; V03 tmp1 [V03,T15] ( 2, 2 ) ref -> edi class-hnd single-def "Inlining Arg" <<unknown class>>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Xunit.Sdk.XunitWorkerThread]>
; V05 tmp3 [V05,T06] ( 3, 12 ) ref -> edx class-hnd exact "Inlining Arg" <<unknown class>>
-; V06 tmp4 [V06,T07] ( 3, 12 ) ref -> [ebp-0x2C] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
-; V07 tmp5 [V07,T04] ( 4, 16 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "dup spill" <<unknown class>>
+; V06 tmp4 [V06,T07] ( 3, 12 ) ref -> [ebp-0x30] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
+; V07 tmp5 [V07,T01] ( 5, 20 ) ref -> [ebp-0x34] class-hnd exact spill-single-def "dup spill" <<unknown class>>
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref
;* V09 tmp7 [V09,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V10 tmp8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-; V11 tmp9 [V11,T03] ( 3, 17 ) ref -> edi class-hnd exact single-def "Inlining Arg" <<unknown class>>
-; V12 tmp10 [V12,T02] ( 4, 18 ) ref -> ebx class-hnd exact single-def "dup spill" <<unknown class>>
+; V11 tmp9 [V11,T04] ( 3, 17 ) ref -> edi class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V12 tmp10 [V12,T03] ( 5, 19 ) ref -> ebx class-hnd exact single-def "dup spill" <<unknown class>>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
; V14 tmp12 [V14,T14] ( 3, 3 ) ref -> esi class-hnd exact single-def "Inlining Arg" <<unknown class>>
-; V15 tmp13 [V15,T13] ( 4, 4 ) ref -> edi class-hnd exact single-def "dup spill" <<unknown class>>
+; V15 tmp13 [V15,T12] ( 5, 5 ) ref -> edi class-hnd exact single-def "dup spill" <<unknown class>>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
; V17 tmp15 [V17,T08] ( 4, 11.83) ref -> edi single-def "field V01._list (fldOffset=0x0)" P-INDEP
-; V18 tmp16 [V18,T09] ( 3, 7.33) ref -> [ebp-0x34] spill-single-def "field V01._current (fldOffset=0x4)" P-INDEP
+; V18 tmp16 [V18,T09] ( 3, 7.33) ref -> [ebp-0x38] spill-single-def "field V01._current (fldOffset=0x4)" P-INDEP
; V19 tmp17 [V19,T00] ( 6, 17.83) int -> [ebp-0x24] "field V01._index (fldOffset=0x8)" P-INDEP
-; V20 tmp18 [V20,T12] ( 2, 4.50) int -> [ebp-0x28] spill-single-def "field V01._version (fldOffset=0xc)" P-INDEP
+; V20 tmp18 [V20,T13] ( 2, 4.50) int -> [ebp-0x28] spill-single-def "field V01._version (fldOffset=0xc)" P-INDEP
; V21 tmp19 [V21,T16] ( 3, 1.50) ref -> edi single-def "field V04._list (fldOffset=0x0)" P-INDEP
;* V22 tmp20 [V22 ] ( 0, 0 ) ref -> zero-ref single-def "field V04._current (fldOffset=0x4)" P-INDEP
;* V23 tmp21 [V23,T18] ( 0, 0 ) int -> zero-ref single-def "field V04._index (fldOffset=0x8)" P-INDEP
; V24 tmp22 [V24,T17] ( 2, 1 ) int -> ebx single-def "field V04._version (fldOffset=0xc)" P-INDEP
-; V25 tmp23 [V25,T01] ( 3, 19.98) ref -> edx "arr expr"
+; V25 tmp23 [V25,T02] ( 3, 19.98) ref -> edx "arr expr"
; V26 EHSlots [V26 ] ( 1, 1 ) struct (16) [ebp-0x20] do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
; V27 cse0 [V27,T05] ( 2, 8.01) int -> edx "CSE - moderate"
+; TEMP_02 ref -> [ebp-0x3C]
+; TEMP_01 int -> [ebp-0x40]
;
-; Lcl frame size = 40
+; Lcl frame size = 52
G_M36449_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -45,15 +47,16 @@ G_M36449_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 40
+ sub esp, 52
+ vxorps xmm4, xmm4, xmm4
+ vmovdqu ymmword ptr [ebp-0x3C], ymm4
xor eax, eax
- mov dword ptr [ebp-0x20], eax
mov dword ptr [ebp-0x1C], eax
mov dword ptr [ebp-0x18], eax
mov dword ptr [ebp-0x14], eax
mov esi, ecx
; gcrRegs +[esi]
- ;; size=25 bbWeight=1 PerfScore 9.00
+ ;; size=31 bbWeight=1 PerfScore 10.33
G_M36449_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
cmp byte ptr [esi+0x05], 0
je SHORT G_M36449_IG04
@@ -75,15 +78,17 @@ G_M36449_IG04: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {e
cmp dword ptr [ecx], ecx
call [System.Threading.EventWaitHandle:Set():ubyte:this]
; gcrRegs -[ecx]
+ mov gword ptr [ebp-0x2C], esi
+ ; GC ptr vars +{V00}
mov edi, gword ptr [esi+0x0C]
; gcrRegs +[edi]
mov ebx, dword ptr [edi+0x0C]
xor ecx, ecx
mov dword ptr [ebp-0x28], ebx
jmp SHORT G_M36449_IG07
- ;; size=28 bbWeight=0.50 PerfScore 8.12
-G_M36449_IG05: ; bbWeight=2, gcVars=00000200 {V18}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[eax]
+ ;; size=31 bbWeight=0.50 PerfScore 8.62
+G_M36449_IG05: ; bbWeight=2, gcVars=00000600 {V00 V18}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[esi] +[eax]
; GC ptr vars +{V09 V18}
mov edx, gword ptr [eax+0x04]
; gcrRegs +[edx]
@@ -97,34 +102,43 @@ G_M36449_IG05: ; bbWeight=2, gcVars=00000200 {V18}, gcrefRegs=000000C1 {e
; gcrRegs -[edx]
call [<unknown method>]
; gcrRegs -[eax ecx]
- mov ecx, gword ptr [ebp-0x34]
+ mov ecx, gword ptr [ebp-0x38]
; gcrRegs +[ecx]
mov eax, gword ptr [ecx+0x04]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x2C], eax
+ mov gword ptr [ebp-0x30], eax
; GC ptr vars +{V06}
mov edx, gword ptr [eax+0x04]
; gcrRegs +[edx]
- mov gword ptr [ebp-0x30], edx
+ mov gword ptr [ebp-0x34], edx
; GC ptr vars +{V07}
test edx, edx
je SHORT G_M36449_IG10
mov ecx, edx
+ mov gword ptr [ebp-0x3C], ecx
mov edx, 1
; gcrRegs -[edx]
- mov ebx, dword ptr [D1FFAB1EH]
+ mov ebx, gword ptr [ebp-0x34]
+ ; gcrRegs +[ebx]
+ mov ecx, dword ptr [ebx]
+ ; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x2C]
+ mov dword ptr [ebp-0x40], ecx
+ mov ecx, gword ptr [ebp-0x3C]
+ ; gcrRegs +[ecx]
+ mov esi, dword ptr [ebp-0x40]
; GC ptr vars -{V09 V18}
- call [ebx+0x18]<unknown method>
+ call [esi+0x18]<unknown method>
; gcrRegs -[eax ecx]
- mov ecx, gword ptr [ebp-0x30]
+ mov ecx, ebx
; gcrRegs +[ecx]
; GC ptr vars -{V07}
call <unknown method>
- ; gcrRegs -[ecx]
- mov eax, gword ptr [ebp-0x2C]
+ ; gcrRegs -[ecx ebx]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
- ;; size=70 bbWeight=2 PerfScore 56.50
-G_M36449_IG06: ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=83 bbWeight=2 PerfScore 69.00
+G_M36449_IG06: ; bbWeight=2, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref
mov ecx, eax
; gcrRegs +[ecx]
; GC ptr vars -{V06}
@@ -133,57 +147,61 @@ G_M36449_IG06: ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
mov ecx, dword ptr [ebp-0x24]
mov ebx, dword ptr [ebp-0x28]
;; size=13 bbWeight=2 PerfScore 6.50
-G_M36449_IG07: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M36449_IG07: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
cmp ebx, dword ptr [edi+0x0C]
jne G_M36449_IG17
;; size=9 bbWeight=4 PerfScore 16.00
-G_M36449_IG08: ; bbWeight=4.00, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36449_IG08: ; bbWeight=4.00, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [edi+0x08]
cmp ecx, edx
jae SHORT G_M36449_IG11
;; size=7 bbWeight=4.00 PerfScore 13.01
-G_M36449_IG09: ; bbWeight=3.33, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36449_IG09: ; bbWeight=3.33, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
mov edx, gword ptr [edi+0x04]
; gcrRegs +[edx]
cmp ecx, dword ptr [edx+0x04]
jae SHORT G_M36449_IG16
mov eax, gword ptr [edx+4*ecx+0x08]
; gcrRegs +[eax]
- mov gword ptr [ebp-0x34], eax
+ mov gword ptr [ebp-0x38], eax
; GC ptr vars +{V18}
inc ecx
mov dword ptr [ebp-0x24], ecx
- jmp SHORT G_M36449_IG05
- ;; size=21 bbWeight=3.33 PerfScore 40.80
-G_M36449_IG10: ; bbWeight=1, gcVars=00000080 {V06}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ jmp G_M36449_IG05
+ ;; size=24 bbWeight=3.33 PerfScore 40.80
+G_M36449_IG10: ; bbWeight=1, gcVars=00000480 {V00 V06}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax edx]
; GC ptr vars -{V18} +{V06 V07}
- mov eax, gword ptr [ebp-0x2C]
+ mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
jmp SHORT G_M36449_IG06
;; size=5 bbWeight=1 PerfScore 3.00
-G_M36449_IG11: ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M36449_IG11: ; bbWeight=4, gcVars=00000400 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax edi]
; GC ptr vars -{V06 V07}
+ mov esi, gword ptr [ebp-0x2C]
+ ; gcrRegs +[esi]
mov edi, gword ptr [esi+0x08]
; gcrRegs +[edi]
mov ebx, gword ptr [edi+0x04]
; gcrRegs +[ebx]
test ebx, ebx
je SHORT G_M36449_IG13
- ;; size=10 bbWeight=4 PerfScore 21.00
-G_M36449_IG12: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=13 bbWeight=4 PerfScore 25.00
+G_M36449_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+ ; GC ptr vars -{V00}
mov ecx, ebx
; gcrRegs +[ecx]
mov edx, 1
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [ebx]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx]
mov ecx, ebx
; gcrRegs +[ecx]
call [System.GC:SuppressFinalize(System.Object)]
; gcrRegs -[ecx ebx]
- ;; size=23 bbWeight=0.50 PerfScore 4.38
+ ;; size=23 bbWeight=0.50 PerfScore 5.38
G_M36449_IG13: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, edi
; gcrRegs +[ecx]
@@ -197,14 +215,15 @@ G_M36449_IG13: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
mov ecx, edi
; gcrRegs +[ecx]
mov edx, 1
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [edi]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx]
mov ecx, edi
; gcrRegs +[ecx]
call [System.GC:SuppressFinalize(System.Object)]
; gcrRegs -[ecx edi]
- ;; size=40 bbWeight=0.50 PerfScore 7.62
+ ;; size=40 bbWeight=0.50 PerfScore 8.62
G_M36449_IG14: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, esi
; gcrRegs +[ecx]
@@ -227,6 +246,6 @@ G_M36449_IG17: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 292, prolog size 23, PerfScore 194.06, instruction count 103, allocated bytes for code 292 (MethodHash=2fc9719e) for method Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
+; Total bytes of code 320, prolog size 29, PerfScore 214.39, instruction count 114, allocated bytes for code 320 (MethodHash=2fc9719e) for method Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
; ============================================================
+3 (+16.67%) : 184419.dasm - System.Reflection.Tests.AssemblyTests:GetExecutingAssembly():System.Reflection.Assembly (FullOpts)
@@ -22,14 +22,15 @@ G_M34055_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [eax+0x34]
call [eax+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
- ;; size=13 bbWeight=1 PerfScore 5.25
+ ;; size=16 bbWeight=1 PerfScore 7.25
G_M34055_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 18, prolog size 3, PerfScore 8.00, instruction count 7, allocated bytes for code 18 (MethodHash=b4987af8) for method System.Reflection.Tests.AssemblyTests:GetExecutingAssembly():System.Reflection.Assembly (FullOpts)
+; Total bytes of code 21, prolog size 3, PerfScore 10.00, instruction count 8, allocated bytes for code 21 (MethodHash=b4987af8) for method System.Reflection.Tests.AssemblyTests:GetExecutingAssembly():System.Reflection.Assembly (FullOpts)
; ============================================================
realworld.run.windows.x86.checked.mch
-8 (-1.87%) : 26196.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:g_populateDiagnosticsAndClear|140(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref) (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 14 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T06] ( 8, 12 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo]>
-; V01 arg1 [V01,T08] ( 7, 11 ) ref -> [ebp-0x14] class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 arg0 [V00,T06] ( 8, 12 ) ref -> [ebp-0x14] class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo]>
+; V01 arg1 [V01,T07] ( 8, 13 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 arg2 [V02,T16] ( 3, 6 ) byref -> [ebp+0x08] single-def
;* V03 loc0 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo]>
;* V04 loc1 [V04 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo>
@@ -27,7 +27,7 @@
; V16 tmp9 [V16,T05] ( 2, 16 ) ref -> ecx class-hnd "dup spill" <<unknown class>>
;* V17 tmp10 [V17 ] ( 0, 0 ) ref -> zero-ref
;* V18 tmp11 [V18 ] ( 0, 0 ) struct (12) zero-ref <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
-; V19 tmp12 [V19,T07] ( 5, 14 ) ref -> [ebp-0x1C]
+; V19 tmp12 [V19,T08] ( 5, 14 ) ref -> [ebp-0x1C]
; V20 tmp13 [V20,T04] ( 5, 20 ) ref -> ecx class-hnd exact "NewObj constructor temp" <<unknown class>>
; V21 tmp14 [V21,T10] ( 3, 12 ) ref -> eax class-hnd exact "Inlining Arg" <<unknown class>>
;* V22 tmp15 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -51,13 +51,13 @@
;* V40 tmp33 [V40 ] ( 0, 0 ) ref -> zero-ref "field V18.SecondaryDependencies (fldOffset=0x8)" P-INDEP
; V41 tmp34 [V41,T11] ( 3, 12 ) ref -> edx "V04.[000..004)"
; V42 tmp35 [V42,T09] ( 4, 12 ) ref -> ebx "V04.[004..008)"
-; V43 tmp36 [V43,T15] ( 3, 8 ) ref -> edi "V04.[008..012)"
+; V43 tmp36 [V43,T15] ( 3, 8 ) ref -> esi "V04.[008..012)"
; V44 tmp37 [V44,T21] ( 2, 6 ) ref -> [ebp-0x20] spill-single-def "V04.[012..016)"
; V45 tmp38 [V45,T00] ( 5, 40 ) byref -> ecx "Spilling address for field-by-field copy"
; V46 tmp39 [V46,T03] ( 3, 24 ) ref -> ecx "arr expr"
; V47 tmp40 [V47,T12] ( 3, 12 ) ref -> ecx "arr expr"
; V48 tmp41 [V48,T13] ( 3, 12 ) int -> eax "index expr"
-; V49 cse0 [V49,T18] ( 3, 6 ) ref -> eax "CSE - conservative"
+; V49 cse0 [V49,T18] ( 3, 6 ) ref -> edx "CSE - conservative"
; V50 cse1 [V50,T19] ( 3, 6 ) ref -> ecx "CSE - conservative"
;
; Lcl frame size = 20
@@ -75,14 +75,11 @@ G_M36365_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs +[edi]
;; size=13 bbWeight=1 PerfScore 5.00
G_M36365_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov gword ptr [ebp-0x14], edi
- ; GC ptr vars +{V01}
test edi, edi
jne SHORT G_M36365_IG05
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M36365_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
; gcrRegs -[edi]
- ; GC ptr vars -{V01}
mov ecx, gword ptr [esi+0x04]
; gcrRegs +[ecx]
cmp byte ptr [ecx], cl
@@ -98,9 +95,8 @@ G_M36365_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret 4
;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M36365_IG05: ; bbWeight=0.50, gcVars=00000100 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs +[esi]
- ; GC ptr vars +{V01 V08}
+G_M36365_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs +[esi edi]
mov eax, esi
; gcrRegs +[eax]
cmp byte ptr [eax], al
@@ -109,17 +105,19 @@ G_M36365_IG05: ; bbWeight=0.50, gcVars=00000100 {V01}, gcrefRegs=00000040
mov ecx, gword ptr [esi+0x04]
; gcrRegs +[ecx]
cmp dword ptr [ecx+0x08], 0
- jle G_M36365_IG20
- ;; size=19 bbWeight=0.50 PerfScore 4.75
-G_M36365_IG06: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ jle SHORT G_M36365_IG08
+ ;; size=15 bbWeight=0.50 PerfScore 4.75
+G_M36365_IG06: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[ecx]
+ mov gword ptr [ebp-0x14], esi
+ ; GC ptr vars +{V00}
mov ecx, gword ptr [esi+0x04]
; gcrRegs +[ecx]
cmp eax, dword ptr [ecx+0x08]
- jge G_M36365_IG24
+ jge G_M36365_IG26
mov ecx, gword ptr [ecx+0x04]
cmp eax, dword ptr [ecx+0x04]
- jae G_M36365_IG23
+ jae G_M36365_IG25
mov dword ptr [ebp-0x10], eax
mov edx, eax
shl edx, 4
@@ -130,8 +128,7 @@ G_M36365_IG06: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs +[edx]
mov ebx, gword ptr [ecx+0x04]
; gcrRegs +[ebx]
- mov edi, gword ptr [ecx+0x08]
- ; gcrRegs +[edi]
+ mov esi, gword ptr [ecx+0x08]
mov ecx, gword ptr [ecx+0x0C]
; gcrRegs +[ecx]
; byrRegs -[ecx]
@@ -141,12 +138,11 @@ G_M36365_IG06: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
mov edx, dword ptr [edx]
; gcrRegs -[edx]
mov edx, dword ptr [edx+0x78]
- ; GC ptr vars -{V08}
call [edx+0x10]<unknown method>
; gcrRegs -[ecx]
cmp eax, 7
- je SHORT G_M36365_IG08
- ;; size=65 bbWeight=4 PerfScore 129.00
+ je SHORT G_M36365_IG09
+ ;; size=68 bbWeight=4 PerfScore 133.00
G_M36365_IG07: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
mov edx, bword ptr [ebp+0x08]
; byrRegs +[edx]
@@ -154,14 +150,22 @@ G_M36365_IG07: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
; gcrRegs +[ecx]
add eax, dword ptr [edx+0x04]
cmp eax, dword ptr [ecx+0x04]
- jae G_M36365_IG23
+ jae G_M36365_IG25
mov eax, gword ptr [ecx+4*eax+0x08]
; gcrRegs +[eax]
- jmp SHORT G_M36365_IG09
+ jmp SHORT G_M36365_IG10
;; size=24 bbWeight=2 PerfScore 28.00
-G_M36365_IG08: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax ecx]
+G_M36365_IG08: ; bbWeight=0.25, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+ ; gcrRegs -[eax ecx ebx edi]
; byrRegs -[edx]
+ ; GC ptr vars -{V00 V44}
+ mov ebx, esi
+ ; gcrRegs +[ebx]
+ jmp G_M36365_IG21
+ ;; size=7 bbWeight=0.25 PerfScore 0.56
+G_M36365_IG09: ; bbWeight=2, gcVars=00200040 {V00 V44}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+ ; gcrRegs +[edi]
+ ; GC ptr vars +{V00 V21 V44}
mov edx, bword ptr [ebp+0x08]
; byrRegs +[edx]
mov ecx, gword ptr [edx]
@@ -176,14 +180,14 @@ G_M36365_IG08: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
mov edx, bword ptr [ebp+0x08]
; byrRegs +[edx]
;; size=22 bbWeight=2 PerfScore 24.00
-G_M36365_IG09: ; bbWeight=4, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000004 {edx}, byref, isz
- ; GC ptr vars -{V07}
+G_M36365_IG10: ; bbWeight=4, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000004 {edx}, byref, isz
+ ; GC ptr vars -{V07 V21}
mov ecx, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[ecx]
test ecx, ecx
- jne SHORT G_M36365_IG11
+ jne SHORT G_M36365_IG12
;; size=10 bbWeight=4 PerfScore 13.00
-G_M36365_IG10: ; bbWeight=2, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000004 {edx}, byref
+G_M36365_IG11: ; bbWeight=2, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000004 {edx}, byref
; gcrRegs -[ecx]
mov bword ptr [ebp+0x08], edx
mov gword ptr [ebp-0x18], eax
@@ -195,7 +199,7 @@ G_M36365_IG10: ; bbWeight=2, gcrefRegs=000000C9 {eax ebx esi edi}, byrefR
; gcrRegs +[ecx]
mov eax, gword ptr [D1FFAB1EH] ; static handle
test eax, eax
- je G_M36365_IG25
+ je G_M36365_IG27
lea edx, bword ptr [ecx+0x04]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
@@ -211,113 +215,105 @@ G_M36365_IG10: ; bbWeight=2, gcrefRegs=000000C9 {eax ebx esi edi}, byrefR
mov edx, bword ptr [ebp+0x08]
; byrRegs +[edx]
;; size=66 bbWeight=2 PerfScore 26.00
-G_M36365_IG11: ; bbWeight=4, gcVars=00200100 {V01 V44}, gcrefRegs=000000CB {eax ecx ebx esi edi}, byrefRegs=00000004 {edx}, gcvars, byref, isz
+G_M36365_IG12: ; bbWeight=4, gcVars=00200040 {V00 V44}, gcrefRegs=000000CB {eax ecx ebx esi edi}, byrefRegs=00000004 {edx}, gcvars, byref, isz
; GC ptr vars -{V07}
test ebx, ebx
- mov gword ptr [ebp-0x18], eax
- ; GC ptr vars +{V07}
- je SHORT G_M36365_IG17
- ;; size=7 bbWeight=4 PerfScore 9.00
-G_M36365_IG12: ; bbWeight=2, gcVars=00220100 {V01 V07 V44}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000004 {edx}, gcvars, byref, isz
- ; gcrRegs -[eax]
+ je SHORT G_M36365_IG18
+ ;; size=4 bbWeight=4 PerfScore 5.00
+G_M36365_IG13: ; bbWeight=2, gcrefRegs=000000CB {eax ecx ebx esi edi}, byrefRegs=00000004 {edx}, byref, isz
mov bword ptr [ebp+0x08], edx
- mov edx, gword ptr [ebp-0x14]
+ mov edx, gword ptr [edi+0x04]
; gcrRegs +[edx]
; byrRegs -[edx]
- mov eax, gword ptr [edx+0x04]
- ; gcrRegs +[eax]
- test eax, eax
- je SHORT G_M36365_IG13
- push eax
- mov edx, gword ptr [ebp-0x18]
+ test edx, edx
+ je SHORT G_M36365_IG14
+ push edx
+ mov edx, eax
mov gword ptr [ebp-0x1C], ecx
; GC ptr vars +{V19}
mov ecx, gword ptr [ecx+0x04]
mov eax, gword ptr [ebp-0x1C]
- ; GC ptr vars -{V07 V19}
+ ; GC ptr vars -{V19}
call [eax+0x0C]<unknown method>
; gcrRegs -[ecx edx]
push eax
mov edx, ebx
; gcrRegs +[edx]
- mov ecx, gword ptr [ebp-0x14]
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [edi]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x2C]
call [eax+0x14]<unknown method>
; gcrRegs -[ecx edx ebx]
- jmp SHORT G_M36365_IG15
- ;; size=45 bbWeight=2 PerfScore 47.00
-G_M36365_IG13: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ jmp SHORT G_M36365_IG16
+ ;; size=40 bbWeight=2 PerfScore 46.00
+G_M36365_IG14: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ebx]
cmp dword ptr [ebx+0x14], 3
- jne SHORT G_M36365_IG14
- jmp SHORT G_M36365_IG19
+ jne SHORT G_M36365_IG15
+ jmp SHORT G_M36365_IG20
;; size=8 bbWeight=2 PerfScore 12.00
-G_M36365_IG14: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36365_IG15: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[ebx]
mov edx, bword ptr [ebp+0x08]
; byrRegs +[edx]
- jmp SHORT G_M36365_IG17
+ jmp SHORT G_M36365_IG18
;; size=5 bbWeight=1 PerfScore 3.00
-G_M36365_IG15: ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36365_IG16: ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
; byrRegs -[edx]
test eax, eax
- jne SHORT G_M36365_IG19
+ jne SHORT G_M36365_IG20
;; size=4 bbWeight=2 PerfScore 2.50
-G_M36365_IG16: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
...
-3 (-1.40%) : 16753.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
@@ -100,8 +100,8 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
; GC ptr vars +{V15}
mov ecx, edi
; gcrRegs +[ecx]
- cmp dword ptr [edi], edi
- mov edx, dword ptr [D1FFAB1EH]
+ mov edx, dword ptr [edi]
+ mov edx, dword ptr [edx+0x2C]
call [edx+0x0C]<unknown method>
; gcrRegs -[eax ecx]
mov ecx, gword ptr [ebp-0x10]
@@ -119,7 +119,7 @@ G_M60946_IG06: ; bbWeight=2, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
call [<unknown method>]
; gcrRegs -[ecx ebx]
; gcr arg pop 2
- ;; size=48 bbWeight=2 PerfScore 47.00
+ ;; size=45 bbWeight=2 PerfScore 45.00
G_M60946_IG07: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref, isz
mov eax, dword ptr [esi+0x04]
mov edx, gword ptr [esi]
@@ -172,6 +172,6 @@ G_M60946_IG13: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 215, prolog size 11, PerfScore 360.00, instruction count 73, allocated bytes for code 215 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
+; Total bytes of code 212, prolog size 11, PerfScore 358.00, instruction count 73, allocated bytes for code 212 (MethodHash=ebf011ed) for method System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
; ============================================================
-1 (-0.97%) : 768.dasm - System.Text.UnicodeEncoding:.cctor() (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 6 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 tmp0 [V00,T00] ( 6, 12 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <System.Text.UnicodeEncoding>
+; V00 tmp0 [V00,T00] ( 7, 14 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <System.Text.UnicodeEncoding>
; V01 tmp1 [V01,T01] ( 6, 12 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <System.Text.UnicodeEncoding>
;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref
;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -38,9 +38,11 @@ G_M19778_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov dword ptr [esi+0x10], 0x4B1
mov ecx, esi
; gcrRegs +[ecx]
- mov edi, dword ptr [D1FFAB1EH]
+ mov eax, dword ptr [esi]
+ ; gcrRegs -[eax]
+ mov edi, dword ptr [eax+0x2C]
call [edi+0x10]<unknown method>
- ; gcrRegs -[eax ecx]
+ ; gcrRegs -[ecx]
mov word ptr [esi+0x16], 257
mov edx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call CORINFO_HELP_ASSIGN_REF_ESI
@@ -60,7 +62,7 @@ G_M19778_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov edx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call CORINFO_HELP_ASSIGN_REF_ESI
; gcrRegs -[esi]
- ;; size=94 bbWeight=1 PerfScore 20.00
+ ;; size=93 bbWeight=1 PerfScore 22.00
G_M19778_IG03: ; bbWeight=1, epilog, nogc, extend
pop esi
pop edi
@@ -68,6 +70,6 @@ G_M19778_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 103, prolog size 5, PerfScore 25.75, instruction count 29, allocated bytes for code 103 (MethodHash=3131b2bd) for method System.Text.UnicodeEncoding:.cctor() (FullOpts)
+; Total bytes of code 102, prolog size 5, PerfScore 27.75, instruction count 30, allocated bytes for code 102 (MethodHash=3131b2bd) for method System.Text.UnicodeEncoding:.cctor() (FullOpts)
; ============================================================
+3 (+2.73%) : 15007.dasm - Microsoft.ML.Data.PrimitiveDataViewType:.ctor(System.Type):this (FullOpts)
@@ -43,11 +43,12 @@ G_M46437_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
; gcrRegs +[ecx]
mov eax, dword ptr [D1FFAB1EH]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x6C]
call [eax+0x18]<unknown method>
; gcrRegs -[ecx edx]
test eax, eax
jne SHORT G_M46437_IG04
- ;; size=36 bbWeight=1 PerfScore 15.00
+ ;; size=39 bbWeight=1 PerfScore 17.00
G_M46437_IG03: ; bbWeight=1, epilog, nogc, extend
pop esi
pop edi
@@ -82,6 +83,6 @@ G_M46437_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
int3
;; size=63 bbWeight=0 PerfScore 0.00
-; Total bytes of code 110, prolog size 5, PerfScore 21.00, instruction count 36, allocated bytes for code 110 (MethodHash=3cf14a9a) for method Microsoft.ML.Data.PrimitiveDataViewType:.ctor(System.Type):this (FullOpts)
+; Total bytes of code 113, prolog size 5, PerfScore 23.00, instruction count 37, allocated bytes for code 113 (MethodHash=3cf14a9a) for method Microsoft.ML.Data.PrimitiveDataViewType:.ctor(System.Type):this (FullOpts)
; ============================================================
+3 (+3.45%) : 14233.dasm - SixLabors.ImageSharp.Tests.TestEnvironment:.cctor() (FullOpts)
@@ -33,6 +33,7 @@ G_M41042_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs +[ecx]
mov eax, dword ptr [D1FFAB1EH]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x34]
call [eax+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
mov ecx, eax
@@ -59,13 +60,13 @@ G_M41042_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov edx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call CORINFO_HELP_ASSIGN_REF_EAX
; gcrRegs -[eax]
- ;; size=80 bbWeight=1 PerfScore 27.00
+ ;; size=83 bbWeight=1 PerfScore 29.00
G_M41042_IG03: ; bbWeight=1, epilog, nogc, extend
pop esi
pop ebp
ret
;; size=3 bbWeight=1 PerfScore 2.00
-; Total bytes of code 87, prolog size 4, PerfScore 31.25, instruction count 26, allocated bytes for code 87 (MethodHash=ae3f5fad) for method SixLabors.ImageSharp.Tests.TestEnvironment:.cctor() (FullOpts)
+; Total bytes of code 90, prolog size 4, PerfScore 33.25, instruction count 27, allocated bytes for code 90 (MethodHash=ae3f5fad) for method SixLabors.ImageSharp.Tests.TestEnvironment:.cctor() (FullOpts)
; ============================================================
+3 (+3.45%) : 28502.dasm - Microsoft.CodeAnalysis.CSharp.ErrorFacts:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
@@ -42,6 +42,7 @@ G_M6603_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
; gcrRegs +[ecx]
mov eax, dword ptr [D1FFAB1EH]
; gcrRegs -[eax]
+ mov eax, dword ptr [eax+0x34]
call [eax+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
push eax
@@ -54,7 +55,7 @@ G_M6603_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
mov edx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
call CORINFO_HELP_ASSIGN_REF_EDI
; gcrRegs -[edi]
- ;; size=64 bbWeight=0.50 PerfScore 8.12
+ ;; size=67 bbWeight=0.50 PerfScore 9.12
G_M6603_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov eax, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[eax]
@@ -66,6 +67,6 @@ G_M6603_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 87, prolog size 5, PerfScore 19.88, instruction count 27, allocated bytes for code 87 (MethodHash=af67e634) for method Microsoft.CodeAnalysis.CSharp.ErrorFacts:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
+; Total bytes of code 90, prolog size 5, PerfScore 20.88, instruction count 28, allocated bytes for code 90 (MethodHash=af67e634) for method Microsoft.CodeAnalysis.CSharp.ErrorFacts:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
; ============================================================
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.windows.x86.checked.mch |
89 |
23 |
21 |
45 |
-57 |
+195 |
benchmarks.run_pgo.windows.x86.checked.mch |
43 |
22 |
5 |
16 |
-42 |
+73 |
benchmarks.run_tiered.windows.x86.checked.mch |
45 |
15 |
11 |
19 |
-37 |
+94 |
coreclr_tests.run.windows.x86.checked.mch |
1,606 |
974 |
383 |
249 |
-10,284 |
+3,359 |
libraries.crossgen2.windows.x86.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries.pmi.windows.x86.checked.mch |
934 |
140 |
205 |
589 |
-365 |
+941 |
libraries_tests.run.windows.x86.Release.mch |
2,072 |
435 |
1,345 |
292 |
-993 |
+4,558 |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
2,444 |
413 |
1,495 |
536 |
-988 |
+6,905 |
realworld.run.windows.x86.checked.mch |
215 |
75 |
36 |
104 |
-272 |
+176 |
|
7,448 |
2,097 |
3,501 |
1,850 |
-13,038 |
+16,301 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.windows.x86.checked.mch |
24,694 |
4 |
24,690 |
0 (0.00%) |
0 (0.00%) |
benchmarks.run_pgo.windows.x86.checked.mch |
123,995 |
42,622 |
81,373 |
0 (0.00%) |
0 (0.00%) |
benchmarks.run_tiered.windows.x86.checked.mch |
48,297 |
29,031 |
19,266 |
0 (0.00%) |
0 (0.00%) |
coreclr_tests.run.windows.x86.checked.mch |
585,246 |
326,478 |
258,768 |
0 (0.00%) |
0 (0.00%) |
libraries.crossgen2.windows.x86.checked.mch |
273,595 |
15 |
273,580 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.windows.x86.checked.mch |
307,490 |
6 |
307,484 |
0 (0.00%) |
1 (0.00%) |
libraries_tests.run.windows.x86.Release.mch |
638,038 |
431,750 |
206,288 |
0 (0.00%) |
3 (0.00%) |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
316,857 |
21,931 |
294,926 |
0 (0.00%) |
5 (0.00%) |
realworld.run.windows.x86.checked.mch |
36,031 |
3 |
36,028 |
0 (0.00%) |
0 (0.00%) |
|
2,354,243 |
851,840 |
1,502,403 |
0 (0.00%) |
9 (0.00%) |
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: 7191920 (overridden on cmd)
Total bytes of diff: 7192058 (overridden on cmd)
Total bytes of delta: 138 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
48 : 9710.dasm (0.43 % of base)
26 : 1750.dasm (1.62 % of base)
25 : 1635.dasm (0.90 % of base)
17 : 1698.dasm (0.92 % of base)
17 : 7388.dasm (2.31 % of base)
12 : 12739.dasm (0.88 % of base)
9 : 7378.dasm (3.88 % of base)
7 : 9654.dasm (0.26 % of base)
3 : 1725.dasm (0.35 % of base)
3 : 1824.dasm (0.47 % of base)
3 : 15612.dasm (0.22 % of base)
3 : 16520.dasm (0.87 % of base)
3 : 17342.dasm (0.07 % of base)
3 : 19448.dasm (0.25 % of base)
3 : 6622.dasm (0.58 % of base)
3 : 1477.dasm (0.56 % of base)
3 : 20760.dasm (0.30 % of base)
2 : 8316.dasm (0.13 % of base)
2 : 8403.dasm (0.15 % of base)
2 : 8878.dasm (6.45 % of base)
Top file improvements (bytes):
-8 : 6136.dasm (-0.09 % of base)
-7 : 6132.dasm (-0.42 % of base)
-6 : 2720.dasm (-1.68 % of base)
-6 : 16545.dasm (-0.19 % of base)
-4 : 7962.dasm (-0.43 % of base)
-3 : 8962.dasm (-0.63 % of base)
-3 : 17252.dasm (-0.09 % of base)
-3 : 5994.dasm (-1.40 % of base)
-2 : 14762.dasm (-0.02 % of base)
-2 : 19082.dasm (-4.88 % of base)
-1 : 14147.dasm (-0.20 % of base)
-1 : 17522.dasm (-0.09 % of base)
-1 : 20707.dasm (-0.10 % of base)
-1 : 3480.dasm (-0.37 % of base)
-1 : 430.dasm (-0.06 % of base)
-1 : 14151.dasm (-0.29 % of base)
-1 : 19137.dasm (-0.35 % of base)
-1 : 726.dasm (-0.97 % of base)
-1 : 3116.dasm (-0.31 % of base)
-1 : 4933.dasm (-0.16 % of base)
44 total files with Code Size differences (23 improved, 21 regressed), 20 unchanged.
Top method regressions (bytes):
48 (0.43 % of base) : 9710.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (FullOpts)
26 (1.62 % of base) : 1750.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+EmitInfo+JsonReader:.cctor() (FullOpts)
25 (0.90 % of base) : 1635.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+EmitInfo:.cctor() (FullOpts)
17 (2.31 % of base) : 7388.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
17 (0.92 % of base) : 1698.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+EmitInfo+JsonWriter:.cctor() (FullOpts)
12 (0.88 % of base) : 12739.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (FullOpts)
9 (3.88 % of base) : 7378.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (FullOpts)
7 (0.26 % of base) : 9654.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (FullOpts)
3 (0.07 % of base) : 17342.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
3 (0.25 % of base) : 19448.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceParameterSymbol:Create(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Syntax.ParameterSyntax,ubyte,Microsoft.CodeAnalysis.SyntaxToken,int,ubyte,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceParameterSymbol (FullOpts)
3 (0.30 % of base) : 20760.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (FullOpts)
3 (0.58 % of base) : 6622.dasm - ProtoBuf.Meta.RuntimeTypeModel:Add(System.Type,ubyte,int):ProtoBuf.Meta.MetaType:this (FullOpts)
3 (0.87 % of base) : 16520.dasm - Roslyn.Utilities.UICultureUtilities:TryGetCurrentUICultureSetter(byref):ubyte (FullOpts)
3 (0.22 % of base) : 15612.dasm - System.Xml.Serialization.ReflectionAwareILGen:ILGenForCreateInstance(System.Xml.Serialization.CodeGenerator,System.Type,System.Type) (FullOpts)
3 (0.56 % of base) : 1477.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildFormatterToAssembly[System.__Canon](Utf8Json.Internal.Emit.DynamicAssembly,Utf8Json.IJsonFormatterResolver,System.Func`2[System.String,System.String],ubyte):System.Object (FullOpts)
3 (0.47 % of base) : 1824.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitDeserializeValue(System.Reflection.Emit.ILGenerator,Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+DeserializeInfo,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (FullOpts)
3 (0.35 % of base) : 1725.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitSerializeValue(System.Reflection.TypeInfo,Utf8Json.Internal.Emit.MetaMember,System.Reflection.Emit.ILGenerator,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (FullOpts)
2 (0.15 % of base) : 8403.dasm - MessagePack.Internal.DynamicObjectTypeBuilder:.cctor() (FullOpts)
2 (0.13 % of base) : 8316.dasm - MessagePack.Resolvers.DynamicUnionResolver:.cctor() (FullOpts)
2 (6.45 % of base) : 8878.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
Top method improvements (bytes):
-8 (-0.09 % of base) : 6136.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
-7 (-0.42 % of base) : 6132.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts)
-6 (-0.19 % of base) : 16545.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-6 (-1.68 % of base) : 2720.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
-4 (-0.43 % of base) : 7962.dasm - System.Xml.XmlBinaryNodeWriter:UnsafeWriteText(uint,int):this (FullOpts)
-3 (-0.09 % of base) : 17252.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause]]:this (FullOpts)
-3 (-0.63 % of base) : 8962.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGet[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (FullOpts)
-3 (-1.40 % of base) : 5994.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
-2 (-0.02 % of base) : 14762.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (FullOpts)
-2 (-4.88 % of base) : 19082.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
-1 (-0.09 % of base) : 17522.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GetEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol (FullOpts)
-1 (-0.37 % of base) : 3480.dasm - Sigil.Emit`1[System.__Canon]:NewObject(System.Reflection.ConstructorInfo):Sigil.Emit`1[System.__Canon]:this (FullOpts)
-1 (-0.31 % of base) : 3116.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (FullOpts)
-1 (-0.35 % of base) : 19137.dasm - System.Diagnostics.ProcessManager:HasExited(Microsoft.Win32.SafeHandles.SafeProcessHandle,byref,byref):ubyte (FullOpts)
-1 (-0.13 % of base) : 6226.dasm - System.Net.Http.HttpConnection:CopyFromBufferAsync(System.IO.Stream,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
-1 (-0.15 % of base) : 6150.dasm - System.Net.Http.HttpConnection:WriteToStreamAsync(System.ReadOnlyMemory`1[ubyte],ubyte):System.Threading.Tasks.ValueTask:this (FullOpts)
-1 (-0.20 % of base) : 5185.dasm - System.Runtime.Serialization.DataContractSerializer:.cctor() (FullOpts)
-1 (-0.16 % of base) : 4933.dasm - System.Runtime.Serialization.XmlObjectSerializer:WriteObject(System.IO.Stream,System.Object):this (FullOpts)
-1 (-0.06 % of base) : 430.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (FullOpts)
-1 (-0.10 % of base) : 20707.dasm - System.Security.Cryptography.CryptoConfig:CreateFromName(System.String,System.Object[]):System.Object (FullOpts)
Top method regressions (percentages):
2 (6.45 % of base) : 8878.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
9 (3.88 % of base) : 7378.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (FullOpts)
17 (2.31 % of base) : 7388.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
26 (1.62 % of base) : 1750.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+EmitInfo+JsonReader:.cctor() (FullOpts)
17 (0.92 % of base) : 1698.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+EmitInfo+JsonWriter:.cctor() (FullOpts)
25 (0.90 % of base) : 1635.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+EmitInfo:.cctor() (FullOpts)
12 (0.88 % of base) : 12739.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (FullOpts)
3 (0.87 % of base) : 16520.dasm - Roslyn.Utilities.UICultureUtilities:TryGetCurrentUICultureSetter(byref):ubyte (FullOpts)
3 (0.58 % of base) : 6622.dasm - ProtoBuf.Meta.RuntimeTypeModel:Add(System.Type,ubyte,int):ProtoBuf.Meta.MetaType:this (FullOpts)
3 (0.56 % of base) : 1477.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildFormatterToAssembly[System.__Canon](Utf8Json.Internal.Emit.DynamicAssembly,Utf8Json.IJsonFormatterResolver,System.Func`2[System.String,System.String],ubyte):System.Object (FullOpts)
3 (0.47 % of base) : 1824.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitDeserializeValue(System.Reflection.Emit.ILGenerator,Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+DeserializeInfo,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (FullOpts)
48 (0.43 % of base) : 9710.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (FullOpts)
3 (0.35 % of base) : 1725.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitSerializeValue(System.Reflection.TypeInfo,Utf8Json.Internal.Emit.MetaMember,System.Reflection.Emit.ILGenerator,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (FullOpts)
3 (0.30 % of base) : 20760.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (FullOpts)
7 (0.26 % of base) : 9654.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (FullOpts)
3 (0.25 % of base) : 19448.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceParameterSymbol:Create(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Syntax.ParameterSyntax,ubyte,Microsoft.CodeAnalysis.SyntaxToken,int,ubyte,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceParameterSymbol (FullOpts)
3 (0.22 % of base) : 15612.dasm - System.Xml.Serialization.ReflectionAwareILGen:ILGenForCreateInstance(System.Xml.Serialization.CodeGenerator,System.Type,System.Type) (FullOpts)
2 (0.15 % of base) : 8403.dasm - MessagePack.Internal.DynamicObjectTypeBuilder:.cctor() (FullOpts)
2 (0.13 % of base) : 8316.dasm - MessagePack.Resolvers.DynamicUnionResolver:.cctor() (FullOpts)
1 (0.12 % of base) : 19392.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax):this (FullOpts)
Top method improvements (percentages):
-2 (-4.88 % of base) : 19082.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
-6 (-1.68 % of base) : 2720.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
-3 (-1.40 % of base) : 5994.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
-1 (-0.97 % of base) : 726.dasm - System.Text.UnicodeEncoding:.cctor() (FullOpts)
-3 (-0.63 % of base) : 8962.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGet[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (FullOpts)
-4 (-0.43 % of base) : 7962.dasm - System.Xml.XmlBinaryNodeWriter:UnsafeWriteText(uint,int):this (FullOpts)
-7 (-0.42 % of base) : 6132.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts)
-1 (-0.37 % of base) : 3480.dasm - Sigil.Emit`1[System.__Canon]:NewObject(System.Reflection.ConstructorInfo):Sigil.Emit`1[System.__Canon]:this (FullOpts)
-1 (-0.35 % of base) : 19137.dasm - System.Diagnostics.ProcessManager:HasExited(Microsoft.Win32.SafeHandles.SafeProcessHandle,byref,byref):ubyte (FullOpts)
-1 (-0.31 % of base) : 3116.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (FullOpts)
-1 (-0.29 % of base) : 14151.dasm - System.Xml.XmlBinaryNodeWriter:WriteDateTimeArray(System.ReadOnlySpan`1[System.DateTime]):this (FullOpts)
-1 (-0.20 % of base) : 14147.dasm - System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (FullOpts)
-1 (-0.20 % of base) : 5185.dasm - System.Runtime.Serialization.DataContractSerializer:.cctor() (FullOpts)
-6 (-0.19 % of base) : 16545.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-1 (-0.16 % of base) : 4933.dasm - System.Runtime.Serialization.XmlObjectSerializer:WriteObject(System.IO.Stream,System.Object):this (FullOpts)
-1 (-0.15 % of base) : 6150.dasm - System.Net.Http.HttpConnection:WriteToStreamAsync(System.ReadOnlyMemory`1[ubyte],ubyte):System.Threading.Tasks.ValueTask:this (FullOpts)
-1 (-0.13 % of base) : 6226.dasm - System.Net.Http.HttpConnection:CopyFromBufferAsync(System.IO.Stream,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
-1 (-0.10 % of base) : 20707.dasm - System.Security.Cryptography.CryptoConfig:CreateFromName(System.String,System.Object[]):System.Object (FullOpts)
-8 (-0.09 % of base) : 6136.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
-1 (-0.09 % of base) : 17522.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GetEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol (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: 48695572 (overridden on cmd)
Total bytes of diff: 48695603 (overridden on cmd)
Total bytes of delta: 31 (0.00 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
48 : 32671.dasm (0.43 % of base)
12 : 50358.dasm (0.84 % of base)
7 : 32564.dasm (0.24 % of base)
3 : 77708.dasm (0.07 % of base)
3 : 99181.dasm (0.30 % of base)
Top file improvements (bytes):
-9 : 4715.dasm (-0.49 % of base)
-8 : 4872.dasm (-0.09 % of base)
-3 : 4316.dasm (-1.40 % of base)
-3 : 77492.dasm (-0.07 % of base)
-2 : 65662.dasm (-0.02 % of base)
-1 : 120361.dasm (-0.13 % of base)
-1 : 88165.dasm (-0.05 % of base)
-1 : 106044.dasm (-0.13 % of base)
-1 : 87491.dasm (-0.11 % of base)
-1 : 94324.dasm (-0.13 % of base)
-1 : 38988.dasm (-0.22 % of base)
-1 : 49093.dasm (-0.13 % of base)
-1 : 59803.dasm (-0.29 % of base)
-1 : 64557.dasm (-0.13 % of base)
-1 : 65906.dasm (-0.13 % of base)
-1 : 87825.dasm (-0.03 % of base)
-1 : 88154.dasm (-0.01 % of base)
-1 : 1190.dasm (-0.05 % of base)
-1 : 20119.dasm (-0.13 % of base)
-1 : 59788.dasm (-0.20 % of base)
27 total files with Code Size differences (22 improved, 5 regressed), 16 unchanged.
Top method regressions (bytes):
48 (0.43 % of base) : 32671.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (Tier0-FullOpts)
12 (0.84 % of base) : 50358.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
7 (0.24 % of base) : 32564.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Tier0-FullOpts)
3 (0.07 % of base) : 77708.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
3 (0.30 % of base) : 99181.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (Tier0-FullOpts)
Top method improvements (bytes):
-9 (-0.49 % of base) : 4715.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
-8 (-0.09 % of base) : 4872.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (Tier0-FullOpts)
-3 (-0.07 % of base) : 77492.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause]]:this (Tier0-FullOpts)
-3 (-1.40 % of base) : 4316.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
-2 (-0.02 % of base) : 65662.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
-1 (-0.03 % of base) : 87825.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
-1 (-0.01 % of base) : 88154.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)
-1 (-0.05 % of base) : 88165.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsInitializerRefKindValid(Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):ubyte (Tier1)
-1 (-0.04 % of base) : 83891.dasm - Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderFactoryVisitor:VisitMethodDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax):Microsoft.CodeAnalysis.CSharp.Binder:this (Tier1)
-1 (-0.11 % of base) : 87491.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax):this (Tier0-FullOpts)
-1 (-0.13 % of base) : 94324.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.13 % of base) : 49093.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.13 % of base) : 64557.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.13 % of base) : 65906.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.13 % of base) : 20119.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.22 % of base) : 38988.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-1 (-0.13 % of base) : 120361.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-1 (-0.13 % of base) : 106044.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-1 (-0.05 % of base) : 1190.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier0-FullOpts)
-1 (-0.10 % of base) : 98904.dasm - System.Security.Cryptography.CryptoConfig:CreateFromName(System.String,System.Object[]):System.Object (Tier0-FullOpts)
Top method regressions (percentages):
12 (0.84 % of base) : 50358.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
48 (0.43 % of base) : 32671.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (Tier0-FullOpts)
3 (0.30 % of base) : 99181.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (Tier0-FullOpts)
7 (0.24 % of base) : 32564.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Tier0-FullOpts)
3 (0.07 % of base) : 77708.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
Top method improvements (percentages):
-3 (-1.40 % of base) : 4316.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
-9 (-0.49 % of base) : 4715.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
-1 (-0.29 % of base) : 59803.dasm - System.Xml.XmlBinaryNodeWriter:WriteDateTimeArray(System.ReadOnlySpan`1[System.DateTime]):this (Tier0-FullOpts)
-1 (-0.22 % of base) : 38988.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-1 (-0.20 % of base) : 59788.dasm - System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
-1 (-0.13 % of base) : 94324.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.13 % of base) : 49093.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.13 % of base) : 64557.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.13 % of base) : 65906.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.13 % of base) : 20119.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.13 % of base) : 120361.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-1 (-0.13 % of base) : 106044.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase:this (Tier1)
-1 (-0.11 % of base) : 87491.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax):this (Tier0-FullOpts)
-1 (-0.10 % of base) : 98904.dasm - System.Security.Cryptography.CryptoConfig:CreateFromName(System.String,System.Object[]):System.Object (Tier0-FullOpts)
-8 (-0.09 % of base) : 4872.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (Tier0-FullOpts)
-3 (-0.07 % of base) : 77492.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause]]:this (Tier0-FullOpts)
-1 (-0.05 % of base) : 88165.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsInitializerRefKindValid(Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):ubyte (Tier1)
-1 (-0.05 % of base) : 1190.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier0-FullOpts)
-1 (-0.04 % of base) : 83891.dasm - Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderFactoryVisitor:VisitMethodDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax):Microsoft.CodeAnalysis.CSharp.Binder:this (Tier1)
-1 (-0.03 % of base) : 87825.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
27 total methods with Code Size differences (22 improved, 5 regressed).
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: 9517087 (overridden on cmd)
Total bytes of diff: 9517144 (overridden on cmd)
Total bytes of delta: 57 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
48 : 20785.dasm (0.43 % of base)
12 : 26641.dasm (0.88 % of base)
9 : 31360.dasm (3.88 % of base)
7 : 20666.dasm (0.26 % of base)
3 : 42979.dasm (0.31 % of base)
3 : 5203.dasm (0.35 % of base)
3 : 5302.dasm (0.56 % of base)
3 : 35283.dasm (0.07 % of base)
3 : 5275.dasm (0.47 % of base)
2 : 31316.dasm (6.45 % of base)
1 : 40244.dasm (0.12 % of base)
Top file improvements (bytes):
-9 : 14252.dasm (-0.52 % of base)
-8 : 14321.dasm (-0.09 % of base)
-3 : 13997.dasm (-1.40 % of base)
-3 : 35040.dasm (-0.09 % of base)
-3 : 47780.dasm (-0.63 % of base)
-2 : 29822.dasm (-0.02 % of base)
-1 : 1126.dasm (-0.06 % of base)
-1 : 15164.dasm (-0.13 % of base)
-1 : 18200.dasm (-0.35 % of base)
-1 : 22268.dasm (-0.22 % of base)
-1 : 28819.dasm (-0.20 % of base)
-1 : 28826.dasm (-0.29 % of base)
-1 : 29066.dasm (-0.31 % of base)
-1 : 43260.dasm (-0.10 % of base)
-1 : 39674.dasm (-0.10 % of base)
26 total files with Code Size differences (15 improved, 11 regressed), 19 unchanged.
Top method regressions (bytes):
48 (0.43 % of base) : 20785.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (Tier0-FullOpts)
12 (0.88 % of base) : 26641.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
9 (3.88 % of base) : 31360.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (Tier1)
7 (0.26 % of base) : 20666.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Tier0-FullOpts)
3 (0.07 % of base) : 35283.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
3 (0.31 % of base) : 42979.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (Tier0-FullOpts)
3 (0.56 % of base) : 5302.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildFormatterToAssembly[System.__Canon](Utf8Json.Internal.Emit.DynamicAssembly,Utf8Json.IJsonFormatterResolver,System.Func`2[System.String,System.String],ubyte):System.Object (Tier1)
3 (0.47 % of base) : 5275.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitDeserializeValue(System.Reflection.Emit.ILGenerator,Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+DeserializeInfo,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (Tier1)
3 (0.35 % of base) : 5203.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitSerializeValue(System.Reflection.TypeInfo,Utf8Json.Internal.Emit.MetaMember,System.Reflection.Emit.ILGenerator,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (Tier1)
2 (6.45 % of base) : 31316.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
1 (0.12 % of base) : 40244.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax):this (Tier0-FullOpts)
Top method improvements (bytes):
-9 (-0.52 % of base) : 14252.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
-8 (-0.09 % of base) : 14321.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (Tier0-FullOpts)
-3 (-0.09 % of base) : 35040.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause]]:this (Tier0-FullOpts)
-3 (-0.63 % of base) : 47780.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGet[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
-3 (-1.40 % of base) : 13997.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
-2 (-0.02 % of base) : 29822.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
-1 (-0.10 % of base) : 39674.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GetEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol (Tier1)
-1 (-0.35 % of base) : 18200.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.22 % of base) : 22268.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-1 (-0.31 % of base) : 29066.dasm - System.IO.Compression.Brotli:Decompress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-1 (-0.13 % of base) : 15164.dasm - System.Net.Http.HttpConnection:CopyFromBufferAsync(System.IO.Stream,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
-1 (-0.06 % of base) : 1126.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier0-FullOpts)
-1 (-0.10 % of base) : 43260.dasm - System.Security.Cryptography.CryptoConfig:CreateFromName(System.String,System.Object[]):System.Object (Tier0-FullOpts)
-1 (-0.20 % of base) : 28819.dasm - System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
-1 (-0.29 % of base) : 28826.dasm - System.Xml.XmlBinaryNodeWriter:WriteDateTimeArray(System.ReadOnlySpan`1[System.DateTime]):this (Tier0-FullOpts)
Top method regressions (percentages):
2 (6.45 % of base) : 31316.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
9 (3.88 % of base) : 31360.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactoryInternal(System.Type,System.Type[],byref,byref,byref) (Tier1)
12 (0.88 % of base) : 26641.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
3 (0.56 % of base) : 5302.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildFormatterToAssembly[System.__Canon](Utf8Json.Internal.Emit.DynamicAssembly,Utf8Json.IJsonFormatterResolver,System.Func`2[System.String,System.String],ubyte):System.Object (Tier1)
3 (0.47 % of base) : 5275.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitDeserializeValue(System.Reflection.Emit.ILGenerator,Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+DeserializeInfo,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (Tier1)
48 (0.43 % of base) : 20785.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (Tier0-FullOpts)
3 (0.35 % of base) : 5203.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:EmitSerializeValue(System.Reflection.TypeInfo,Utf8Json.Internal.Emit.MetaMember,System.Reflection.Emit.ILGenerator,int,System.Func`3[int,Utf8Json.Internal.Emit.MetaMember,ubyte],Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField,Utf8Json.Internal.Emit.ArgumentField) (Tier1)
3 (0.31 % of base) : 42979.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSimpleStructWithProperties:Read2_SimpleStructWithProperties(ubyte):MicroBenchmarks.Serializers.SimpleStructWithProperties:this (Tier0-FullOpts)
7 (0.26 % of base) : 20666.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Tier0-FullOpts)
1 (0.12 % of base) : 40244.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax):this (Tier0-FullOpts)
3 (0.07 % of base) : 35283.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
Top method improvements (percentages):
-3 (-1.40 % of base) : 13997.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
-3 (-0.63 % of base) : 47780.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateGet[System.__Canon](System.Reflection.PropertyInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
-9 (-0.52 % of base) : 14252.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (Tier0-FullOpts)
-1 (-0.35 % of base) : 18200.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[System.Type],System.Collections.Generic.IEnumerable`1[System.Type],Sigil.Impl.VerificationCallback):this (Tier1)
-1 (-0.31 % of base) : 29066.dasm - System.IO.Compression.Brotli:Decompress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-1 (-0.29 % of base) : 28826.dasm - System.Xml.XmlBinaryNodeWriter:WriteDateTimeArray(System.ReadOnlySpan`1[System.DateTime]):this (Tier0-FullOpts)
-1 (-0.22 % of base) : 22268.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
-1 (-0.20 % of base) : 28819.dasm - System.Xml.XmlBinaryNodeWriter:WriteBase64Text(ubyte[],int,ubyte[],int,int):this (Tier0-FullOpts)
-1 (-0.13 % of base) : 15164.dasm - System.Net.Http.HttpConnection:CopyFromBufferAsync(System.IO.Stream,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
-1 (-0.10 % of base) : 43260.dasm - System.Security.Cryptography.CryptoConfig:CreateFromName(System.String,System.Object[]):System.Object (Tier0-FullOpts)
-1 (-0.10 % of base) : 39674.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GetEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol (Tier1)
-8 (-0.09 % of base) : 14321.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (Tier0-FullOpts)
-3 (-0.09 % of base) : 35040.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause]]:this (Tier0-FullOpts)
-1 (-0.06 % of base) : 1126.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier0-FullOpts)
-2 (-0.02 % of base) : 29822.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
26 total methods with Code Size differences (15 improved, 11 regressed).
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: 319523301 (overridden on cmd)
Total bytes of diff: 319516376 (overridden on cmd)
Total bytes of delta: -6925 (-0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
111 : 478262.dasm (2.34 % of base)
111 : 478499.dasm (2.34 % of base)
111 : 508417.dasm (2.34 % of base)
111 : 508543.dasm (2.34 % of base)
111 : 509111.dasm (2.34 % of base)
111 : 479024.dasm (2.86 % of base)
111 : 508420.dasm (2.34 % of base)
111 : 508515.dasm (2.86 % of base)
111 : 508760.dasm (2.86 % of base)
53 : 49955.dasm (4.03 % of base)
53 : 87747.dasm (4.07 % of base)
44 : 517213.dasm (0.75 % of base)
42 : 517218.dasm (0.55 % of base)
42 : 516843.dasm (0.57 % of base)
38 : 511646.dasm (0.65 % of base)
36 : 511673.dasm (0.45 % of base)
36 : 511081.dasm (0.47 % of base)
36 : 479534.dasm (1.44 % of base)
36 : 581501.dasm (1.14 % of base)
27 : 285891.dasm (128.57 % of base)
Top file improvements (bytes):
-26 : 537691.dasm (-0.29 % of base)
-26 : 537436.dasm (-0.26 % of base)
-26 : 537613.dasm (-0.28 % of base)
-26 : 537651.dasm (-0.28 % of base)
-26 : 505328.dasm (-2.25 % of base)
-26 : 536866.dasm (-0.27 % of base)
-26 : 536916.dasm (-0.26 % of base)
-26 : 537354.dasm (-0.28 % of base)
-26 : 537394.dasm (-0.26 % of base)
-22 : 537913.dasm (-0.18 % of base)
-22 : 542454.dasm (-0.23 % of base)
-22 : 542486.dasm (-0.21 % of base)
-22 : 537563.dasm (-0.20 % of base)
-22 : 538015.dasm (-0.18 % of base)
-22 : 541414.dasm (-0.23 % of base)
-22 : 542381.dasm (-0.27 % of base)
-22 : 542423.dasm (-0.23 % of base)
-22 : 542532.dasm (-0.23 % of base)
-22 : 547541.dasm (-0.22 % of base)
-22 : 548545.dasm (-0.19 % of base)
85 total files with Code Size differences (39 improved, 46 regressed), 20 unchanged.
Top method regressions (bytes):
111 (2.34 % of base) : 508420.dasm - Test_AbstractBase02:TestEntryPoint():int (FullOpts)
111 (2.34 % of base) : 478262.dasm - Test_BaseClass02:TestEntryPoint():int (FullOpts)
111 (2.34 % of base) : 478499.dasm - Test_class01:TestEntryPoint():int (FullOpts)
111 (2.34 % of base) : 508417.dasm - Test_NestedBaseClass05:TestEntryPoint():int (FullOpts)
111 (2.34 % of base) : 508543.dasm - Test_NestedClass01:TestEntryPoint():int (FullOpts)
111 (2.34 % of base) : 509111.dasm - Test_NestedClass03:TestEntryPoint():int (FullOpts)
111 (2.86 % of base) : 508515.dasm - Test_NestedStruct01:TestEntryPoint():int (FullOpts)
111 (2.86 % of base) : 508760.dasm - Test_NestedStruct03:TestEntryPoint():int (FullOpts)
111 (2.86 % of base) : 479024.dasm - Test_struct01:TestEntryPoint():int (FullOpts)
53 (4.03 % of base) : 49955.dasm - System.DefaultBinder:CanChangePrimitive(System.Type,System.Type):ubyte (Tier1)
53 (4.07 % of base) : 87747.dasm - System.DefaultBinder:CanChangePrimitive(System.Type,System.Type):ubyte (Tier1)
44 (0.75 % of base) : 517213.dasm - TestApp:RunAllTests():int (FullOpts)
42 (0.55 % of base) : 517218.dasm - TestApp:RunAllTests():int (FullOpts)
42 (0.57 % of base) : 516843.dasm - TestApp:RunAllTests():int (FullOpts)
38 (0.65 % of base) : 511646.dasm - TestApp:RunAllTests():int (FullOpts)
36 (1.14 % of base) : 581501.dasm - Program:RuntimeMethodHandle():ubyte (FullOpts)
36 (0.45 % of base) : 511673.dasm - TestApp:RunAllTests():int (FullOpts)
36 (0.47 % of base) : 511081.dasm - TestApp:RunAllTests():int (FullOpts)
36 (1.44 % of base) : 479534.dasm - VectorTest:TestEntryPoint():int (FullOpts)
27 (128.57 % of base) : 523168.dasm - Test_b18049:main():int (FullOpts)
Top method improvements (bytes):
-26 (-0.27 % of base) : 536866.dasm - Generated1049:MethodCallingTest() (FullOpts)
-26 (-0.26 % of base) : 536916.dasm - Generated1050:MethodCallingTest() (FullOpts)
-26 (-0.28 % of base) : 537354.dasm - Generated1060:MethodCallingTest() (FullOpts)
-26 (-0.26 % of base) : 537394.dasm - Generated1061:MethodCallingTest() (FullOpts)
-26 (-0.26 % of base) : 537436.dasm - Generated1062:MethodCallingTest() (FullOpts)
-26 (-0.28 % of base) : 537613.dasm - Generated1066:MethodCallingTest() (FullOpts)
-26 (-0.28 % of base) : 537651.dasm - Generated1067:MethodCallingTest() (FullOpts)
-26 (-0.29 % of base) : 537691.dasm - Generated1068:MethodCallingTest() (FullOpts)
-26 (-2.25 % of base) : 505328.dasm - Program:Negative() (FullOpts)
-22 (-0.20 % of base) : 537563.dasm - Generated1065:MethodCallingTest() (FullOpts)
-22 (-0.18 % of base) : 537913.dasm - Generated1074:MethodCallingTest() (FullOpts)
-22 (-0.18 % of base) : 538015.dasm - Generated1076:MethodCallingTest() (FullOpts)
-22 (-0.23 % of base) : 541414.dasm - Generated1169:MethodCallingTest() (FullOpts)
-22 (-0.27 % of base) : 542381.dasm - Generated1199:MethodCallingTest() (FullOpts)
-22 (-0.23 % of base) : 542423.dasm - Generated1200:MethodCallingTest() (FullOpts)
-22 (-0.23 % of base) : 542454.dasm - Generated1201:MethodCallingTest() (FullOpts)
-22 (-0.21 % of base) : 542486.dasm - Generated1202:MethodCallingTest() (FullOpts)
-22 (-0.23 % of base) : 542532.dasm - Generated1203:MethodCallingTest() (FullOpts)
-22 (-0.22 % of base) : 547541.dasm - Generated1361:MethodCallingTest() (FullOpts)
-22 (-0.19 % of base) : 548545.dasm - Generated1393:MethodCallingTest() (FullOpts)
Top method regressions (percentages):
27 (128.57 % of base) : 523168.dasm - Test_b18049:main():int (FullOpts)
27 (128.57 % of base) : 285891.dasm - Test_b18049:main():int (Tier0-FullOpts)
9 (11.25 % of base) : 485797.dasm - ZeroOffsetFieldSeqs:ProblemWithStaticUnions():ubyte (FullOpts)
4 (9.52 % of base) : 526448.dasm - Runtime_66335:Problem():int (FullOpts)
3 (8.82 % of base) : 582047.dasm - Microsoft.Build.Shared.FileUtilities:get_ExecutingAssemblyPath():System.String (FullOpts)
12 (7.06 % of base) : 484150.dasm - ForwardSubCallArgInterference3:TestEntryPoint():int (FullOpts)
2 (6.45 % of base) : 490716.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
3 (6.25 % of base) : 571607.dasm - ILVerify.Verifier+<>c:<.ctor>b__5_0():System.Resources.ResourceManager:this (FullOpts)
5 (5.75 % of base) : 478037.dasm - StaticValueField:TestEntryPoint():int (FullOpts)
3 (5.66 % of base) : 528273.dasm - Program:UlongTest():ubyte (FullOpts)
3 (5.56 % of base) : 478634.dasm - Gen`1[System.Guid]:DefaultTest(ubyte):ubyte:this (FullOpts)
9 (5.14 % of base) : 478560.dasm - Gen`3[int,double,System.Guid]:InstVerify(System.Type,System.Type,System.Type):ubyte:this (FullOpts)
9 (5.14 % of base) : 478568.dasm - Gen`3[int,double,System.Guid]:InstVerify(System.Type,System.Type,System.Type):ubyte:this (FullOpts)
9 (5.14 % of base) : 508529.dasm - GenBase`3[int,double,System.Guid]:InstVerify(System.Type,System.Type,System.Type):ubyte:this (FullOpts)
9 (5.14 % of base) : 478277.dasm - GenBase`3[int,double,System.Guid]:InstVerify(System.Type,System.Type,System.Type):ubyte:this (FullOpts)
3 (5.08 % of base) : 528270.dasm - Program:DoubleTest():ubyte (FullOpts)
6 (4.96 % of base) : 478546.dasm - Gen`2[int,int]:InstVerify(System.Type,System.Type):ubyte:this (FullOpts)
6 (4.96 % of base) : 508404.dasm - GenBase`2[int,int]:InstVerify(System.Type,System.Type):ubyte:this (FullOpts)
6 (4.96 % of base) : 478267.dasm - GenBase`2[int,int]:InstVerify(System.Type,System.Type):ubyte:this (FullOpts)
6 (4.96 % of base) : 508625.dasm - GenBase`2[int,int]:InstVerify(System.Type,System.Type):ubyte:this (FullOpts)
Top method improvements (percentages):
-3 (-3.53 % of base) : 531092.dasm - bug1:TestEntryPoint() (FullOpts)
-26 (-2.25 % of base) : 505328.dasm - Program:Negative() (FullOpts)
-2 (-1.53 % of base) : 505687.dasm - CMain:RunTest_ExplicitOverride4():ubyte (FullOpts)
-2 (-1.49 % of base) : 505685.dasm - CMain:RunTest_ExplicitOverride3():ubyte (FullOpts)
-1 (-1.16 % of base) : 505655.dasm - CMain:RunTest4():ubyte (FullOpts)
-1 (-1.16 % of base) : 507662.dasm - CMain:RunTest4():ubyte (FullOpts)
-1 (-1.16 % of base) : 505523.dasm - CMain:RunTest5():ubyte (FullOpts)
-1 (-1.15 % of base) : 505653.dasm - CMain:RunTest3():ubyte (FullOpts)
-1 (-1.15 % of base) : 507660.dasm - CMain:RunTest3():ubyte (FullOpts)
-1 (-1.15 % of base) : 505521.dasm - CMain:RunTest4():ubyte (FullOpts)
-1 (-1.15 % of base) : 505525.dasm - CMain:RunTest6():ubyte (FullOpts)
-1 (-1.12 % of base) : 505675.dasm - CMain:RunTest_ImplicitOverride4():ubyte (FullOpts)
-1 (-1.11 % of base) : 505673.dasm - CMain:RunTest_ImplicitOverride3():ubyte (FullOpts)
-2 (-0.90 % of base) : 485348.dasm - Test:TestEntry(ubyte):int (FullOpts)
-1 (-0.90 % of base) : 505681.dasm - CMain:RunTest_ExplicitOverride1():ubyte (FullOpts)
-1 (-0.90 % of base) : 505683.dasm - CMain:RunTest_ExplicitOverride2():ubyte (FullOpts)
-1 (-0.88 % of base) : 505544.dasm - CMain:RunTest_MoreDerived3():ubyte (FullOpts)
-1 (-0.88 % of base) : 505548.dasm - CMain:RunTest_MoreDerived5():ubyte (FullOpts)
-1 (-0.88 % of base) : 505546.dasm - CMain:RunTest_MoreDerived4():ubyte (FullOpts)
-1 (-0.88 % of base) : 505550.dasm - CMain:RunTest_MoreDerived6():ubyte (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: 49527633 (overridden on cmd)
Total bytes of diff: 49528209 (overridden on cmd)
Total bytes of delta: 576 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
71 : 75638.dasm (3.63 % of base)
48 : 174935.dasm (0.43 % of base)
28 : 288356.dasm (9.59 % of base)
23 : 38069.dasm (0.57 % of base)
18 : 296728.dasm (0.95 % of base)
16 : 98102.dasm (0.25 % of base)
16 : 16887.dasm (2.32 % of base)
15 : 291250.dasm (1.79 % of base)
12 : 16504.dasm (0.74 % of base)
12 : 16886.dasm (1.78 % of base)
12 : 16888.dasm (2.40 % of base)
12 : 238306.dasm (0.88 % of base)
10 : 212281.dasm (4.69 % of base)
9 : 297146.dasm (0.66 % of base)
9 : 20569.dasm (4.84 % of base)
7 : 210115.dasm (1.63 % of base)
6 : 291212.dasm (1.01 % of base)
6 : 14404.dasm (1.06 % of base)
6 : 190648.dasm (1.52 % of base)
6 : 30788.dasm (0.29 % of base)
Top file improvements (bytes):
-39 : 75808.dasm (-0.96 % of base)
-34 : 252634.dasm (-0.92 % of base)
-21 : 252451.dasm (-3.19 % of base)
-18 : 304272.dasm (-4.66 % of base)
-15 : 81182.dasm (-1.83 % of base)
-13 : 252457.dasm (-1.22 % of base)
-10 : 98178.dasm (-0.88 % of base)
-9 : 252849.dasm (-0.44 % of base)
-8 : 75534.dasm (-1.38 % of base)
-6 : 282122.dasm (-1.68 % of base)
-6 : 30211.dasm (-0.25 % of base)
-6 : 34923.dasm (-0.14 % of base)
-5 : 252313.dasm (-0.05 % of base)
-5 : 252533.dasm (-0.26 % of base)
-4 : 215880.dasm (-0.05 % of base)
-4 : 252628.dasm (-0.19 % of base)
-4 : 252664.dasm (-0.22 % of base)
-4 : 260747.dasm (-0.42 % of base)
-3 : 252850.dasm (-0.13 % of base)
-3 : 99427.dasm (-0.07 % of base)
67 total files with Code Size differences (31 improved, 36 regressed), 20 unchanged.
Top method regressions (bytes):
71 (3.63 % of base) : 75638.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:InferDominantTypeOfExpressions(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol:this (FullOpts)
48 (0.43 % of base) : 174935.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (FullOpts)
28 (9.59 % of base) : 288356.dasm - Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
23 (0.57 % of base) : 38069.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
18 (0.95 % of base) : 296728.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:GetMetadataViewProvider[ubyte]():System.Func`2[System.Collections.Generic.IDictionary`2[System.String,System.Object],ubyte] (FullOpts)
16 (0.25 % of base) : 98102.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:FinishNonObjectForLoop(Microsoft.CodeAnalysis.VisualBasic.BoundForToStatement,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundBlock:this (FullOpts)
16 (2.32 % of base) : 16887.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:transBinOp(Microsoft.FSharp.Core.FSharpFunc`2[System.Type,ubyte],Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,ubyte,Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Quotations.FSharpExpr,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`3[System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo],System.Linq.Expressions.BinaryExpression],System.RuntimeMethodHandle):System.Linq.Expressions.Expression (FullOpts)
15 (1.79 % of base) : 291250.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:.cctor() (FullOpts)
12 (0.74 % of base) : 16504.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.Adapters:ConvImmutableTypeToMutableType(Microsoft.FSharp.Linq.RuntimeHelpers.Adapters+ConversionDescription,System.Type):System.Type (FullOpts)
12 (2.40 % of base) : 16888.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:transBoolOpNoWitness(Microsoft.FSharp.Core.FSharpFunc`2[System.Type,ubyte],Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,ubyte,Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Quotations.FSharpExpr,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`4[System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo],System.Linq.Expressions.BinaryExpression],System.Reflection.MethodInfo):System.Linq.Expressions.Expression (FullOpts)
12 (1.78 % of base) : 16886.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:transShiftOp(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,ubyte,Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Quotations.FSharpExpr,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`3[System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo],System.Linq.Expressions.BinaryExpression],System.RuntimeMethodHandle):System.Linq.Expressions.Expression (FullOpts)
12 (0.88 % of base) : 238306.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (FullOpts)
10 (4.69 % of base) : 212281.dasm - Microsoft.Build.BackEnd.NodeProviderInProc:RoutePacket(int,Microsoft.Build.BackEnd.INodePacket):this (FullOpts)
9 (4.84 % of base) : 20569.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.Display:isSetOrMapType(System.Type):ubyte (FullOpts)
9 (0.66 % of base) : 297146.dasm - System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:RewriteActivator(System.Reflection.TypeInfo,System.Composition.Hosting.Core.CompositeActivator,System.Collections.Generic.IDictionary`2[System.String,System.Object],System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]):System.Composition.Hosting.Core.CompositeActivator:this (FullOpts)
7 (1.63 % of base) : 210115.dasm - Microsoft.Build.Experimental.MSBuildClient:ServerIsBusyWithWaitAndRetry(int):ubyte:this (FullOpts)
6 (0.29 % of base) : 30788.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitForStatement(Microsoft.CodeAnalysis.CSharp.Syntax.ForStatementSyntax):this (FullOpts)
6 (1.01 % of base) : 291212.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:CreateFactory[System.__Canon](System.Type[]):Microsoft.Extensions.DependencyInjection.ObjectFactory`1[System.__Canon] (FullOpts)
6 (1.06 % of base) : 14404.dasm - Microsoft.FSharp.Reflection.FSharpValue:MakeFunction(System.Type,Microsoft.FSharp.Core.FSharpFunc`2[System.Object,System.Object]):System.Object (FullOpts)
6 (1.52 % of base) : 190648.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:CreateMethodCall[ubyte](System.Reflection.MethodBase):Newtonsoft.Json.Utilities.MethodCall`2[ubyte,System.Object]:this (FullOpts)
Top method improvements (bytes):
-39 (-0.96 % of base) : 75808.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindCollectionRangeVariable(Microsoft.CodeAnalysis.VisualBasic.Syntax.CollectionRangeVariableSyntax,ubyte,System.Collections.Generic.HashSet`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundQueryableSource:this (FullOpts)
-34 (-0.92 % of base) : 252634.dasm - System.Net.Http.Http2Connection+<ReadFrameAsync>d__61:MoveNext():this (FullOpts)
-21 (-3.19 % of base) : 252451.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref):this (FullOpts)
-18 (-4.66 % of base) : 304272.dasm - System.Runtime.Serialization.CodeExporter:CreateTypeDeclaration(System.String,System.Runtime.Serialization.DataContracts.DataContract):System.CodeDom.CodeTypeDeclaration (FullOpts)
-15 (-1.83 % of base) : 81182.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.TupleTypeSymbol:GetWellKnownMemberInType(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Symbol (FullOpts)
-13 (-1.22 % of base) : 252457.dasm - System.Net.Http.Http2Connection:WriteHeaderCollection(System.Net.Http.HttpRequestMessage,System.Net.Http.Headers.HttpHeaders,byref):int:this (FullOpts)
-10 (-0.88 % of base) : 98178.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:RewriteCollectionInitializerExpression(Microsoft.CodeAnalysis.VisualBasic.BoundCollectionInitializerExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
-9 (-0.44 % of base) : 252849.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts)
-8 (-1.38 % of base) : 75534.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindNamespaceOrTypeExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.TypeSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
-6 (-0.25 % of base) : 30211.dasm - Microsoft.CodeAnalysis.CSharp.Binder:NotFound(Microsoft.CodeAnalysis.SyntaxNode,System.String,int,System.String,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo:this (FullOpts)
-6 (-0.14 % of base) : 34923.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-6 (-1.68 % of base) : 282122.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[ubyte]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
-5 (-0.26 % of base) : 252533.dasm - System.Net.Http.Http2Connection+Http2Stream:OnStatus(int):this (FullOpts)
-5 (-0.05 % of base) : 252313.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
-4 (-0.05 % of base) : 215880.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)
-4 (-0.19 % of base) : 252628.dasm - System.Net.Http.Http2Connection+<ProcessHeadersFrame>d__64:MoveNext():this (FullOpts)
-4 (-0.22 % of base) : 252664.dasm - System.Net.Http.Http3Connection+<>c__DisplayClass30_0+<<CheckForShutdown>b__0>d:MoveNext():this (FullOpts)
-4 (-0.42 % of base) : 260747.dasm - System.Xml.XmlBinaryNodeWriter:UnsafeWriteText(uint,int):this (FullOpts)
-3 (-0.07 % of base) : 99427.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-3 (-0.13 % of base) : 252850.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp2Connection(System.Net.Http.Http2Connection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.Http2Connection]):this (FullOpts)
Top method regressions (percentages):
28 (9.59 % of base) : 288356.dasm - Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
3 (9.09 % of base) : 296753.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 296757.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 296741.dasm - System.Composition.Hosting.Providers.Lazy.LazyExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 296745.dasm - System.Composition.Hosting.Providers.Lazy.LazyWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 296736.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 297149.dasm - System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:.cctor() (FullOpts)
3 (8.82 % of base) : 213854.dasm - Microsoft.Build.Shared.FileUtilities:get_ExecutingAssemblyPath():System.String (FullOpts)
3 (6.67 % of base) : 125087.dasm - Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper:GetExporterInfo():System.String (FullOpts)
3 (6.25 % of base) : 194823.dasm - Internal.TypeSystem.TypeSystemException+<>c:<.cctor>b__20_0():System.Resources.ResourceManager:this (FullOpts)
3 (5.26 % of base) : 211268.dasm - Microsoft.Build.BackEnd.TaskParameterTypeVerifier:IsAssignableToITask(System.Type):ubyte (FullOpts)
9 (4.84 % of base) : 20569.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.Display:isSetOrMapType(System.Type):ubyte (FullOpts)
10 (4.69 % of base) : 212281.dasm - Microsoft.Build.BackEnd.NodeProviderInProc:RoutePacket(int,Microsoft.Build.BackEnd.INodePacket):this (FullOpts)
3 (4.35 % of base) : 297116.dasm - System.Composition.TypedParts.Discovery.DiscoveredPart:.cctor() (FullOpts)
3 (3.80 % of base) : 296749.dasm - System.Composition.Hosting.Providers.ImportMany.ImportManyExportDescriptorProvider:.cctor() (FullOpts)
71 (3.63 % of base) : 75638.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:InferDominantTypeOfExpressions(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol:this (FullOpts)
3 (3.26 % of base) : 297138.dasm - System.Composition.TypedParts.ActivationFeatures.DisposalFeature:RewriteActivator(System.Reflection.TypeInfo,System.Composition.Hosting.Core.CompositeActivator,System.Collections.Generic.IDictionary`2[System.String,System.Object],System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]):System.Composition.Hosting.Core.CompositeActivator:this (FullOpts)
3 (3.19 % of base) : 205042.dasm - Microsoft.Build.Framework.NativeMethods:get_FrameworkCurrentPath():System.String (FullOpts)
3 (3.00 % of base) : 209394.dasm - Microsoft.Build.Evaluation.ProjectCollection:get_DisplayVersion():System.String (FullOpts)
3 (2.97 % of base) : 123038.dasm - Dia2Lib.DiaLoader:GetDiaSourceObject():Dia2Lib.IDiaDataSource3 (FullOpts)
Top method improvements (percentages):
-2 (-4.88 % of base) : 302624.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
-18 (-4.66 % of base) : 304272.dasm - System.Runtime.Serialization.CodeExporter:CreateTypeDeclaration(System.String,System.Runtime.Serialization.DataContracts.DataContract):System.CodeDom.CodeTypeDeclaration (FullOpts)
-2 (-4.26 % of base) : 242636.dasm - System.Linq.Expressions.Interpreter.InterpretedFrameInfo:ToString():System.String:this (FullOpts)
-21 (-3.19 % of base) : 252451.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref):this (FullOpts)
-15 (-1.83 % of base) : 81182.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.TupleTypeSymbol:GetWellKnownMemberInType(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Symbol (FullOpts)
-6 (-1.68 % of base) : 282122.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[ubyte]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
-8 (-1.38 % of base) : 75534.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindNamespaceOrTypeExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.TypeSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
-13 (-1.22 % of base) : 252457.dasm - System.Net.Http.Http2Connection:WriteHeaderCollection(System.Net.Http.HttpRequestMessage,System.Net.Http.Headers.HttpHeaders,byref):int:this (FullOpts)
-2 (-0.97 % of base) : 89641.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ForBlockContext:EndBlock(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.StatementSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
-39 (-0.96 % of base) : 75808.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindCollectionRangeVariable(Microsoft.CodeAnalysis.VisualBasic.Syntax.CollectionRangeVariableSyntax,ubyte,System.Collections.Generic.HashSet`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundQueryableSource:this (FullOpts)
-2 (-0.93 % of base) : 205192.dasm - Microsoft.Build.Framework.SdkResultItem:GetHashCode():int:this (FullOpts)
-34 (-0.92 % of base) : 252634.dasm - System.Net.Http.Http2Connection+<ReadFrameAsync>d__61:MoveNext():this (FullOpts)
-10 (-0.88 % of base) : 98178.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:RewriteCollectionInitializerExpression(Microsoft.CodeAnalysis.VisualBasic.BoundCollectionInitializerExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
-1 (-0.81 % of base) : 252557.dasm - System.Net.Http.Http2Connection+Http2Stream:Trace(System.String,System.String):this (FullOpts)
-2 (-0.77 % of base) : 76203.dasm - Microsoft.CodeAnalysis.VisualBasic.DocumentationCommentCrefBinder:CollectSimpleNameSymbolsStrict(System.String,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],ubyte,byref,ubyte):this (FullOpts)
-2 (-0.68 % of base) : 108872.dasm - Microsoft.CodeAnalysis.EncodingExtensions:.cctor() (FullOpts)
-1 (-0.67 % of base) : 252724.dasm - System.Net.Http.Http3RequestStream:Trace(System.String,System.String):this (FullOpts)
-1 (-0.67 % of base) : 59665.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:GetParameterListSyntax(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterListSyntax (FullOpts)
-2 (-0.51 % of base) : 302623.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ArraySegment`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
-1 (-0.51 % of base) : 260773.dasm - System.Xml.XmlBinaryNodeWriter:WriteTimeSpanArray(System.ReadOnlySpan`1[System.TimeSpan]):this (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: 190246350 (overridden on cmd)
Total bytes of diff: 190249915 (overridden on cmd)
Total bytes of delta: 3565 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
95 : 551420.dasm (9.43 % of base)
48 : 173243.dasm (0.43 % of base)
27 : 206574.dasm (0.88 % of base)
27 : 206510.dasm (0.88 % of base)
23 : 297225.dasm (0.58 % of base)
18 : 108617.dasm (0.32 % of base)
18 : 214078.dasm (1.15 % of base)
16 : 108311.dasm (0.33 % of base)
15 : 206566.dasm (0.39 % of base)
15 : 117723.dasm (2.84 % of base)
15 : 176190.dasm (2.84 % of base)
15 : 206596.dasm (0.35 % of base)
15 : 170747.dasm (2.84 % of base)
15 : 272431.dasm (2.84 % of base)
12 : 264649.dasm (0.88 % of base)
12 : 205092.dasm (0.74 % of base)
12 : 108582.dasm (0.33 % of base)
11 : 189317.dasm (0.60 % of base)
11 : 631107.dasm (0.59 % of base)
10 : 124088.dasm (0.73 % of base)
Top file improvements (bytes):
-57 : 360366.dasm (-1.60 % of base)
-49 : 360444.dasm (-3.87 % of base)
-42 : 603472.dasm (-0.61 % of base)
-36 : 558765.dasm (-7.30 % of base)
-36 : 557072.dasm (-7.19 % of base)
-36 : 557483.dasm (-7.13 % of base)
-21 : 360445.dasm (-3.41 % of base)
-21 : 443994.dasm (-0.90 % of base)
-20 : 625168.dasm (-0.81 % of base)
-18 : 360448.dasm (-6.74 % of base)
-18 : 360453.dasm (-4.72 % of base)
-9 : 147853.dasm (-0.61 % of base)
-8 : 68076.dasm (-0.09 % of base)
-7 : 154825.dasm (-0.13 % of base)
-6 : 558181.dasm (-1.70 % of base)
-6 : 570177.dasm (-1.70 % of base)
-6 : 570577.dasm (-1.70 % of base)
-6 : 569705.dasm (-1.70 % of base)
-6 : 557982.dasm (-1.70 % of base)
-6 : 561445.dasm (-1.70 % of base)
75 total files with Code Size differences (27 improved, 48 regressed), 20 unchanged.
Top method regressions (bytes):
95 (9.43 % of base) : 551420.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetNumbersExpectedString(System.Text.Json.JsonWriterOptions,System.String,int[],uint[],long[],ulong[],float[],double[],System.Decimal[],ubyte):System.String (Tier0-FullOpts)
48 (0.43 % of base) : 173243.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (Tier0-FullOpts)
27 (0.88 % of base) : 206574.dasm - System.ComponentModel.Composition.ConstraintServicesTests:TryParseConstraint_ContractNameOperatorEqualsAsConstraintArgument_CanParse():this (Tier0-FullOpts)
27 (0.88 % of base) : 206510.dasm - System.ComponentModel.Composition.ConstraintServicesTests:TryParseConstraint_ContractNameReverseOperatorEqualsAsConstraintArgument_CanParse():this (Tier0-FullOpts)
23 (0.58 % of base) : 297225.dasm - System.IO.Tests.BinaryWriterTests:BinaryWriter_SeekTests():this (Tier0-FullOpts)
18 (0.32 % of base) : 108617.dasm - Microsoft.Extensions.DependencyInjection.Specification.DependencyInjectionSpecificationTests:DisposingScopeDisposesService():this (Tier1)
18 (1.15 % of base) : 214078.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:GetMetadataViewProvider[int]():System.Func`2[System.Collections.Generic.IDictionary`2[System.String,System.Object],int] (Tier0-FullOpts)
16 (0.33 % of base) : 108311.dasm - Microsoft.Extensions.DependencyInjection.Tests.ServiceProviderContainerTests:ResolvesConstantValueTypeServicesCorrectly(int):this (Tier1)
15 (0.35 % of base) : 206596.dasm - System.ComponentModel.Composition.ConstraintServicesTests:TryParseConstraint_ContractNameOperatorEqualsAndMetadataContainsKeyAsConstraintArgumen_CanParse():this (Tier0-FullOpts)
15 (0.39 % of base) : 206566.dasm - System.ComponentModel.Composition.ConstraintServicesTests:TryParseConstraint_MetadataContainsKeyAsConstraintArgument_CanParse():this (Tier0-FullOpts)
15 (2.84 % of base) : 117723.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
15 (2.84 % of base) : 176190.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
15 (2.84 % of base) : 170747.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
15 (2.84 % of base) : 272431.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
12 (0.33 % of base) : 108582.dasm - Microsoft.Extensions.DependencyInjection.Specification.DependencyInjectionSpecificationTests:SingletonServicesComeFromRootProvider():this (Tier1)
12 (0.74 % of base) : 205092.dasm - System.ComponentModel.Composition.ImportDefinitionTests:Constructor2_ValueAsConstraintArgument_ShouldSetConstraintProperty():this (Tier0-FullOpts)
12 (0.88 % of base) : 264649.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (Tier0-FullOpts)
11 (0.60 % of base) : 189317.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
11 (0.59 % of base) : 631107.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
10 (0.73 % of base) : 124088.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
Top method improvements (bytes):
-57 (-1.60 % of base) : 360366.dasm - System.Net.Http.Http2Connection+<ReadFrameAsync>d__61:MoveNext():this (Tier0-FullOpts)
-49 (-3.87 % of base) : 360444.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,System.String,byref):this (Tier0-FullOpts)
-42 (-0.61 % of base) : 603472.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindBinaryPattern(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryPatternSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundPattern:this (Tier1)
-36 (-7.30 % of base) : 558765.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTime[],ubyte):System.String (Tier0-FullOpts)
-36 (-7.19 % of base) : 557072.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTimeOffset[],ubyte):System.String (Tier0-FullOpts)
-36 (-7.13 % of base) : 557483.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetGuidsExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.Guid[],ubyte):System.String (Tier0-FullOpts)
-21 (-3.41 % of base) : 360445.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref):this (Tier0-FullOpts)
-21 (-0.90 % of base) : 443994.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
-20 (-0.81 % of base) : 625168.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
-18 (-6.74 % of base) : 360448.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValue(System.String,System.Text.Encoding,byref):this (Tier0-FullOpts)
-18 (-4.72 % of base) : 360453.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValues(System.ReadOnlySpan`1[System.String],System.String,System.Text.Encoding,byref):this (Tier0-FullOpts)
-9 (-0.61 % of base) : 147853.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
-8 (-0.09 % of base) : 68076.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (Tier0-FullOpts)
-7 (-0.13 % of base) : 154825.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindNamespaceOrTypeOrAliasSymbol>g__bindNullable|1005_1(byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
-6 (-1.70 % of base) : 561753.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[byte]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 559717.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[double]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 570177.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 561445.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[long]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 561493.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[long]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 561641.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[short]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
Top method regressions (percentages):
95 (9.43 % of base) : 551420.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetNumbersExpectedString(System.Text.Json.JsonWriterOptions,System.String,int[],uint[],long[],ulong[],float[],double[],System.Decimal[],ubyte):System.String (Tier0-FullOpts)
2 (6.06 % of base) : 566964.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
15 (2.84 % of base) : 117723.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
15 (2.84 % of base) : 176190.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
15 (2.84 % of base) : 170747.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
15 (2.84 % of base) : 272431.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (Instrumented Tier1)
3 (2.80 % of base) : 408601.dasm - DispatchProxyTests.DispatchProxyTests:Create_Proxy_Implements_All_Interfaces(ubyte) (Tier0-FullOpts)
3 (2.73 % of base) : 182618.dasm - System.GC:AllocateUninitializedArray[int](int,ubyte):int[] (Instrumented Tier1)
3 (2.73 % of base) : 172384.dasm - System.GC:AllocateUninitializedArray[ubyte](int,ubyte):ubyte[] (Instrumented Tier1)
3 (2.73 % of base) : 309894.dasm - System.GC:AllocateUninitializedArray[ushort](int,ubyte):ushort[] (Instrumented Tier1)
3 (2.36 % of base) : 114029.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
3 (2.36 % of base) : 243281.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
3 (2.36 % of base) : 346024.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
3 (2.36 % of base) : 509620.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
3 (2.36 % of base) : 631916.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
3 (2.36 % of base) : 172349.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
3 (2.36 % of base) : 441204.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
3 (2.36 % of base) : 442236.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
3 (2.36 % of base) : 615592.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
3 (2.36 % of base) : 111673.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
Top method improvements (percentages):
-36 (-7.30 % of base) : 558765.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTime[],ubyte):System.String (Tier0-FullOpts)
-36 (-7.19 % of base) : 557072.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTimeOffset[],ubyte):System.String (Tier0-FullOpts)
-36 (-7.13 % of base) : 557483.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetGuidsExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.Guid[],ubyte):System.String (Tier0-FullOpts)
-18 (-6.74 % of base) : 360448.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValue(System.String,System.Text.Encoding,byref):this (Tier0-FullOpts)
-18 (-4.72 % of base) : 360453.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValues(System.ReadOnlySpan`1[System.String],System.String,System.Text.Encoding,byref):this (Tier0-FullOpts)
-49 (-3.87 % of base) : 360444.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,System.String,byref):this (Tier0-FullOpts)
-21 (-3.41 % of base) : 360445.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref):this (Tier0-FullOpts)
-6 (-1.70 % of base) : 561753.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[byte]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 559717.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[double]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 570177.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 561445.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[long]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 561493.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[long]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 561641.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[short]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 557437.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.DateTime]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 557982.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Nullable`1[int]]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 558181.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Nullable`1[System.DateTimeOffset]]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 557177.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Nullable`1[ulong]]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 569705.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Text.Json.Serialization.Tests.Point_2D_With_ExtData]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 560410.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Text.Json.Serialization.Tests.SimpleStruct]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (Tier1)
-6 (-1.70 % of base) : 570577.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.TimeSpan]:ConfigureIgnoreCondition(System.Nullable`1[int]):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: 104015682 (overridden on cmd)
Total bytes of diff: 104021599 (overridden on cmd)
Total bytes of delta: 5917 (0.01 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
95 : 271969.dasm (9.43 % of base)
54 : 120677.dasm (4.09 % of base)
54 : 148608.dasm (0.84 % of base)
48 : 62803.dasm (0.43 % of base)
45 : 90288.dasm (0.72 % of base)
45 : 90292.dasm (0.72 % of base)
45 : 90161.dasm (0.73 % of base)
45 : 90179.dasm (0.73 % of base)
28 : 1915.dasm (9.59 % of base)
27 : 86469.dasm (0.88 % of base)
27 : 86501.dasm (0.88 % of base)
24 : 90147.dasm (0.66 % of base)
24 : 90297.dasm (0.66 % of base)
24 : 83733.dasm (0.85 % of base)
24 : 90281.dasm (0.66 % of base)
24 : 136403.dasm (0.59 % of base)
24 : 90167.dasm (0.66 % of base)
21 : 87612.dasm (0.64 % of base)
21 : 90291.dasm (0.69 % of base)
21 : 90207.dasm (0.70 % of base)
Top file improvements (bytes):
-154 : 57311.dasm (-3.85 % of base)
-53 : 164910.dasm (-4.35 % of base)
-36 : 273187.dasm (-7.13 % of base)
-36 : 273778.dasm (-7.30 % of base)
-36 : 272976.dasm (-7.19 % of base)
-26 : 164774.dasm (-0.74 % of base)
-21 : 164911.dasm (-3.66 % of base)
-18 : 164915.dasm (-4.81 % of base)
-18 : 205831.dasm (-4.66 % of base)
-18 : 164913.dasm (-6.74 % of base)
-11 : 48093.dasm (-0.51 % of base)
-11 : 9140.dasm (-0.51 % of base)
-11 : 53999.dasm (-0.51 % of base)
-10 : 69772.dasm (-1.31 % of base)
-8 : 21117.dasm (-0.09 % of base)
-8 : 21114.dasm (-0.47 % of base)
-8 : 57452.dasm (-1.87 % of base)
-6 : 148188.dasm (-1.68 % of base)
-6 : 4662.dasm (-0.16 % of base)
-5 : 165010.dasm (-0.24 % of base)
72 total files with Code Size differences (31 improved, 41 regressed), 20 unchanged.
Top method regressions (bytes):
95 (9.43 % of base) : 271969.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetNumbersExpectedString(System.Text.Json.JsonWriterOptions,System.String,int[],uint[],long[],ulong[],float[],double[],System.Decimal[],ubyte):System.String (FullOpts)
54 (0.84 % of base) : 148608.dasm - System.Buffers.Binary.Tests.BinaryReaderUnitTests:SpanWriteAndReadBigEndianHeterogeneousStruct():this (FullOpts)
54 (4.09 % of base) : 120677.dasm - System.Formats.Cbor.Tests.CborWriterTests:CoseKeyHelpers_ECDsaExportCosePublicKey_HappyPath(System.String,System.String,System.String,System.String,System.String) (FullOpts)
48 (0.43 % of base) : 62803.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (FullOpts)
45 (0.72 % of base) : 90292.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProvider_InvokeObject_RemovesProvider():this (FullOpts)
45 (0.73 % of base) : 90161.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProvider_InvokeType_RemovesProvider():this (FullOpts)
45 (0.72 % of base) : 90288.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProviderTransparent_InvokeObject_RemovesProvider():this (FullOpts)
45 (0.73 % of base) : 90179.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProviderTransparent_InvokeType_RemovesProvider():this (FullOpts)
28 (9.59 % of base) : 1915.dasm - Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
27 (0.88 % of base) : 86501.dasm - System.ComponentModel.Composition.ConstraintServicesTests:TryParseConstraint_ContractNameOperatorEqualsAsConstraintArgument_CanParse():this (FullOpts)
27 (0.88 % of base) : 86469.dasm - System.ComponentModel.Composition.ConstraintServicesTests:TryParseConstraint_ContractNameReverseOperatorEqualsAsConstraintArgument_CanParse():this (FullOpts)
24 (0.85 % of base) : 83733.dasm - System.ComponentModel.Composition.DirectoryCatalogTests:GetExports():this (FullOpts)
24 (0.66 % of base) : 90167.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProvider_InvokeObjectMultipleTimes_Refreshes():this (FullOpts)
24 (0.66 % of base) : 90281.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProvider_InvokeTypeMultipleTimes_Refreshes():this (FullOpts)
24 (0.66 % of base) : 90147.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProviderTransparent_InvokeObjectMultipleTimes_Refreshes():this (FullOpts)
24 (0.66 % of base) : 90297.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProviderTransparent_InvokeTypeMultipleTimes_Refreshes():this (FullOpts)
24 (0.59 % of base) : 136403.dasm - System.IO.Tests.BinaryWriterTests:BinaryWriter_SeekTests():this (FullOpts)
21 (0.64 % of base) : 87612.dasm - System.ComponentModel.Tests.TypeDescriptionProviderTests:GetFullComponentName_InvokeWithCustomTypeDescriptor_ReturnsExpected(System.Object,System.String):this (FullOpts)
21 (0.69 % of base) : 90291.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProviderTransparent_InvokeObject_GetProviderReturnsExpected():this (FullOpts)
21 (0.70 % of base) : 90207.dasm - System.ComponentModel.Tests.TypeDescriptorTests:AddProviderTransparent_InvokeType_GetProviderReturnsExpected():this (FullOpts)
Top method improvements (bytes):
-154 (-3.85 % of base) : 57311.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-53 (-4.35 % of base) : 164910.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,System.String,byref):this (FullOpts)
-36 (-7.30 % of base) : 273778.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTime[],ubyte):System.String (FullOpts)
-36 (-7.19 % of base) : 272976.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTimeOffset[],ubyte):System.String (FullOpts)
-36 (-7.13 % of base) : 273187.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetGuidsExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.Guid[],ubyte):System.String (FullOpts)
-26 (-0.74 % of base) : 164774.dasm - System.Net.Http.Http2Connection+<ReadFrameAsync>d__61:MoveNext():this (FullOpts)
-21 (-3.66 % of base) : 164911.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref):this (FullOpts)
-18 (-6.74 % of base) : 164913.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValue(System.String,System.Text.Encoding,byref):this (FullOpts)
-18 (-4.81 % of base) : 164915.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValues(System.ReadOnlySpan`1[System.String],System.String,System.Text.Encoding,byref):this (FullOpts)
-18 (-4.66 % of base) : 205831.dasm - System.Runtime.Serialization.CodeExporter:CreateTypeDeclaration(System.String,System.Runtime.Serialization.DataContracts.DataContract):System.CodeDom.CodeTypeDeclaration (FullOpts)
-11 (-0.51 % of base) : 48093.dasm - Microsoft.CodeAnalysis.CSharp.Binder:NotFound(Microsoft.CodeAnalysis.SyntaxNode,System.String,int,System.String,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo:this (FullOpts)
-11 (-0.51 % of base) : 9140.dasm - Microsoft.CodeAnalysis.CSharp.Binder:NotFound(Microsoft.CodeAnalysis.SyntaxNode,System.String,int,System.String,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo:this (FullOpts)
-11 (-0.51 % of base) : 53999.dasm - Microsoft.CodeAnalysis.CSharp.Binder:NotFound(Microsoft.CodeAnalysis.SyntaxNode,System.String,int,System.String,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo:this (FullOpts)
-10 (-1.31 % of base) : 69772.dasm - System.Collections.Concurrent.Tests.ConcurrentBagTests:IterativelyAddOnOneThreadThenTakeOnAnother_OrderMaintained(int) (FullOpts)
-8 (-1.87 % of base) : 57452.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:<CheckConstraints>g__populateDiagnosticsAndClear|14_0(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref) (FullOpts)
-8 (-0.09 % of base) : 21117.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
-8 (-0.47 % of base) : 21114.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts)
-6 (-0.16 % of base) : 4662.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-6 (-1.68 % of base) : 148188.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[int]:ConfigureIgnoreCondition(System.Nullable`1[int]):this (FullOpts)
-5 (-0.24 % of base) : 165010.dasm - System.Net.Http.Http2Connection+Http2Stream:OnStatus(int):this (FullOpts)
Top method regressions (percentages):
3 (16.67 % of base) : 184419.dasm - System.Reflection.Tests.AssemblyTests:GetExecutingAssembly():System.Reflection.Assembly (FullOpts)
28 (9.59 % of base) : 1915.dasm - Xunit.Sdk.MaxConcurrencySyncContext:Dispose():this (FullOpts)
95 (9.43 % of base) : 271969.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetNumbersExpectedString(System.Text.Json.JsonWriterOptions,System.String,int[],uint[],long[],ulong[],float[],double[],System.Decimal[],ubyte):System.String (FullOpts)
3 (9.09 % of base) : 36662.dasm - DryIoc.Converter:.cctor() (FullOpts)
3 (9.09 % of base) : 35055.dasm - LightInject.ServiceFactoryLoader:.cctor() (FullOpts)
3 (9.09 % of base) : 91169.dasm - Microsoft.Composition.Demos.ExtendedCollectionImports.Dictionaries.DictionaryExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 90905.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 90919.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 90917.dasm - System.Composition.Hosting.Providers.Lazy.LazyExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 30667.dasm - System.Composition.Hosting.Providers.Lazy.LazyExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 42627.dasm - System.Composition.Hosting.Providers.Lazy.LazyExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 90840.dasm - System.Composition.Hosting.Providers.Lazy.LazyWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 30631.dasm - System.Composition.Hosting.Providers.Lazy.LazyWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 42483.dasm - System.Composition.Hosting.Providers.Lazy.LazyWithMetadataExportDescriptorProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 90909.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:.cctor() (FullOpts)
3 (9.09 % of base) : 90575.dasm - System.Composition.TypedParts.ActivationFeatures.PropertyInjectionFeature:.cctor() (FullOpts)
3 (9.09 % of base) : 210028.dasm - System.Tests.Types.GenericTypeParameter1Of1Tests:CreateType():System.Type:this (FullOpts)
3 (9.09 % of base) : 214269.dasm - System.Tests.Types.GenericTypeParameter2Of2Tests:CreateType():System.Type:this (FullOpts)
3 (9.09 % of base) : 216649.dasm - System.Tests.Types.NestedGenericTypeParameter1Tests:CreateType():System.Type:this (FullOpts)
3 (9.09 % of base) : 210236.dasm - System.Tests.Types.NestedGenericTypeParameter2Tests:CreateType():System.Type:this (FullOpts)
Top method improvements (percentages):
-36 (-7.30 % of base) : 273778.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTime[],ubyte):System.String (FullOpts)
-36 (-7.19 % of base) : 272976.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetDatesExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.DateTimeOffset[],ubyte):System.String (FullOpts)
-36 (-7.13 % of base) : 273187.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:GetGuidsExpectedString(System.Text.Json.JsonWriterOptions,System.String,System.Guid[],ubyte):System.String (FullOpts)
-18 (-6.74 % of base) : 164913.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValue(System.String,System.Text.Encoding,byref):this (FullOpts)
-2 (-4.88 % of base) : 165274.dasm - System.Net.WebSockets.ManagedWebSocket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
-18 (-4.81 % of base) : 164915.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValues(System.ReadOnlySpan`1[System.String],System.String,System.Text.Encoding,byref):this (FullOpts)
-18 (-4.66 % of base) : 205831.dasm - System.Runtime.Serialization.CodeExporter:CreateTypeDeclaration(System.String,System.Runtime.Serialization.DataContracts.DataContract):System.CodeDom.CodeTypeDeclaration (FullOpts)
-2 (-4.44 % of base) : 136140.dasm - System.CodeDom.Tests.IndentedTextWriterTests+IndicatingTextWriter:Write(ubyte):this (FullOpts)
-53 (-4.35 % of base) : 164910.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,System.String,byref):this (FullOpts)
-154 (-3.85 % of base) : 57311.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-21 (-3.66 % of base) : 164911.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref):this (FullOpts)
-2 (-3.03 % of base) : 35940.dasm - Autofac.Core.Resolving.Pipeline.DefaultResolveRequestContext:ChangeScope(Autofac.Core.ISharingLifetimeScope):this (FullOpts)
-2 (-2.06 % of base) : 102926.dasm - System.Diagnostics.Tests.ProcessStartInfoTests+<>c:<TestEnvironmentOfChildProcess>b__5_4(System.Collections.DictionaryEntry):System.String:this (FullOpts)
-1 (-2.04 % of base) : 237908.dasm - System.Security.Permissions.Tests.CodeConnectAccessTests:CodeConnectAccessCallMethods() (FullOpts)
-4 (-1.94 % of base) : 3359.dasm - Microsoft.VisualStudio.Composition.LazyServices:CreateStronglyTypedLazyFactory(System.Type,System.Type):System.Func`3[System.Func`1[System.Object],System.Object,System.Object] (FullOpts)
-2 (-1.92 % of base) : 24928.dasm - Tests.System.TimeProviderTests+<>c:<NegativeTests>b__16_4():System.Object:this (FullOpts)
-2 (-1.92 % of base) : 217374.dasm - Tests.System.TimeProviderTests+<>c:<NegativeTests>b__16_4():System.Object:this (FullOpts)
-8 (-1.87 % of base) : 57452.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:<CheckConstraints>g__populateDiagnosticsAndClear|14_0(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref) (FullOpts)
-2 (-1.87 % of base) : 271629.dasm - System.Text.Json.Serialization.Tests.DefaultJsonTypeInfoResolverTests+<>c__DisplayClass75_0`1[int]:<TypeInfoPropertiesDefaults_Generic>b__0():System.Object:this (FullOpts)
-2 (-1.87 % of base) : 217373.dasm - Tests.System.TimeProviderTests+<>c:<NegativeTests>b__16_3():System.Object: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: 11337016 (overridden on cmd)
Total bytes of diff: 11336920 (overridden on cmd)
Total bytes of delta: -96 (-0.00 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
18 : 34558.dasm (1.26 % of base)
14 : 34693.dasm (0.79 % of base)
12 : 33426.dasm (0.69 % of base)
8 : 35208.dasm (1.46 % of base)
7 : 31712.dasm (2.46 % of base)
6 : 32179.dasm (0.25 % of base)
6 : 35337.dasm (1.81 % of base)
6 : 2101.dasm (1.13 % of base)
6 : 21811.dasm (0.17 % of base)
6 : 35272.dasm (1.08 % of base)
6 : 35336.dasm (1.17 % of base)
6 : 36028.dasm (1.33 % of base)
6 : 25532.dasm (0.43 % of base)
6 : 25755.dasm (0.29 % of base)
6 : 34741.dasm (0.63 % of base)
5 : 7879.dasm (0.16 % of base)
3 : 28571.dasm (0.87 % of base)
3 : 34451.dasm (0.90 % of base)
3 : 14233.dasm (3.45 % of base)
3 : 26037.dasm (0.66 % of base)
Top file improvements (bytes):
-154 : 29680.dasm (-3.88 % of base)
-8 : 17156.dasm (-0.09 % of base)
-8 : 26196.dasm (-1.87 % of base)
-6 : 18192.dasm (-0.19 % of base)
-5 : 17152.dasm (-0.31 % of base)
-4 : 7696.dasm (-0.77 % of base)
-3 : 16753.dasm (-1.40 % of base)
-3 : 23990.dasm (-0.19 % of base)
-3 : 9031.dasm (-0.46 % of base)
-3 : 22617.dasm (-0.09 % of base)
-2 : 3358.dasm (-0.18 % of base)
-2 : 8263.dasm (-0.54 % of base)
-2 : 9919.dasm (-0.28 % of base)
-2 : 32577.dasm (-0.04 % of base)
-2 : 8229.dasm (-0.25 % of base)
-2 : 12160.dasm (-0.22 % of base)
-2 : 33870.dasm (-0.34 % of base)
-2 : 11118.dasm (-0.19 % of base)
-2 : 21751.dasm (-0.12 % of base)
-2 : 3338.dasm (-0.25 % of base)
60 total files with Code Size differences (33 improved, 27 regressed), 20 unchanged.
Top method regressions (bytes):
18 (1.26 % of base) : 34558.dasm - System.Management.Automation.CommandProcessor:.cctor() (FullOpts)
14 (0.79 % of base) : 34693.dasm - System.Management.Automation.MergedCommandParameterMetadata:GetMatchingParameter(System.String,ubyte,ubyte,System.Management.Automation.InvocationInfo):System.Management.Automation.MergedCompiledCommandParameter:this (FullOpts)
12 (0.69 % of base) : 33426.dasm - System.Management.Automation.LocationGlobber:ResolveDriveQualifiedPath(System.String,System.Management.Automation.CmdletProviderContext,ubyte,byref):System.Collections.ObjectModel.Collection`1[System.Management.Automation.PathInfo]:this (FullOpts)
8 (1.46 % of base) : 35208.dasm - System.Management.Automation.ReflectionParameterBinder+<>c__DisplayClass8_0:<GetSetter>b__0(System.Tuple`2[System.Type,System.String]):System.Action`2[System.Object,System.Object]:this (FullOpts)
7 (2.46 % of base) : 31712.dasm - System.Management.Automation.Security.SystemPolicy:GetWldpPolicy(System.String,System.Runtime.InteropServices.SafeHandle):int (FullOpts)
6 (0.29 % of base) : 25755.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitForStatement(Microsoft.CodeAnalysis.CSharp.Syntax.ForStatementSyntax):this (FullOpts)
6 (0.17 % of base) : 21811.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
6 (0.43 % of base) : 25532.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitLocalDeclaration(Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
6 (1.13 % of base) : 2101.dasm - Microsoft.FSharp.Reflection.FSharpValue:MakeFunction(System.Type,Microsoft.FSharp.Core.FSharpFunc`2[System.Object,System.Object]):System.Object (FullOpts)
6 (1.33 % of base) : 36028.dasm - System.Dynamic.BindingRestrictions+InstanceRestriction:GetExpression():System.Linq.Expressions.Expression:this (FullOpts)
6 (1.81 % of base) : 35337.dasm - System.Linq.Expressions.TypeBinaryExpression:ByValParameterTypeEqual(System.Linq.Expressions.ParameterExpression):System.Linq.Expressions.Expression:this (FullOpts)
6 (1.17 % of base) : 35336.dasm - System.Linq.Expressions.TypeBinaryExpression:ReduceTypeEqual():System.Linq.Expressions.Expression:this (FullOpts)
6 (0.25 % of base) : 32179.dasm - System.Management.Automation.Language.Compiler:.cctor() (FullOpts)
6 (0.63 % of base) : 34741.dasm - System.Management.Automation.ParameterBinderController:BindPositionalParameters(System.Collections.ObjectModel.Collection`1[System.Management.Automation.CommandParameterInternal],uint,uint,byref):System.Collections.ObjectModel.Collection`1[System.Management.Automation.CommandParameterInternal]:this (FullOpts)
6 (1.08 % of base) : 35272.dasm - System.Runtime.CompilerServices.CallSiteBinder:Stitch[System.__Canon](System.Linq.Expressions.Expression,System.Runtime.CompilerServices.CallSiteBinder+LambdaSignature`1[System.__Canon]):System.Linq.Expressions.Expression`1[System.__Canon] (FullOpts)
5 (0.16 % of base) : 7879.dasm - FSharp.Compiler.MethodOverrides+DispatchSlotChecking:GetSlotImplSets(FSharp.Compiler.InfoReader+InfoReader,FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.AccessibilityLogic+AccessorDomain,ubyte,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+TType,FSharp.Compiler.Text.Range]]):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+SlotImplSet] (FullOpts)
3 (0.66 % of base) : 2763.dasm - Internal.Utilities.FSharpEnvironment:getDotnetHostPath():Microsoft.FSharp.Core.FSharpOption`1[System.String] (FullOpts)
3 (0.90 % of base) : 34451.dasm - Microsoft.ApplicationInsights.Metrics.MetricSeriesConfigurationForMeasurement:.cctor() (FullOpts)
3 (3.45 % of base) : 28502.dasm - Microsoft.CodeAnalysis.CSharp.ErrorFacts:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
3 (0.66 % of base) : 26037.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitVariableDeclarator(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax):this (FullOpts)
Top method improvements (bytes):
-154 (-3.88 % of base) : 29680.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-8 (-1.87 % of base) : 26196.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:<CheckConstraints>g__populateDiagnosticsAndClear|14_0(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref) (FullOpts)
-8 (-0.09 % of base) : 17156.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
-6 (-0.19 % of base) : 18192.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-5 (-0.31 % of base) : 17152.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp11Connection(System.Net.Http.HttpConnection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts)
-4 (-0.77 % of base) : 7696.dasm - FSharp.Compiler.CheckDeclarations+EstablishTypeDefinitionCores:GetTyconAttribs(FSharp.Compiler.TcGlobals+TcGlobals,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib]):System.Tuple`5[ubyte,ubyte,ubyte,ubyte,ubyte] (FullOpts)
-3 (-0.46 % of base) : 9031.dasm - FSharp.Compiler.CheckExpressions+TcAttributesWithPossibleTargetsEx@10713:Invoke(ubyte,FSharp.Compiler.Syntax.SynAttribute):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[int,FSharp.Compiler.TypedTree+Attrib]],ubyte]:this (FullOpts)
-3 (-0.09 % of base) : 22617.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause]]:this (FullOpts)
-3 (-0.19 % of base) : 23990.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbolBase:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.Syntax.BaseMethodDeclarationSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]]:this (FullOpts)
-3 (-1.40 % of base) : 16753.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
-2 (-0.25 % of base) : 8229.dasm - FSharp.Compiler.CheckExpressions:MakeApplicableExprWithFlex(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.CheckExpressions+ApplicableExpr (FullOpts)
-2 (-0.22 % of base) : 12160.dasm - FSharp.Compiler.NicePrint+PrintTypes:layoutArgInfo(FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.TypedTreeOps+SimplifyTypes+TypeSimplificationInfo,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+ArgReprInfo):FSharp.Compiler.Text.Layout (FullOpts)
-2 (-0.18 % of base) : 3358.dasm - FSharp.Compiler.ParseAndCheckInputs:ParseInput(Microsoft.FSharp.Core.FSharpFunc`2[Internal.Utilities.Text.Lexing.LexBuffer`1[ushort],FSharp.Compiler.Parser+token],FSharp.Compiler.Diagnostics.FSharpDiagnosticOptions,FSharp.Compiler.ErrorLogger+ErrorLogger,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort],Microsoft.FSharp.Core.FSharpOption`1[System.String],System.String,System.Tuple`2[ubyte,ubyte]):FSharp.Compiler.Syntax.ParsedInput (FullOpts)
-2 (-0.19 % of base) : 11118.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks:CheckModuleBinding(FSharp.Compiler.PostTypeCheckSemanticChecks+cenv,FSharp.Compiler.PostTypeCheckSemanticChecks+env,FSharp.Compiler.TypedTree+Binding) (FullOpts)
-2 (-0.25 % of base) : 3338.dasm - FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure:ParseScriptText(System.String,FSharp.Compiler.Text.ISourceText,FSharp.Compiler.CompilerConfig+TcConfig,FSharp.Compiler.ScriptClosure+CodeContext,FSharp.Compiler.Lexhelp+LexResourceManager,FSharp.Compiler.ErrorLogger+ErrorLogger):FSharp.Compiler.Syntax.ParsedInput (FullOpts)
-2 (-0.28 % of base) : 9919.dasm - FSharp.Compiler.SignatureConformance+clo@122-117:Invoke(FSharp.Compiler.TypedTree+Typar,FSharp.Compiler.TypedTree+Typar):ubyte:this (FullOpts)
-2 (-0.54 % of base) : 8263.dasm - FSharp.Compiler.TypedTreeOps:accFreeTyparRefLeftToRight(FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],FSharp.Compiler.TypedTree+Typar):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar] (FullOpts)
-2 (-0.12 % of base) : 21751.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArgumentsEvaluate(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult]:this (FullOpts)
-2 (-0.34 % of base) : 33870.dasm - System.Management.Automation.Language.Compiler:VisitVariableExpression(System.Management.Automation.Language.VariableExpressionAst):System.Object:this (FullOpts)
-2 (-0.04 % of base) : 32577.dasm - System.Management.Automation.Runspaces.TypeTable:Process_TypesV3_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
Top method regressions (percentages):
3 (3.45 % of base) : 28502.dasm - Microsoft.CodeAnalysis.CSharp.ErrorFacts:get_ResourceManager():System.Resources.ResourceManager (FullOpts)
3 (3.45 % of base) : 14233.dasm - SixLabors.ImageSharp.Tests.TestEnvironment:.cctor() (FullOpts)
3 (2.73 % of base) : 15007.dasm - Microsoft.ML.Data.PrimitiveDataViewType:.ctor(System.Type):this (FullOpts)
7 (2.46 % of base) : 31712.dasm - System.Management.Automation.Security.SystemPolicy:GetWldpPolicy(System.String,System.Runtime.InteropServices.SafeHandle):int (FullOpts)
6 (1.81 % of base) : 35337.dasm - System.Linq.Expressions.TypeBinaryExpression:ByValParameterTypeEqual(System.Linq.Expressions.ParameterExpression):System.Linq.Expressions.Expression:this (FullOpts)
8 (1.46 % of base) : 35208.dasm - System.Management.Automation.ReflectionParameterBinder+<>c__DisplayClass8_0:<GetSetter>b__0(System.Tuple`2[System.Type,System.String]):System.Action`2[System.Object,System.Object]:this (FullOpts)
6 (1.33 % of base) : 36028.dasm - System.Dynamic.BindingRestrictions+InstanceRestriction:GetExpression():System.Linq.Expressions.Expression:this (FullOpts)
18 (1.26 % of base) : 34558.dasm - System.Management.Automation.CommandProcessor:.cctor() (FullOpts)
6 (1.17 % of base) : 35336.dasm - System.Linq.Expressions.TypeBinaryExpression:ReduceTypeEqual():System.Linq.Expressions.Expression:this (FullOpts)
6 (1.13 % of base) : 2101.dasm - Microsoft.FSharp.Reflection.FSharpValue:MakeFunction(System.Type,Microsoft.FSharp.Core.FSharpFunc`2[System.Object,System.Object]):System.Object (FullOpts)
6 (1.08 % of base) : 35272.dasm - System.Runtime.CompilerServices.CallSiteBinder:Stitch[System.__Canon](System.Linq.Expressions.Expression,System.Runtime.CompilerServices.CallSiteBinder+LambdaSignature`1[System.__Canon]):System.Linq.Expressions.Expression`1[System.__Canon] (FullOpts)
3 (0.90 % of base) : 34451.dasm - Microsoft.ApplicationInsights.Metrics.MetricSeriesConfigurationForMeasurement:.cctor() (FullOpts)
3 (0.87 % of base) : 28571.dasm - Roslyn.Utilities.UICultureUtilities:TryGetCurrentUICultureSetter(byref):ubyte (FullOpts)
3 (0.84 % of base) : 23093.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceTypeParameterSymbolBase:GetAttributesBag():Microsoft.CodeAnalysis.CustomAttributesBag`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
2 (0.82 % of base) : 25928.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:Join(byref):this (FullOpts)
14 (0.79 % of base) : 34693.dasm - System.Management.Automation.MergedCommandParameterMetadata:GetMatchingParameter(System.String,ubyte,ubyte,System.Management.Automation.InvocationInfo):System.Management.Automation.MergedCompiledCommandParameter:this (FullOpts)
12 (0.69 % of base) : 33426.dasm - System.Management.Automation.LocationGlobber:ResolveDriveQualifiedPath(System.String,System.Management.Automation.CmdletProviderContext,ubyte,byref):System.Collections.ObjectModel.Collection`1[System.Management.Automation.PathInfo]:this (FullOpts)
3 (0.66 % of base) : 2763.dasm - Internal.Utilities.FSharpEnvironment:getDotnetHostPath():Microsoft.FSharp.Core.FSharpOption`1[System.String] (FullOpts)
3 (0.66 % of base) : 26037.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitVariableDeclarator(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax):this (FullOpts)
6 (0.63 % of base) : 34741.dasm - System.Management.Automation.ParameterBinderController:BindPositionalParameters(System.Collections.ObjectModel.Collection`1[System.Management.Automation.CommandParameterInternal],uint,uint,byref):System.Collections.ObjectModel.Collection`1[System.Management.Automation.CommandParameterInternal]:this (FullOpts)
Top method improvements (percentages):
-154 (-3.88 % of base) : 29680.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
-8 (-1.87 % of base) : 26196.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:<CheckConstraints>g__populateDiagnosticsAndClear|14_0(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref) (FullOpts)
-3 (-1.40 % of base) : 16753.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
-1 (-0.97 % of base) : 768.dasm - System.Text.UnicodeEncoding:.cctor() (FullOpts)
-4 (-0.77 % of base) : 7696.dasm - FSharp.Compiler.CheckDeclarations+EstablishTypeDefinitionCores:GetTyconAttribs(FSharp.Compiler.TcGlobals+TcGlobals,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib]):System.Tuple`5[ubyte,ubyte,ubyte,ubyte,ubyte] (FullOpts)
-1 (-0.71 % of base) : 13578.dasm - FSharp.Compiler.CodeAnalysis.IncrementalBuilder:TryGetSlotOfFileName(System.String):Microsoft.FSharp.Core.FSharpOption`1[int]:this (FullOpts)
-1 (-0.67 % of base) : 22520.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:GetParameterListSyntax(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterListSyntax (FullOpts)
-2 (-0.54 % of base) : 8263.dasm - FSharp.Compiler.TypedTreeOps:accFreeTyparRefLeftToRight(FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],FSharp.Compiler.TypedTree+Typar):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar] (FullOpts)
-1 (-0.50 % of base) : 3292.dasm - FSharp.Compiler.CompilerImports:IsResolved@492(FSharp.Compiler.CompilerConfig+TcConfig,FSharp.Compiler.CompilerImports+ResolveAssemblyReferenceMode,FSharp.Compiler.Text.Range,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],System.String):ubyte (FullOpts)
-1 (-0.46 % of base) : 5571.dasm - <StartupCode$FSharp-Compiler-Service>.$IncrementalBuild:getSwitchValue@1407(Microsoft.FSharp.Collections.FSharpList`1[System.String],System.String):Microsoft.FSharp.Core.FSharpOption`1[System.String] (FullOpts)
-1 (-0.46 % of base) : 7833.dasm - FSharp.Compiler.CheckDeclarations+EstablishTypeDefinitionCores:insertEdgeToTycon@4349(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Entity],FSharp.Compiler.TypedTree+Entity,FSharp.Compiler.TypedTree+Entity,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Entity,FSharp.Compiler.TypedTree+Entity]]):Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Entity,FSharp.Compiler.TypedTree+Entity]] (FullOpts)
-3 (-0.46 % of base) : 9031.dasm - FSharp.Compiler.CheckExpressions+TcAttributesWithPossibleTargetsEx@10713:Invoke(ubyte,FSharp.Compiler.Syntax.SynAttribute):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[int,FSharp.Compiler.TypedTree+Attrib]],ubyte]:this (FullOpts)
-1 (-0.43 % of base) : 23005.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:GetDefaultValueSyntaxForIsNullableAnalysisEnabled(Microsoft.CodeAnalysis.CSharp.Syntax.ParameterSyntax):Microsoft.CodeAnalysis.SyntaxNode (FullOpts)
-1 (-0.41 % of base) : 8311.dasm - FSharp.Compiler.CheckExpressions+GeneralizationHelpers:relevantUniqueSubtypeConstraint@2185(FSharp.Compiler.Text.Range,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.TypedTree+Typar):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TType] (FullOpts)
-1 (-0.39 % of base) : 9188.dasm - FSharp.Compiler.ConstraintSolver:action@1-26(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.TypedTreeOps+TypeEquivEnv,Internal.Utilities.Collections.HashMultiMap`2[long,System.Tuple`2[FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.Text.Range]],FSharp.Compiler.TypedTree+Typar) (FullOpts)
-2 (-0.34 % of base) : 33870.dasm - System.Management.Automation.Language.Compiler:VisitVariableExpression(System.Management.Automation.Language.VariableExpressionAst):System.Object:this (FullOpts)
-1 (-0.34 % of base) : 9205.dasm - FSharp.Compiler.ConstraintSolver:eliminateRedundant@2131(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.TypedTreeOps+TypeEquivEnv,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TyparConstraint],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TyparConstraint]):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TyparConstraint] (FullOpts)
-1 (-0.33 % of base) : 10422.dasm - FSharp.Compiler.TypedTreeOps+PrettyTypes:computeKeep@2693(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar]):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar]] (FullOpts)
-1 (-0.32 % of base) : 11259.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks:CheckAttrib(FSharp.Compiler.PostTypeCheckSemanticChecks+cenv,FSharp.Compiler.PostTypeCheckSemanticChecks+env,FSharp.Compiler.TypedTree+Attrib) (FullOpts)
-1 (-0.31 % of base) : 7153.dasm - FSharp.Compiler.ParseAndCheckInputs:checkInputFile(FSharp.Compiler.CompilerConfig+TcConfig,System.String) (FullOpts)