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.Nullable1[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.Nullable1[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 : 1140.dasm (66.67 % of base)
          32 : 1173.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 : 411.dasm (0.13 % of base)
           2 : 40416.dasm (0.16 % of base)
           2 : 6312.dasm (0.24 % of base)
           2 : 708.dasm (0.59 % of base)
           2 : 6251.dasm (0.18 % 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 : 2343.dasm (-11.01 % of base)
         -24 : 39610.dasm (-12.37 % of base)
         -24 : 18043.dasm (-2.49 % of base)
         -24 : 47411.dasm (-14.12 % of base)
         -20 : 18421.dasm (-1.25 % of base)
         -14 : 7488.dasm (-2.25 % of base)
         -14 : 6262.dasm (-1.87 % of base)
         -12 : 598.dasm (-6.74 % of base)
         -12 : 31646.dasm (-0.77 % of base)
         -12 : 18049.dasm (-2.78 % of base)
         -12 : 22541.dasm (-3.73 % of base)
         -12 : 29854.dasm (-1.20 % of base)
         -12 : 29855.dasm (-1.27 % of base)
         -12 : 44539.dasm (-4.17 % of base)
         -12 : 30699.dasm (-0.93 % 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 : 126248.dasm (6.26 % of base)
          90 : 166205.dasm (12.78 % of base)
          90 : 53447.dasm (12.78 % of base)
          90 : 64923.dasm (6.26 % of base)
          90 : 147992.dasm (6.26 % of base)
          90 : 61419.dasm (12.78 % of base)
          90 : 79736.dasm (12.78 % of base)
          88 : 162036.dasm (5.91 % of base)
          88 : 69369.dasm (5.95 % of base)
          88 : 89163.dasm (5.94 % of base)
          88 : 90904.dasm (5.95 % of base)
          88 : 16551.dasm (5.94 % of base)
          88 : 70158.dasm (5.94 % of base)
          88 : 121989.dasm (5.94 % of base)
          88 : 131742.dasm (5.94 % of base)
          88 : 34326.dasm (5.95 % of base)
          78 : 69217.dasm (5.96 % of base)
          78 : 82715.dasm (5.87 % of base)
          78 : 91599.dasm (5.94 % 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 : 55386.dasm (-0.73 % of base)
         -12 : 72270.dasm (-2.41 % of base)
         -12 : 138294.dasm (-4.17 % of base)
         -12 : 97726.dasm (-0.89 % of base)
         -10 : 112226.dasm (-0.12 % of base)
         -10 : 111605.dasm (-1.11 % of base)
         -10 : 111939.dasm (-0.34 % of base)
          -8 : 81814.dasm (-0.10 % of base)
          -8 : 50776.dasm (-1.48 % of base)
          -8 : 22531.dasm (-3.15 % of base)
          -8 : 75261.dasm (-2.31 % of base)
          -8 : 97374.dasm (-0.22 % of base)
          -6 : 166243.dasm (-0.70 % of base)
          -6 : 68330.dasm (-0.68 % of base)
          -6 : 102296.dasm (-1.28 % of base)
          -6 : 38842.dasm (-0.68 % of base)
          -6 : 53709.dasm (-0.70 % of base)
          -6 : 61474.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) : 126248.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) : 147992.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.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) : 69369.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)
          88 (5.95 % of base) : 90904.dasm - System.Linq.Expressions.ParameterExpression:Make(System.Type,System.String,ubyte):System.Linq.Expressions.ParameterExpression (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.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) : 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.95 % of base) : 34326.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.87 % of base) : 82715.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)
          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.70 % of base) : 166243.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)
          -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) : 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)

Top method regressions (percentages):
          40 (83.33 % of base) : 10234.dasm - System.RuntimeType:get_IsActualEnum():ubyte:this (Tier1)
          40 (83.33 % of base) : 54925.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) : 140162.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
          40 (83.33 % of base) : 154864.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) : 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) : 105986.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) : 141932.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) : 43701.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
          42 (63.64 % of base) : 84024.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) : 143899.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) : 16260.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
          42 (63.64 % of base) : 60436.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) : 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.70 % of base) : 79769.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)
          -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) : 60633.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 : 3181.dasm (66.67 % of base)
          32 : 2358.dasm (47.06 % 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 : 21545.dasm (-0.27 % of base)
         -28 : 57608.dasm (-0.81 % 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 : 34239.dasm (-2.33 % of base)
         -12 : 41579.dasm (-3.73 % of base)
         -12 : 56243.dasm (-0.77 % of base)
         -12 : 62827.dasm (-1.35 % of base)
         -12 : 70668.dasm (-4.17 % of base)
         -12 : 12907.dasm (-6.74 % of base)
         -12 : 42169.dasm (-2.41 % of base)
         -12 : 46844.dasm (-2.78 % 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 : 319615.dasm (51.52 % of base)
          34 : 341372.dasm (51.52 % of base)
          34 : 342754.dasm (51.52 % of base)
          34 : 306560.dasm (51.52 % of base)
          34 : 325075.dasm (51.52 % of base)
          34 : 328849.dasm (4.20 % of base)
          34 : 344327.dasm (51.52 % of base)
          34 : 237489.dasm (51.52 % of base)
          34 : 338320.dasm (51.52 % of base)
          32 : 257437.dasm (66.67 % of base)
          32 : 257508.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 : 206254.dasm (-1.76 % of base)
        -336 : 206221.dasm (-1.71 % of base)
        -330 : 205590.dasm (-1.70 % of base)
        -324 : 206421.dasm (-1.69 % of base)
        -324 : 207351.dasm (-1.61 % of base)
        -324 : 199814.dasm (-1.92 % of base)
        -312 : 205457.dasm (-1.58 % of base)
        -312 : 205526.dasm (-1.58 % of base)
        -312 : 205558.dasm (-1.63 % of base)
        -312 : 207280.dasm (-1.61 % of base)
        -312 : 205491.dasm (-1.57 % of base)
        -306 : 207081.dasm (-1.62 % of base)
        -306 : 176957.dasm (-1.82 % 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) : 319615.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) : 306560.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) : 344327.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
          34 (51.52 % of base) : 237489.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
          34 (51.52 % of base) : 338320.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) : 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)
          32 (66.67 % of base) : 322273.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) : 326583.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
          32 (66.67 % of base) : 334765.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
          34 (51.52 % of base) : 319615.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 : 18294.dasm (0.91 % of base)
           8 : 17912.dasm (0.43 % of base)
           8 : 18296.dasm (1.31 % of base)
           8 : 18295.dasm (0.92 % of base)
           6 : 274735.dasm (0.34 % of base)
           6 : 21996.dasm (2.75 % of base)
           4 : 266046.dasm (0.26 % of base)
           4 : 267306.dasm (0.15 % of base)
           4 : 281067.dasm (0.20 % of base)
           4 : 250950.dasm (0.67 % of base)
           4 : 250951.dasm (0.71 % of base)
           4 : 256796.dasm (0.44 % of base)
           4 : 271872.dasm (1.18 % of base)
           4 : 250960.dasm (0.50 % of base)
           4 : 250962.dasm (0.43 % of base)
           4 : 271870.dasm (0.53 % of base)
           4 : 271871.dasm (0.54 % of base)
           4 : 274699.dasm (0.23 % 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 : 31035.dasm (-0.48 % of base)
         -32 : 13058.dasm (-1.44 % of base)
         -30 : 157934.dasm (-6.17 % of base)
         -28 : 31926.dasm (-0.71 % of base)
         -28 : 65940.dasm (-0.87 % of base)
         -26 : 31331.dasm (-1.16 % of base)
         -24 : 13249.dasm (-0.91 % of base)
         -24 : 32426.dasm (-1.30 % of base)
         -24 : 110615.dasm (-0.21 % of base)
         -24 : 171169.dasm (-2.39 % of base)
         -24 : 31399.dasm (-0.90 % of base)
         -24 : 39713.dasm (-0.49 % of base)
         -22 : 214179.dasm (-4.76 % of base)
         -20 : 12831.dasm (-0.18 % of base)
         -20 : 223311.dasm (-4.85 % 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 : 436226.dasm (3.83 % of base)
          48 : 525407.dasm (3.27 % of base)
          48 : 525410.dasm (5.21 % of base)
          40 : 401509.dasm (4.75 % of base)
          34 : 335456.dasm (51.52 % of base)
          34 : 349588.dasm (51.52 % of base)
          34 : 376460.dasm (51.52 % of base)
          34 : 384480.dasm (51.52 % of base)
          34 : 712316.dasm (51.52 % of base)
          34 : 481424.dasm (51.52 % of base)
          34 : 496204.dasm (51.52 % of base)
          34 : 346904.dasm (51.52 % of base)
          34 : 570292.dasm (51.52 % of base)
          34 : 577552.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 : 701204.dasm (51.52 % of base)
          34 : 716348.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 : 595224.dasm (-6.02 % of base)
         -30 : 597923.dasm (-5.68 % of base)
         -30 : 598910.dasm (-5.73 % of base)
         -30 : 605185.dasm (-5.68 % of base)
         -30 : 628710.dasm (-5.68 % of base)
         -30 : 629030.dasm (-5.68 % of base)
         -30 : 182949.dasm (-1.17 % of base)
         -30 : 598481.dasm (-6.00 % of base)
         -30 : 598486.dasm (-5.68 % of base)
         -30 : 620094.dasm (-5.68 % of base)
         -30 : 627249.dasm (-5.68 % of base)
         -30 : 631326.dasm (-5.68 % of base)
         -30 : 598014.dasm (-5.68 % of base)
         -30 : 598469.dasm (-5.68 % of base)
         -30 : 612617.dasm (-5.68 % 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) : 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) : 384480.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
          34 (51.52 % of base) : 712316.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) : 496204.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) : 570292.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) : 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) : 701204.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
          34 (51.52 % of base) : 716348.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) : 173953.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
          32 (66.67 % of base) : 657503.dasm - System.RuntimeType:IsDelegate():ubyte:this (Tier1)
          32 (66.67 % of base) : 173296.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) : 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) : 384480.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
          34 (51.52 % of base) : 712316.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) : 496204.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) : 570292.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) : 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) : 701204.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)
          34 (51.52 % of base) : 716348.dasm - System.RuntimeType:get_IsEnum():ubyte:this (Tier1)

Top method improvements (percentages):
          -6 (-16.67 % of base) : 135145.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
          -6 (-16.67 % of base) : 122743.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:OnCreate(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
          -8 (-15.38 % of base) : 641898.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
          -8 (-15.38 % of base) : 619387.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) : 385870.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Tier1)
          -6 (-11.11 % of base) : 716201.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Tier1)
          -6 (-11.11 % of base) : 720069.dasm - System.Threading.WaitHandle:Dispose(ubyte):this (Tier1)
          -6 (-11.11 % of base) : 717031.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 : 86944.dasm (0.33 % of base)
          16 : 86924.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 : 136845.dasm (0.46 % of base)
          12 : 136826.dasm (0.47 % of base)
          12 : 136818.dasm (0.46 % of base)
          12 : 136855.dasm (0.46 % of base)
          12 : 136861.dasm (0.44 % of base)
          10 : 34515.dasm (0.85 % of base)
          10 : 136848.dasm (0.42 % of base)
          10 : 136883.dasm (0.42 % of base)
          10 : 136837.dasm (0.42 % of base)
          10 : 136897.dasm (0.42 % of base)
          10 : 80695.dasm (0.18 % of base)
           8 : 136884.dasm (0.82 % of base)
           8 : 135804.dasm (0.70 % 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 : 89979.dasm (-2.26 % of base)
         -34 : 89992.dasm (-2.31 % 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 : 261973.dasm (-4.26 % of base)
         -24 : 42447.dasm (-12.00 % of base)
         -24 : 56613.dasm (-1.06 % 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) : 44877.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:get_IsExtern():ubyte:this (FullOpts)
          -6 (-7.50 % of base) : 50533.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 : 83.dasm (47.06 % of base)
          32 : 1037.dasm (66.67 % of base)
          32 : 1061.dasm (66.67 % of base)
          12 : 37225.dasm (0.61 % of base)
           4 : 34564.dasm (0.11 % of base)
           4 : 36550.dasm (0.52 % of base)
           4 : 36674.dasm (0.86 % of base)
           4 : 36906.dasm (0.58 % of base)
           4 : 2640.dasm (0.59 % of base)
           2 : 30946.dasm (1.43 % of base)
           2 : 3788.dasm (1.79 % of base)
           2 : 37119.dasm (0.43 % of base)
           2 : 3751.dasm (3.57 % of base)
           2 : 15556.dasm (0.13 % of base)
           2 : 15577.dasm (0.59 % of base)
           2 : 15834.dasm (1.47 % of base)
           2 : 17324.dasm (1.22 % 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 : 28904.dasm (-1.30 % of base)
         -24 : 30101.dasm (-1.06 % of base)
         -24 : 3761.dasm (-6.74 % of base)
         -24 : 32095.dasm (-0.50 % of base)
         -24 : 8136.dasm (-4.35 % of base)
         -22 : 8697.dasm (-1.07 % of base)
         -20 : 29335.dasm (-0.64 % of base)
         -20 : 3651.dasm (-0.37 % of base)
         -20 : 8788.dasm (-4.67 % of base)
         -18 : 9055.dasm (-0.38 % of base)
         -18 : 9199.dasm (-1.29 % of base)
         -18 : 12171.dasm (-1.90 % of base)
         -18 : 13757.dasm (-2.11 % of base)
         -16 : 28845.dasm (-0.48 % of base)
         -16 : 9570.dasm (-1.46 % 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.Nullable1[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 : 15612.dasm (0.22 % of base)
           3 : 16520.dasm (0.87 % of base)
           3 : 1725.dasm (0.35 % of base)
           3 : 17342.dasm (0.07 % of base)
           3 : 1824.dasm (0.47 % of base)
           3 : 19448.dasm (0.25 % of base)
           3 : 20760.dasm (0.30 % of base)
           3 : 6622.dasm (0.58 % of base)
           3 : 1477.dasm (0.56 % 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 : 16545.dasm (-0.19 % of base)
          -6 : 2720.dasm (-1.68 % of base)
          -4 : 7962.dasm (-0.43 % of base)
          -3 : 17252.dasm (-0.09 % of base)
          -3 : 5994.dasm (-1.40 % of base)
          -3 : 8962.dasm (-0.63 % of base)
          -2 : 19082.dasm (-4.88 % of base)
          -2 : 14762.dasm (-0.02 % of base)
          -1 : 14147.dasm (-0.20 % of base)
          -1 : 17522.dasm (-0.09 % of base)
          -1 : 19137.dasm (-0.35 % of base)
          -1 : 20707.dasm (-0.10 % of base)
          -1 : 3116.dasm (-0.31 % of base)
          -1 : 3480.dasm (-0.37 % of base)
          -1 : 430.dasm (-0.06 % of base)
          -1 : 4933.dasm (-0.16 % of base)
          -1 : 5185.dasm (-0.20 % of base)
          -1 : 726.dasm (-0.97 % 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 : 99181.dasm (0.30 % of base)
           3 : 77708.dasm (0.07 % 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 : 38988.dasm (-0.22 % of base)
          -1 : 98904.dasm (-0.10 % of base)
          -1 : 106044.dasm (-0.13 % of base)
          -1 : 88154.dasm (-0.01 % of base)
          -1 : 120361.dasm (-0.13 % of base)
          -1 : 83891.dasm (-0.04 % of base)
          -1 : 87825.dasm (-0.03 % of base)
          -1 : 94324.dasm (-0.13 % of base)
          -1 : 1190.dasm (-0.05 % of base)
          -1 : 20119.dasm (-0.13 % of base)
          -1 : 49093.dasm (-0.13 % of base)
          -1 : 59788.dasm (-0.20 % of base)
          -1 : 59803.dasm (-0.29 % of base)
          -1 : 64557.dasm (-0.13 % of base)
          -1 : 65906.dasm (-0.13 % 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) : 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) : 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.22 % of base) : 38988.dasm - System.IO.Compression.Brotli:Compress_WithState():System.Span`1[ubyte]:this (Tier0-FullOpts)
          -1 (-0.13 % of base) : 106044.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase: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.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) : 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) : 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) : 106044.dasm - System.Reflection.RuntimeModule:ResolveMethod(int,System.Type[],System.Type[]):System.Reflection.MethodBase: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.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 : 5275.dasm (0.47 % of base)
           3 : 35283.dasm (0.07 % of base)
           3 : 5302.dasm (0.56 % 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 : 35040.dasm (-0.09 % of base)
          -3 : 13997.dasm (-1.40 % of base)
          -3 : 47780.dasm (-0.63 % of base)
          -2 : 29822.dasm (-0.02 % of base)
          -1 : 29066.dasm (-0.31 % of base)
          -1 : 43260.dasm (-0.10 % of base)
          -1 : 15164.dasm (-0.13 % of base)
          -1 : 1126.dasm (-0.06 % 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 : 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 : 508543.dasm (2.34 % of base)
         111 : 509111.dasm (2.34 % of base)
         111 : 478499.dasm (2.34 % of base)
         111 : 508760.dasm (2.86 % of base)
         111 : 479024.dasm (2.86 % of base)
         111 : 508417.dasm (2.34 % of base)
         111 : 508420.dasm (2.34 % of base)
         111 : 508515.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 : 516843.dasm (0.57 % of base)
          42 : 517218.dasm (0.55 % of base)
          38 : 511646.dasm (0.65 % of base)
          36 : 511673.dasm (0.45 % of base)
          36 : 581501.dasm (1.14 % of base)
          36 : 479534.dasm (1.44 % of base)
          36 : 511081.dasm (0.47 % of base)
          27 : 285891.dasm (128.57 % of base)

Top file improvements (bytes):
         -26 : 537613.dasm (-0.28 % of base)
         -26 : 537651.dasm (-0.28 % of base)
         -26 : 537436.dasm (-0.26 % 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)
         -26 : 505328.dasm (-2.25 % of base)
         -26 : 537691.dasm (-0.29 % 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 : 537563.dasm (-0.20 % of base)
         -22 : 542454.dasm (-0.23 % of base)
         -22 : 542486.dasm (-0.21 % of base)
         -22 : 548545.dasm (-0.19 % of base)
         -22 : 537913.dasm (-0.18 % of base)
         -22 : 538015.dasm (-0.18 % of base)
         -22 : 541414.dasm (-0.23 % 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.57 % of base) : 516843.dasm - TestApp:RunAllTests():int (FullOpts)
          42 (0.55 % of base) : 517218.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) : 478568.dasm - Gen`3[int,double,System.Guid]:InstVerify(System.Type,System.Type,System.Type):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) : 478277.dasm - GenBase`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)
           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 : 16887.dasm (2.32 % of base)
          16 : 98102.dasm (0.25 % 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 : 20569.dasm (4.84 % of base)
           9 : 297146.dasm (0.66 % of base)
           7 : 210115.dasm (1.63 % of base)
           6 : 190648.dasm (1.52 % of base)
           6 : 30788.dasm (0.29 % of base)
           6 : 14404.dasm (1.06 % of base)
           6 : 291212.dasm (1.01 % 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 : 34923.dasm (-0.14 % of base)
          -6 : 30211.dasm (-0.25 % 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 : 99427.dasm (-0.07 % of base)
          -3 : 252850.dasm (-0.13 % 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 : 206510.dasm (0.88 % of base)
          27 : 206574.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 : 117723.dasm (2.84 % of base)
          15 : 206596.dasm (0.35 % of base)
          15 : 170747.dasm (2.84 % of base)
          15 : 176190.dasm (2.84 % of base)
          15 : 206566.dasm (0.39 % of base)
          15 : 272431.dasm (2.84 % of base)
          12 : 205092.dasm (0.74 % of base)
          12 : 108582.dasm (0.33 % of base)
          12 : 264649.dasm (0.88 % of base)
          11 : 631107.dasm (0.59 % of base)
          11 : 189317.dasm (0.60 % 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 : 557483.dasm (-7.13 % of base)
         -36 : 558765.dasm (-7.30 % of base)
         -36 : 557072.dasm (-7.19 % of base)
         -21 : 443994.dasm (-0.90 % of base)
         -21 : 360445.dasm (-3.41 % of base)
         -20 : 625168.dasm (-0.81 % of base)
         -18 : 360453.dasm (-4.72 % of base)
         -18 : 360448.dasm (-6.74 % of base)
          -9 : 147853.dasm (-0.61 % of base)
          -8 : 68076.dasm (-0.09 % of base)
          -7 : 154825.dasm (-0.13 % of base)
          -6 : 557982.dasm (-1.70 % of base)
          -6 : 561641.dasm (-1.70 % of base)
          -6 : 561753.dasm (-1.70 % of base)
          -6 : 557177.dasm (-1.70 % of base)
          -6 : 557437.dasm (-1.70 % of base)
          -6 : 559717.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) : 170747.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) : 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.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)
          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)
          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) : 170747.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) : 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) : 111673.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
           3 (2.36 % of base) : 114029.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) : 231881.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) : 245549.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) : 348712.dasm - System.RuntimeTypeHandle:IsComObject(System.RuntimeType,ubyte):ubyte (Instrumented Tier1)
           3 (2.36 % of base) : 368864.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)

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 : 148608.dasm (0.84 % of base)
          54 : 120677.dasm (4.09 % 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 : 90281.dasm (0.66 % of base)
          24 : 136403.dasm (0.59 % of base)
          24 : 90147.dasm (0.66 % of base)
          24 : 83733.dasm (0.85 % of base)
          24 : 90167.dasm (0.66 % of base)
          24 : 90297.dasm (0.66 % of base)
          21 : 90291.dasm (0.69 % of base)
          21 : 87612.dasm (0.64 % 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 : 272976.dasm (-7.19 % of base)
         -36 : 273187.dasm (-7.13 % of base)
         -36 : 273778.dasm (-7.30 % of base)
         -26 : 164774.dasm (-0.74 % of base)
         -21 : 164911.dasm (-3.66 % of base)
         -18 : 164915.dasm (-4.81 % of base)
         -18 : 164913.dasm (-6.74 % of base)
         -18 : 205831.dasm (-4.66 % 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 : 57452.dasm (-1.87 % of base)
          -8 : 21114.dasm (-0.47 % of base)
          -6 : 4662.dasm (-0.16 % of base)
          -6 : 148188.dasm (-1.68 % 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) : 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) : 90917.dasm - System.Composition.Hosting.Providers.Lazy.LazyExportDescriptorProvider:.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) : 90840.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) : 217374.dasm - Tests.System.TimeProviderTests+<>c:<NegativeTests>b__16_4():System.Object:this (FullOpts)
          -2 (-1.92 % of base) : 24928.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 : 34741.dasm (0.63 % of base)
           6 : 25532.dasm (0.43 % of base)
           6 : 25755.dasm (0.29 % of base)
           6 : 32179.dasm (0.25 % of base)
           6 : 35336.dasm (1.17 % of base)
           6 : 35337.dasm (1.81 % of base)
           6 : 36028.dasm (1.33 % of base)
           6 : 2101.dasm (1.13 % of base)
           6 : 21811.dasm (0.17 % of base)
           6 : 35272.dasm (1.08 % of base)
           5 : 7879.dasm (0.16 % of base)
           3 : 23093.dasm (0.84 % of base)
           3 : 26037.dasm (0.66 % of base)
           3 : 28571.dasm (0.87 % of base)
           3 : 34451.dasm (0.90 % of base)

Top file improvements (bytes):
        -154 : 29680.dasm (-3.88 % of base)
          -8 : 26196.dasm (-1.87 % of base)
          -8 : 17156.dasm (-0.09 % 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 : 22617.dasm (-0.09 % of base)
          -3 : 9031.dasm (-0.46 % of base)
          -3 : 23990.dasm (-0.19 % of base)
          -2 : 32577.dasm (-0.04 % of base)
          -2 : 33870.dasm (-0.34 % of base)
          -2 : 21751.dasm (-0.12 % of base)
          -2 : 3358.dasm (-0.18 % of base)
          -2 : 8229.dasm (-0.25 % of base)
          -2 : 8263.dasm (-0.54 % of base)
          -2 : 9919.dasm (-0.28 % of base)
          -2 : 3338.dasm (-0.25 % of base)
          -2 : 11118.dasm (-0.19 % of base)
          -2 : 12160.dasm (-0.22 % 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)