Assembly Diffs

linux arm

Diffs are based on 2,262,678 contexts (832,863 MinOpts, 1,429,815 FullOpts).

MISSED contexts: base: 75,600 (3.23%), diff: 76,390 (3.26%)

Overall (-3,300,590 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.linux.arm.checked.mch 16,543,852 -199,676 -0.63%
benchmarks.run_pgo.linux.arm.checked.mch 68,542,524 -243,856 -0.11%
benchmarks.run_tiered.linux.arm.checked.mch 19,429,376 -138,392 -0.77%
coreclr_tests.run.linux.arm.checked.mch 321,435,778 -1,975,302 +0.16%
libraries.crossgen2.linux.arm.checked.mch 37,762,784 +3,738 +0.88%
libraries.pmi.linux.arm.checked.mch 49,767,906 -93,410 +0.05%
libraries_tests.run.linux.arm.Release.mch 237,219,854 -242,640 +0.06%
librariestestsnotieredcompilation.run.linux.arm.Release.mch 93,098,472 -389,964 -0.08%
realworld.run.linux.arm.checked.mch 13,575,744 -21,088 +0.21%

FullOpts (-3,300,590 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.linux.arm.checked.mch 16,084,556 -199,676 -0.63%
benchmarks.run_pgo.linux.arm.checked.mch 56,557,950 -243,856 -0.11%
benchmarks.run_tiered.linux.arm.checked.mch 11,504,824 -138,392 -0.77%
coreclr_tests.run.linux.arm.checked.mch 108,984,412 -1,975,302 +0.16%
libraries.crossgen2.linux.arm.checked.mch 37,761,554 +3,738 +0.88%
libraries.pmi.linux.arm.checked.mch 49,661,682 -93,410 +0.05%
libraries_tests.run.linux.arm.Release.mch 115,169,888 -242,640 +0.06%
librariestestsnotieredcompilation.run.linux.arm.Release.mch 83,068,678 -389,964 -0.08%
realworld.run.linux.arm.checked.mch 13,140,820 -21,088 +0.21%

Example diffs

benchmarks.run.linux.arm.checked.mch

-42 (-19.09%) : 14745.dasm - System.MathF:ILogB(float):int (FullOpts)

@@ -8,7 +8,7 @@ ; 0 inlinees with PGO data; 13 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 7, 5 ) float -> f16 ld-addr-op single-def
+; V00 arg0 [V00,T00] ( 4, 3.50) float -> f0 ld-addr-op single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) float -> zero-ref "Inlining Arg" ;* V03 tmp2 [V03 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" @@ -20,7 +20,7 @@ ;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V11 tmp10 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V12 tmp11 [V12,T03] ( 3, 1.50) int -> r3 "Inline return value spill temp"
+; V12 tmp11 [V12,T05] ( 3, 1.50) int -> r3 "Inline return value spill temp"
; V13 tmp12 [V13,T01] ( 4, 4 ) int -> r0 "Inlining Arg" ;* V14 tmp13 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]> ;* V15 tmp14 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]> @@ -28,77 +28,74 @@ ;* V17 tmp16 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V18 tmp17 [V18 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP ;* V19 tmp18 [V19 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x4)" P-INDEP
-; V20 tmp19 [V20,T04] ( 2, 1 ) byref -> r3 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+; V20 tmp19 [V20,T06] ( 2, 1 ) byref -> r3 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x4)" P-INDEP ;* V22 tmp21 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP ;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x4)" P-INDEP
-; V24 cse0 [V24,T02] ( 3, 2.50) int -> r1 "CSE - aggressive"
+; V24 cse0 [V24,T04] ( 3, 1.50) ref -> r1 "CSE - unknown" +; V25 cse1 [V25,T03] ( 3, 2.50) int -> r1 "CSE - unknown" +; V26 cse2 [V26,T02] ( 5, 3.50) int -> r4 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M35754_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr} - vpush {d8-d8}
+ push {r3,r4,r11,lr}
add r11, sp, 8
- vmov s16, s0 - ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M35754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmov.f2i r0, s16 - mvn r1, 0x80000000 - ands r1, r0
+ vmov.f2i r4, s0 + mvn r0, 0x80000000 + and r1, r4, r0
sub r0, r1, 0x800000 cmp r0, 0x7f000000 blo SHORT G_M35754_IG12
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=22 bbWeight=1 PerfScore 6.00
G_M35754_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movs r0, 0 vmov.i2f s8, r0
- vcmp s16, s8
+ vcmp s0, s8
vmrs APSR, FPSCR bne SHORT G_M35754_IG05 mov r0, 0x80000000 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M35754_IG04: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8} - pop {r11,pc} - ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- vmov.f2i r0, s16 - mov r3, 0x7f800000 - bics r0, r3, r0
+ mov r0, 0x7f800000 + bics r0, r4
cmp r0, 0 bne SHORT G_M35754_IG07 mvn r0, 0x80000000
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=14 bbWeight=0.50 PerfScore 2.50
G_M35754_IG06: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8} - pop {r11,pc} - ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz subs r0, r1, 1 movw r1, 0xd1ff movt r1, 0xd1ff cmp r0, r1 blo SHORT G_M35754_IG08
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r1, 0xd1ff movt r1, 0xd1ff
+ mov r0, r1 + ; gcrRegs +[r0]
movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3] blx r3 // <unknown method>
- ;; size=42 bbWeight=0.50 PerfScore 6.50
+ ; gcrRegs -[r0] + ;; size=36 bbWeight=0.50 PerfScore 6.00
G_M35754_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmov.f2i r0, s16 - movw r3, 0xd1ff - movt r3, 0xd1ff - ands r0, r3
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ands r0, r4
cmp r0, 0 bne SHORT G_M35754_IG09 movs r3, 32 b SHORT G_M35754_IG10
- ;; size=22 bbWeight=0.50 PerfScore 4.00
+ ;; size=18 bbWeight=0.50 PerfScore 3.50
G_M35754_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movw r3, 0xd1ff movt r3, 0xd1ff @@ -116,22 +113,19 @@ G_M35754_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr subs r0, 126 ;; size=8 bbWeight=0.50 PerfScore 1.50 G_M35754_IG11: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8} - pop {r11,pc} - ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- vmov.f2i r0, s16 - lsrs r0, r0, 23
+ lsrs r0, r4, 23
uxtb r0, r0 subs r0, 127 sxtb r0, r0
- ;; size=12 bbWeight=0.50 PerfScore 2.50
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
G_M35754_IG13: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8} - pop {r11,pc} - ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 220, prolog size 12, PerfScore 39.00, instruction count 68, allocated bytes for code 220 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (FullOpts)
+; Total bytes of code 178, prolog size 8, PerfScore 33.00, instruction count 58, allocated bytes for code 178 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (FullOpts)
; ============================================================ Unwind Info: @@ -143,7 +137,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 110 (0x0006e) Actual length = 220 (0x0000dc)
+ Function Length : 89 (0x00059) Actual length = 178 (0x0000b2)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -163,7 +157,7 @@ Unwind Info: Epilog Start Index : 0 (0x00) ---- Unwind codes ---- ---- Epilog start at index 0 ----
- E0 vpop {d8} ; opsize 32 - A8 00 pop {r11,lr} ; opsize 32
+ A8 18 pop {r3,r4,r11,lr} ; opsize 32 + FF end
FF end

-8 (-18.18%) : 18465.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_1076(System.Object):int:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (20) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.StructRecord> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "V02.[012..016)"
+; V05 cse0 [V05,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -31,15 +32,13 @@ G_M21734_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M21734_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3] blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1] ; gcr arg pop 0
- ;; size=22 bbWeight=0.25 PerfScore 1.75
+ ;; size=14 bbWeight=0.25 PerfScore 1.25
G_M21734_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ldr r0, [r4+0x10] ;; size=2 bbWeight=1 PerfScore 1.00 @@ -47,7 +46,7 @@ G_M21734_IG05: ; bbWeight=1, epilog, nogc, extend pop {r4,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 44, prolog size 2, PerfScore 10.75, instruction count 16, allocated bytes for code 44 (MethodHash=925eab19) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
+; Total bytes of code 36, prolog size 2, PerfScore 10.25, instruction count 14, allocated bytes for code 36 (MethodHash=925eab19) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
; ============================================================ Unwind Info: @@ -59,7 +58,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

-8 (-18.18%) : 19705.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:b_602(System.Object):System.String:this (FullOpts)

@@ -13,6 +13,7 @@ ;* V02 loc0 [V02 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op <MicroBenchmarks.Serializers.LargeStructWithProperties> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref "V02.[004..008)"
+; V05 cse0 [V05,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -31,15 +32,13 @@ G_M684_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, G_M684_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3] blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1] ; gcr arg pop 0
- ;; size=22 bbWeight=0.25 PerfScore 1.75
+ ;; size=14 bbWeight=0.25 PerfScore 1.25
G_M684_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ldr r0, [r4+0x08] ; gcrRegs +[r0] @@ -48,7 +47,7 @@ G_M684_IG05: ; bbWeight=1, epilog, nogc, extend pop {r4,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 44, prolog size 2, PerfScore 10.75, instruction count 16, allocated bytes for code 44 (MethodHash=c677fd53) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
+; Total bytes of code 36, prolog size 2, PerfScore 10.25, instruction count 14, allocated bytes for code 36 (MethodHash=c677fd53) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
; ============================================================ Unwind Info: @@ -60,7 +59,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

+22 (+25.58%) : 39354.dasm - V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)

@@ -8,23 +8,24 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> r4 single-def
-; V01 loc0 [V01,T02] ( 3, 2.50) ref -> r6 class-hnd exact single-def <System.String>
+; V01 loc0 [V01,T01] ( 3, 2.50) ref -> r5 class-hnd exact single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 cse0 [V03,T01] ( 5, 4.50) int -> r5 "CSE - aggressive"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M52824_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,r6,r11,lr} - add r11, sp, 16
+ push {r4,r5,r11,lr} + add r11, sp, 8
mov r4, r0 ;; size=10 bbWeight=1 PerfScore 3.00 G_M52824_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff - movt r5, 0xd1ff - ldr r0, [r5]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0]
- ldr r1, [r5+0x04]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r1, [r1]
; gcrRegs +[r1] movw r3, 0xd1ff movt r3, 0xd1ff @@ -32,17 +33,19 @@ G_M52824_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr r2, [r0] blx r3 // V8.Crypto.RSAKey:decrypt(System.String):System.String:this ; gcrRegs -[r1]
- mov r6, r0 - ; gcrRegs +[r6]
+ mov r5, r0 + ; gcrRegs +[r5]
uxtb r1, r4 cmp r1, 0 beq SHORT G_M52824_IG04
- ;; size=34 bbWeight=1 PerfScore 13.00 -G_M52824_IG03: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref
+ ;; size=42 bbWeight=1 PerfScore 15.00 +G_M52824_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
- ldr r1, [r5+0x04]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r1, [r1]
; gcrRegs +[r1]
- mov r2, r6
+ mov r2, r5
; gcrRegs +[r2] movw r0, 0xd1ff movt r0, 0xd1ff @@ -51,21 +54,22 @@ G_M52824_IG03: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, b ldr r3, [r3] blx r3 // <unknown method> ; gcrRegs -[r1-r2]
- ;; size=24 bbWeight=0.50 PerfScore 4.00 -G_M52824_IG04: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref - adds r0, r5, 4 - mov r1, r6
+ ;; size=32 bbWeight=0.50 PerfScore 5.00 +G_M52824_IG04: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref + movw r0, 0xd1ff + movt r0, 0xd1ff + mov r1, r5
; gcrRegs +[r1] movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[r1 r6] - ;; size=14 bbWeight=1 PerfScore 5.00
+ ; gcrRegs -[r1 r5] + ;; size=20 bbWeight=1 PerfScore 6.00
G_M52824_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r3,r4,r5,r6,r11,pc}
+ pop {r4,r5,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 86, prolog size 8, PerfScore 26.00, instruction count 30, allocated bytes for code 86 (MethodHash=3ba131a7) for method V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 30.00, instruction count 35, allocated bytes for code 108 (MethodHash=3ba131a7) for method V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
; ============================================================ Unwind Info: @@ -77,11 +81,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 43 (0x0002b) Actual length = 86 (0x000056)
+ Function Length : 54 (0x00036) Actual length = 108 (0x00006c)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
+ A8 30 pop {r4,r5,r11,lr} ; opsize 32
FF end FF end

+30 (+27.78%) : 377.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)

@@ -9,15 +9,14 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 2 ) int -> r3 -; V02 cse0 [V02,T00] ( 6, 5.50) int -> r4 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 2 ) int -> r3
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M15866_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r11,lr} - add r11, sp, 8 - ;; size=8 bbWeight=1 PerfScore 2.00
+ push {r11,lr} + mov r11, sp + ;; size=6 bbWeight=1 PerfScore 2.00
G_M15866_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movw r0, 0xd1ff movt r0, 0xd1ff @@ -36,9 +35,9 @@ G_M15866_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movs r0, 1 ;; size=2 bbWeight=1 PerfScore 1.00 G_M15866_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movw r4, 0xd1ff - movt r4, 0xd1ff - strb r0, [r4]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + strb r0, [r3]
movw r0, 0xd1ff movt r0, 0xd1ff movw r3, 0xd1ff @@ -56,18 +55,24 @@ G_M15866_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movs r3, 1 ;; size=2 bbWeight=1 PerfScore 1.00 G_M15866_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- strb r3, [r4+0x01] - ldrb r3, [r4]
+ movw r2, 0xd1ff + movt r2, 0xd1ff + strb r3, [r2] + movw r3, 0xd1ff + movt r3, 0xd1ff + ldrb r3, [r3]
cmp r3, 0 beq SHORT G_M15866_IG10
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=24 bbWeight=1 PerfScore 8.00
G_M15866_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldrb r3, [r4+0x01]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldrb r3, [r3]
cmp r3, 0 beq SHORT G_M15866_IG08 movs r3, 0 b SHORT G_M15866_IG09
- ;; size=10 bbWeight=0.50 PerfScore 2.50
+ ;; size=18 bbWeight=0.50 PerfScore 3.50
G_M15866_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movs r3, 1 ;; size=2 bbWeight=0.50 PerfScore 0.50 @@ -78,13 +83,15 @@ G_M15866_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr movs r3, 0 ;; size=2 bbWeight=0.50 PerfScore 0.50 G_M15866_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- strb r3, [r4+0x02] - ;; size=2 bbWeight=1 PerfScore 1.00
+ movw r2, 0xd1ff + movt r2, 0xd1ff + strb r3, [r2] + ;; size=10 bbWeight=1 PerfScore 3.00
G_M15866_IG12: ; bbWeight=1, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+ pop {r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 108, prolog size 8, PerfScore 37.00, instruction count 41, allocated bytes for code 108 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
+; Total bytes of code 138, prolog size 6, PerfScore 44.00, instruction count 49, allocated bytes for code 138 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -96,11 +103,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 54 (0x00036) Actual length = 108 (0x00006c)
+ Function Length : 69 (0x00045) Actual length = 138 (0x00008a)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ A8 00 pop {r11,lr} ; opsize 32
FF end FF end

+20 (+28.57%) : 989.dasm - System.Diagnostics.Stopwatch:.cctor() (FullOpts)

@@ -8,27 +8,28 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T02] ( 5, 5 ) int -> r4 "CSE - aggressive" -; V02 rat0 [V02,T00] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable" -; V03 rat1 [V03,T01] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
+; V01 rat0 [V01,T00] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable" +; V02 rat1 [V02,T01] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M2214_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,lr}
+ push {r3,lr}
;; size=2 bbWeight=1 PerfScore 1.00 G_M2214_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r4, 0xd1ff - movt r4, 0xd1ff - mov r0, r4
+ movw r0, 0xd1ff + movt r0, 0xd1ff
movw r1, 0xd1ff movt r1, 0xd1ff
- str r1, [r0] - movs r1, 0 - str r1, [r0+0x04]
+ str r0, [r1] + movs r0, 0 + str r0, [r1+0x04]
movs r0, 1
- strb r0, [r4+0x10] - mov r1, r4
+ movw r1, 0xd1ff + movt r1, 0xd1ff + strb r0, [r1] + movw r1, 0xd1ff + movt r1, 0xd1ff
ldr r0, [r1] ldr r1, [r1+0x04] movw r3, 0xd1ff @@ -40,13 +41,15 @@ G_M2214_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movt r3, 0xd1ff vmov.i2d d4, r2, r3 vdiv d4, d4, d0
- vstr d4, [r4+0x08] - ;; size=66 bbWeight=1 PerfScore 22.00
+ movw r3, 0xd1ff + movt r3, 0xd1ff + vstr d4, [r3] + ;; size=86 bbWeight=1 PerfScore 26.00
G_M2214_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,pc}
+ pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 70, prolog size 2, PerfScore 24.00, instruction count 24, allocated bytes for code 70 (MethodHash=b3f5f759) for method System.Diagnostics.Stopwatch:.cctor() (FullOpts)
+; Total bytes of code 90, prolog size 2, PerfScore 28.00, instruction count 28, allocated bytes for code 90 (MethodHash=b3f5f759) for method System.Diagnostics.Stopwatch:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -58,12 +61,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 70 (0x000046)
+ Function Length : 45 (0x0002d) Actual length = 90 (0x00005a)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- D4 pop {r4,lr} ; opsize 16 - FF end
+ ED 08 pop {r3,lr} ; opsize 16
FF end FF end

benchmarks.run_pgo.linux.arm.checked.mch

-8 (-19.05%) : 73845.dasm - System.Runtime.CompilerServices.Unsafe:UnboxMicroBenchmarks.Serializers.StructRecord:byref (Tier1)

@@ -9,6 +9,7 @@ ; ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -27,14 +28,12 @@ G_M33476_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M33476_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1] ; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M33476_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref adds r0, r4, 4 ; byrRegs +[r0] @@ -43,7 +42,7 @@ G_M33476_IG05: ; bbWeight=1, epilog, nogc, extend pop {r4,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=ea8b7d3b) for method System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.StructRecord](System.Object):byref (Tier1)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=ea8b7d3b) for method System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.StructRecord](System.Object):byref (Tier1)
; ============================================================ Unwind Info: @@ -55,7 +54,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

-8 (-19.05%) : 35091.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -29,14 +30,12 @@ G_M40937_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M40937_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1] ; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M40937_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ldr r0, [r4+0x04] ; gcrRegs +[r0] @@ -45,7 +44,7 @@ G_M40937_IG05: ; bbWeight=1, epilog, nogc, extend pop {r4,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=08526016) for method (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=08526016) for method (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
; ============================================================ Unwind Info: @@ -57,7 +56,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

-8 (-19.05%) : 58415.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -29,14 +30,12 @@ G_M25960_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M25960_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1] ; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M25960_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ldrb r0, [r4+0x14] ;; size=2 bbWeight=1 PerfScore 1.00 @@ -44,7 +43,7 @@ G_M25960_IG05: ; bbWeight=1, epilog, nogc, extend pop {r4,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -56,7 +55,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

+6 (+13.64%) : 105541.dasm - System.Collections.IterateFor`1[System.Canon]:ImmutableArray():System.Canon:this (Tier0-FullOpts)

@@ -15,13 +15,12 @@ ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V07 tmp3 [V07,T08] ( 3, 2.50) ref -> r2 single-def "field V02.array (fldOffset=0x0)" P-INDEP -;* V08 cse0 [V08,T09] ( 0, 0 ) int -> zero-ref "CSE - aggressive" -; V09 cse1 [V09,T03] ( 3, 6 ) int -> lr "CSE - aggressive" -; V10 cse2 [V10,T05] ( 2, 4.50) byref -> r2 hoist "CSE - aggressive" -;* V11 rat0 [V11,T06] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" -;* V12 rat1 [V12,T07] ( 0, 0 ) int -> zero-ref "runtime lookup" -;* V13 rat2 [V13,T04] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V07 tmp3 [V07,T03] ( 3, 6 ) ref -> r2 single-def "field V02.array (fldOffset=0x0)" P-INDEP +;* V08 cse0 [V08,T08] ( 0, 0 ) int -> zero-ref "CSE - unknown" +; V09 cse1 [V09,T04] ( 3, 6 ) int -> lr "CSE - unknown" +;* V10 rat0 [V10,T06] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" +;* V11 rat1 [V11,T07] ( 0, 0 ) int -> zero-ref "runtime lookup" +;* V12 rat2 [V12,T05] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
; ; Lcl frame size = 8 @@ -39,32 +38,30 @@ G_M3722_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref movs r1, 0 ldr lr, [r2+0x04] cmp lr, 0
- ble SHORT G_M3722_IG05
+ ble SHORT G_M3722_IG04
;; size=18 bbWeight=1 PerfScore 7.00
-G_M3722_IG03: ; bbWeight=0.50, gcVars=00000002 {V00}, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, gcvars, byref
+G_M3722_IG03: ; bbWeight=4, gcVars=00000002 {V00}, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r0]
- adds r2, 8 - ; gcrRegs -[r2] - ; byrRegs +[r2] - ;; size=2 bbWeight=0.50 PerfScore 0.50 -G_M3722_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {r2}, byref, isz - lsls r3, r1, 2 - ldr r3, [r2+r3]
+ add r3, r2, 8 + ; byrRegs +[r3] + lsl r12, r1, 2 + ldr r3, [r3+r12]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
adds r1, r1, 1 cmp lr, r1
- bgt SHORT G_M3722_IG04 - ;; size=10 bbWeight=4 PerfScore 20.00 -G_M3722_IG05: ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref - ; byrRegs -[r2]
+ bgt SHORT G_M3722_IG03 + ;; size=18 bbWeight=4 PerfScore 24.00 +G_M3722_IG04: ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref + ; gcrRegs -[r2]
mov r0, r3 ; gcrRegs +[r0] ;; size=2 bbWeight=1 PerfScore 1.00
-G_M3722_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M3722_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r2,r3,r11,pc} ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 44, prolog size 8, PerfScore 31.50, instruction count 17, allocated bytes for code 44 (MethodHash=877ef175) for method System.Collections.IterateFor`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 50, prolog size 8, PerfScore 35.00, instruction count 17, allocated bytes for code 50 (MethodHash=877ef175) for method System.Collections.IterateFor`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
; ============================================================ Unwind Info: @@ -76,7 +73,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 25 (0x00019) Actual length = 50 (0x000032)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

+32 (+17.78%) : 122386.dasm - System.Runtime.Serialization.XmlSerializableReader:Read():ubyte:this (Tier1)

@@ -12,13 +12,13 @@ ; V00 this [V00,T01] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.Runtime.Serialization.XmlSerializableReader> ; V01 loc0 [V01,T00] ( 13, 6.00) ref -> r5 class-hnd single-def <System.Xml.XmlReader> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T04] ( 3, 2 ) int -> r8 "guarded devirt return temp"
+; V03 tmp1 [V03,T03] ( 3, 2 ) int -> r7 "guarded devirt return temp"
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader>
-; V05 tmp3 [V05,T05] ( 3, 1.33) int -> r9 "guarded devirt return temp"
+; V05 tmp3 [V05,T04] ( 3, 1.33) int -> r8 "guarded devirt return temp"
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader>
-; V07 tmp5 [V07,T06] ( 3, 0.67) int -> r10 "guarded devirt return temp"
+; V07 tmp5 [V07,T05] ( 3, 0.67) int -> r9 "guarded devirt return temp"
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader>
-; V09 tmp7 [V09,T07] ( 3, 0.67) int -> r3 "guarded devirt return temp"
+; V09 tmp7 [V09,T06] ( 3, 0.67) int -> r10 "guarded devirt return temp"
;* V10 tmp8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader> ;* V11 tmp9 [V11 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp" ;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlUTF8TextReader> @@ -27,8 +27,7 @@ ;* V15 tmp13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode> ;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode> ;* V17 tmp15 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
-; V18 cse0 [V18,T02] ( 11, 4.00) int -> r6 "CSE - aggressive" -; V19 cse1 [V19,T03] ( 6, 4.00) int -> r7 "CSE - aggressive"
+; V18 cse0 [V18,T02] ( 11, 4.00) int -> r6 "CSE - unknown"
; ; Lcl frame size = 4 @@ -42,66 +41,74 @@ G_M44598_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre ldr r5, [r4+0x08] ; gcrRegs +[r5] ldr r6, [r5]
- movw r7, 0xd1ff - movt r7, 0xd1ff - cmp r6, r7
+ movw r0, 0xd1ff + movt r0, 0xd1ff + cmp r6, r0
bne SHORT G_M44598_IG15 ldr r0, [r5+0x60] ldr r3, [r5+0x08] ; gcrRegs +[r3] ldr r3, [r3+0x20] ; gcrRegs -[r3]
- add r8, r0, r3 - ;; size=26 bbWeight=1 PerfScore 10.00
+ adds r7, r0, r3 + ;; size=24 bbWeight=1 PerfScore 10.00
G_M44598_IG03: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz ldr r0, [r4+0x0C]
- cmp r8, r0
+ cmp r7, r0
bne SHORT G_M44598_IG09 ;; size=6 bbWeight=1 PerfScore 3.00 G_M44598_IG04: ; bbWeight=0.67, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[r4]
- cmp r6, r7
+ movw r0, 0xd1ff + movt r0, 0xd1ff + cmp r6, r0
bne SHORT G_M44598_IG16 ldr r0, [r5+0x08] ; gcrRegs +[r0]
- ldr r9, [r0+0x18] - ;; size=10 bbWeight=0.67 PerfScore 2.67
+ ldr r8, [r0+0x18] + ;; size=18 bbWeight=0.67 PerfScore 4.00
G_M44598_IG05: ; bbWeight=0.67, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[r0]
- cmp r9, 15
+ cmp r8, 15
beq SHORT G_M44598_IG11 ;; size=6 bbWeight=0.67 PerfScore 1.33 G_M44598_IG06: ; bbWeight=0.33, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
- cmp r6, r7
+ movw r0, 0xd1ff + movt r0, 0xd1ff + cmp r6, r0
bne SHORT G_M44598_IG17 ldr r0, [r5+0x08] ; gcrRegs +[r0]
- ldr r10, [r0+0x18] - ;; size=10 bbWeight=0.33 PerfScore 1.33
+ ldr r9, [r0+0x18] + ;; size=18 bbWeight=0.33 PerfScore 2.00
G_M44598_IG07: ; bbWeight=0.33, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[r0]
- cmp r10, 1
+ cmp r9, 1
bne SHORT G_M44598_IG09
- cmp r6, r7
+ movw r0, 0xd1ff + movt r0, 0xd1ff + cmp r6, r0
bne SHORT G_M44598_IG18 ldr r0, [r5+0x08] ; gcrRegs +[r0]
- ldrb r3, [r0+0x31] - ;; size=16 bbWeight=0.33 PerfScore 2.00
+ ldrb r10, [r0+0x31] + ;; size=24 bbWeight=0.33 PerfScore 2.67
G_M44598_IG08: ; bbWeight=0.33, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[r0]
- cmp r3, 0
+ cmp r10, 0
bne SHORT G_M44598_IG11
- ;; size=4 bbWeight=0.33 PerfScore 0.67
+ ;; size=6 bbWeight=0.33 PerfScore 0.67
G_M44598_IG09: ; bbWeight=0.67, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
- cmp r6, r7
+ movw r0, 0xd1ff + movt r0, 0xd1ff + cmp r6, r0
bne SHORT G_M44598_IG13 mov r0, r5 ; gcrRegs +[r0] movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3]
- ;; size=16 bbWeight=0.67 PerfScore 4.00
+ ;; size=24 bbWeight=0.67 PerfScore 5.33
G_M44598_IG10: ; bbWeight=0.67, epilog, nogc, extend add sp, 4 pop {r4,r5,r6,r7,r8,r9,r10,r11,lr} @@ -137,7 +144,7 @@ G_M44598_IG15: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0030 {r4 r5}, blx r3 // <unknown method> ; gcrRegs -[r0] ; gcr arg pop 0
- mov r8, r0
+ mov r7, r0
b SHORT G_M44598_IG03 ;; size=12 bbWeight=0 PerfScore 0.00 G_M44598_IG16: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz @@ -149,7 +156,7 @@ G_M44598_IG16: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre blx r3 // <unknown method> ; gcrRegs -[r0] ; gcr arg pop 0
- mov r9, r0
+ mov r8, r0
b SHORT G_M44598_IG05 ;; size=12 bbWeight=0 PerfScore 0.00 G_M44598_IG17: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz @@ -160,7 +167,7 @@ G_M44598_IG17: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre blx r3 // <unknown method> ; gcrRegs -[r0] ; gcr arg pop 0
- mov r10, r0
+ mov r9, r0
b SHORT G_M44598_IG07 ;; size=12 bbWeight=0 PerfScore 0.00 G_M44598_IG18: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz @@ -171,11 +178,11 @@ G_M44598_IG18: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre blx r3 // <unknown method> ; gcrRegs -[r0] ; gcr arg pop 0
- mov r3, r0
+ mov r10, r0
b SHORT G_M44598_IG08 ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 180, prolog size 10, PerfScore 30.67, instruction count 75, allocated bytes for code 180 (MethodHash=e96851c9) for method System.Runtime.Serialization.XmlSerializableReader:Read():ubyte:this (Tier1)
+; Total bytes of code 212, prolog size 10, PerfScore 34.67, instruction count 83, allocated bytes for code 212 (MethodHash=e96851c9) for method System.Runtime.Serialization.XmlSerializableReader:Read():ubyte:this (Tier1)
; ============================================================ Unwind Info: @@ -187,7 +194,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 90 (0x0005a) Actual length = 180 (0x0000b4)
+ Function Length : 106 (0x0006a) Actual length = 212 (0x0000d4)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+40 (+22.73%) : 34898.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)

@@ -9,17 +9,15 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 4, 7 ) ref -> r4 class-hnd single-def <System.Type>
-; V01 loc0 [V01,T07] ( 4, 2.05) ref -> r6 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter> -; V02 loc1 [V02,T09] ( 3, 1.25) ref -> r0 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]> -; V03 loc2 [V03,T00] ( 5, 16.50) int -> r5
+; V01 loc0 [V01,T06] ( 4, 2.05) ref -> r5 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter> +; V02 loc1 [V02,T04] ( 3, 5 ) ref -> r6 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]> +; V03 loc2 [V03,T00] ( 5, 16.50) int -> r7
; V04 loc3 [V04,T01] ( 4, 12.50) ref -> r9 class-hnd <System.Text.Json.Serialization.JsonConverterFactory> ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1 [V06,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V06 tmp1 [V06,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V07 tmp2 [V07,T03] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V08 tmp3 [V08,T08] ( 3, 2.05) byref -> r0 single-def "Inline stloc first use temp" -; V09 cse0 [V09,T06] ( 2, 4.25) byref -> r8 hoist "CSE - aggressive" -; V10 cse1 [V10,T05] ( 3, 5 ) int -> r7 "CSE - aggressive" -; V11 cse2 [V11,T04] ( 7, 5.50) int -> r5 "CSE - aggressive"
+; V08 tmp3 [V08,T07] ( 3, 2.05) byref -> r0 single-def "Inline stloc first use temp" +; V09 cse0 [V09,T05] ( 3, 5 ) int -> r8 "CSE - unknown"
; TEMP_01 ref -> [r11-0x1C] ; ; Lcl frame size = 8 @@ -33,9 +31,9 @@ G_M54919_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[r4] ;; size=14 bbWeight=1 PerfScore 5.00 G_M54919_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff - movt r5, 0xd1ff - ldr r3, [r5]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
; gcrRegs +[r3] cmp r3, 0 bne SHORT G_M54919_IG04 @@ -48,21 +46,24 @@ G_M54919_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b blx r3 // <unknown method> ; gcrRegs +[r0] str r0, [sp+0x04]
+ movw r0, 0xd1ff + ; gcrRegs -[r0] + movt r0, 0xd1ff
ldr r1, [sp+0x04] ; gcrRegs +[r1]
- mov r0, r5 - ; gcrRegs -[r0]
movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF ; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r5+0x04]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
; gcrRegs +[r3] cmp r3, 0 bne SHORT G_M54919_IG06
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ; gcrRegs -[r3] movw r3, 0xd1ff @@ -71,17 +72,20 @@ G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b blx r3 // System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetDefaultFactoryConverters():System.Text.Json.Serialization.JsonConverterFactory[] ; gcrRegs +[r0] str r0, [sp+0x04]
- adds r0, r5, 4
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04] ; gcrRegs +[r1] movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF ; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r5]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] ldrsb r1, [r0] mov r1, r4 @@ -94,46 +98,46 @@ G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre ; byrRegs +[r0] cmp r0, 0 bne SHORT G_M54919_IG08
- ;; size=24 bbWeight=1 PerfScore 9.00
+ ;; size=32 bbWeight=1 PerfScore 11.00
G_M54919_IG07: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz ; byrRegs -[r0]
- movs r6, 0
+ movs r5, 0
b SHORT G_M54919_IG11 ;; size=4 bbWeight=0.50 PerfScore 1.00 G_M54919_IG08: ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref ; gcrRegs -[r4] ; byrRegs +[r0]
- ldr r6, [r0] - ; gcrRegs +[r6]
+ ldr r5, [r0] + ; gcrRegs +[r5]
;; size=2 bbWeight=0.05 PerfScore 0.05
-G_M54919_IG09: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref
+G_M54919_IG09: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
; byrRegs -[r0]
- mov r0, r6
+ mov r0, r5
; gcrRegs +[r0] ;; size=2 bbWeight=1 PerfScore 1.00 G_M54919_IG10: ; bbWeight=1, epilog, nogc, extend pop {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc} ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54919_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M54919_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r0] +[r4]
- ldr r0, [r5+0x04] - ; gcrRegs +[r0] - movs r5, 0 - ldr r7, [r0+0x04] - cmp r7, 0
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r6, [r0] + ; gcrRegs +[r6] + movs r7, 0 + ldr r8, [r6+0x04] + cmp r8, 0
ble SHORT G_M54919_IG09
- ;; size=10 bbWeight=0.50 PerfScore 2.50 -G_M54919_IG12: ; bbWeight=0.25, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0000 {}, byref - add r8, r0, 8 - ; byrRegs +[r8] - ;; size=4 bbWeight=0.25 PerfScore 0.25 -G_M54919_IG13: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8}, byref, isz - ; gcrRegs -[r0] - lsls r0, r5, 2 - ldr r9, [r8+r0]
+ ;; size=22 bbWeight=0.50 PerfScore 3.50 +G_M54919_IG12: ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz + add r0, r6, 8 + ; byrRegs +[r0] + lsls r1, r7, 2 + ldr r9, [r0+r1]
; gcrRegs +[r9] mov r0, r9 ; gcrRegs +[r0]
+ ; byrRegs -[r0]
mov r1, r4 ; gcrRegs +[r1] ldr r3, [r9] @@ -142,24 +146,23 @@ G_M54919_IG13: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8}, blx r3 // <unknown method> ; gcrRegs -[r0-r1] cmp r0, 0
- bne SHORT G_M54919_IG15 - adds r5, r5, 1 - cmp r7, r5 - bgt SHORT G_M54919_IG13 - ;; size=30 bbWeight=4 PerfScore 52.00 -G_M54919_IG14: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r4 r9] - ; byrRegs -[r8]
+ bne SHORT G_M54919_IG14 + adds r7, r7, 1 + cmp r8, r7 + bgt SHORT G_M54919_IG12 + ;; size=34 bbWeight=4 PerfScore 56.00 +G_M54919_IG13: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r4 r6 r9]
b SHORT G_M54919_IG09 ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M54919_IG15: ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r6] +[r9] - mov r6, r9 - ; gcrRegs +[r6]
+G_M54919_IG14: ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r5] +[r9] + mov r5, r9 + ; gcrRegs +[r5]
b SHORT G_M54919_IG09 ;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 176, prolog size 12, PerfScore 91.30, instruction count 69, allocated bytes for code 176 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
+; Total bytes of code 216, prolog size 12, PerfScore 101.05, instruction count 77, allocated bytes for code 216 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
; ============================================================ Unwind Info: @@ -171,7 +174,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 88 (0x00058) Actual length = 176 (0x0000b0)
+ Function Length : 108 (0x0006c) Actual length = 216 (0x0000d8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_tiered.linux.arm.checked.mch

-42 (-19.09%) : 32371.dasm - System.MathF:ILogB(float):int (Tier1)

@@ -8,7 +8,7 @@ ; 0 inlinees with PGO data; 13 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 7, 5 ) float -> f16 ld-addr-op single-def
+; V00 arg0 [V00,T00] ( 4, 3.50) float -> f0 ld-addr-op single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) float -> zero-ref "Inlining Arg" ;* V03 tmp2 [V03 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" @@ -20,7 +20,7 @@ ;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V11 tmp10 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V12 tmp11 [V12,T03] ( 3, 1.50) int -> r3 "Inline return value spill temp"
+; V12 tmp11 [V12,T05] ( 3, 1.50) int -> r3 "Inline return value spill temp"
; V13 tmp12 [V13,T01] ( 4, 4 ) int -> r0 "Inlining Arg" ;* V14 tmp13 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]> ;* V15 tmp14 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]> @@ -28,77 +28,74 @@ ;* V17 tmp16 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V18 tmp17 [V18 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP ;* V19 tmp18 [V19 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x4)" P-INDEP
-; V20 tmp19 [V20,T04] ( 2, 1 ) byref -> r3 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+; V20 tmp19 [V20,T06] ( 2, 1 ) byref -> r3 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x4)" P-INDEP ;* V22 tmp21 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP ;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x4)" P-INDEP
-; V24 cse0 [V24,T02] ( 3, 2.50) int -> r1 "CSE - aggressive"
+; V24 cse0 [V24,T04] ( 3, 1.50) ref -> r1 "CSE - unknown" +; V25 cse1 [V25,T03] ( 3, 2.50) int -> r1 "CSE - unknown" +; V26 cse2 [V26,T02] ( 5, 3.50) int -> r4 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M35754_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr} - vpush {d8-d8}
+ push {r3,r4,r11,lr}
add r11, sp, 8
- vmov s16, s0 - ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M35754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmov.f2i r0, s16 - mvn r1, 0x80000000 - ands r1, r0
+ vmov.f2i r4, s0 + mvn r0, 0x80000000 + and r1, r4, r0
sub r0, r1, 0x800000 cmp r0, 0x7f000000 blo SHORT G_M35754_IG12
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=22 bbWeight=1 PerfScore 6.00
G_M35754_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movs r0, 0 vmov.i2f s8, r0
- vcmp s16, s8
+ vcmp s0, s8
vmrs APSR, FPSCR bne SHORT G_M35754_IG05 mov r0, 0x80000000 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M35754_IG04: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8} - pop {r11,pc} - ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- vmov.f2i r0, s16 - mov r3, 0x7f800000 - bics r0, r3, r0
+ mov r0, 0x7f800000 + bics r0, r4
cmp r0, 0 bne SHORT G_M35754_IG07 mvn r0, 0x80000000
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=14 bbWeight=0.50 PerfScore 2.50
G_M35754_IG06: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8} - pop {r11,pc} - ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz subs r0, r1, 1 movw r1, 0xd1ff movt r1, 0xd1ff cmp r0, r1 blo SHORT G_M35754_IG08
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r1, 0xd1ff movt r1, 0xd1ff
+ mov r0, r1 + ; gcrRegs +[r0]
movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3] blx r3 // <unknown method>
- ;; size=42 bbWeight=0.50 PerfScore 6.50
+ ; gcrRegs -[r0] + ;; size=36 bbWeight=0.50 PerfScore 6.00
G_M35754_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmov.f2i r0, s16 - movw r3, 0xd1ff - movt r3, 0xd1ff - ands r0, r3
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ands r0, r4
cmp r0, 0 bne SHORT G_M35754_IG09 movs r3, 32 b SHORT G_M35754_IG10
- ;; size=22 bbWeight=0.50 PerfScore 4.00
+ ;; size=18 bbWeight=0.50 PerfScore 3.50
G_M35754_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movw r3, 0xd1ff movt r3, 0xd1ff @@ -116,22 +113,19 @@ G_M35754_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr subs r0, 126 ;; size=8 bbWeight=0.50 PerfScore 1.50 G_M35754_IG11: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8} - pop {r11,pc} - ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M35754_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- vmov.f2i r0, s16 - lsrs r0, r0, 23
+ lsrs r0, r4, 23
uxtb r0, r0 subs r0, 127 sxtb r0, r0
- ;; size=12 bbWeight=0.50 PerfScore 2.50
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
G_M35754_IG13: ; bbWeight=0.50, epilog, nogc, extend
- vpop {d8-d8} - pop {r11,pc} - ;; size=8 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 220, prolog size 12, PerfScore 39.00, instruction count 68, allocated bytes for code 220 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (Tier1)
+; Total bytes of code 178, prolog size 8, PerfScore 33.00, instruction count 58, allocated bytes for code 178 (MethodHash=eb1a7455) for method System.MathF:ILogB(float):int (Tier1)
; ============================================================ Unwind Info: @@ -143,7 +137,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 110 (0x0006e) Actual length = 220 (0x0000dc)
+ Function Length : 89 (0x00059) Actual length = 178 (0x0000b2)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -163,7 +157,7 @@ Unwind Info: Epilog Start Index : 0 (0x00) ---- Unwind codes ---- ---- Epilog start at index 0 ----
- E0 vpop {d8} ; opsize 32 - A8 00 pop {r11,lr} ; opsize 32
+ A8 18 pop {r3,r4,r11,lr} ; opsize 32 + FF end
FF end

-8 (-19.05%) : 36229.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)

@@ -11,6 +11,7 @@ ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -29,14 +30,12 @@ G_M25960_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M25960_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1] ; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M25960_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ldrb r0, [r4+0x14] ;; size=2 bbWeight=1 PerfScore 1.00 @@ -44,7 +43,7 @@ G_M25960_IG05: ; bbWeight=1, epilog, nogc, extend pop {r4,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=59229a97) for method (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -56,7 +55,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

-8 (-19.05%) : 38266.dasm - System.Runtime.CompilerServices.Unsafe:UnboxMicroBenchmarks.Serializers.SimpleStructWithProperties:byref (Tier1)

@@ -9,6 +9,7 @@ ; ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -27,14 +28,12 @@ G_M55140_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M55140_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1] ; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M55140_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref adds r0, r4, 4 ; byrRegs +[r0] @@ -43,7 +42,7 @@ G_M55140_IG05: ; bbWeight=1, epilog, nogc, extend pop {r4,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=4ae6289b) for method System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.SimpleStructWithProperties](System.Object):byref (Tier1)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=4ae6289b) for method System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.SimpleStructWithProperties](System.Object):byref (Tier1)
; ============================================================ Unwind Info: @@ -55,7 +54,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

+44 (+14.29%) : 15024.dasm - System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (Tier1)

@@ -8,39 +8,38 @@ ; 0 inlinees with PGO data; 6 single block inlinees; 4 inlinees without PGO data ; Final local variable assignments ;
-; V00 loc0 [V00,T03] ( 4, 3 ) ref -> [sp+0x08] class-hnd exact EH-live spill-single-def <System.Object>
+; V00 loc0 [V00,T02] ( 4, 3 ) ref -> [sp+0x08] class-hnd exact EH-live spill-single-def <System.Object>
; V01 loc1 [V01 ] ( 6, 6 ) ubyte -> [sp+0x0C] do-not-enreg[X] addr-exposed ld-addr-op ;* V02 loc2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Reflection.Emit.RuntimeAssemblyBuilder>
-; V04 loc4 [V04,T05] ( 2, 1 ) ref -> [sp+0x04] must-init class-hnd EH-live single-def <System.Reflection.Module>
+; V04 loc4 [V04,T04] ( 2, 1 ) ref -> [sp+0x04] must-init class-hnd EH-live single-def <System.Reflection.Module>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T01] ( 3, 6 ) ref -> r5 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V06 tmp1 [V06,T00] ( 3, 6 ) ref -> r4 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Module> ;* V08 tmp3 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T02] ( 2, 4 ) ubyte -> r0 "Inlining Arg"
+; V09 tmp4 [V09,T01] ( 2, 4 ) ubyte -> r0 "Inlining Arg"
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Module> ;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Reflection.Emit.RuntimeModuleBuilder>
-; V13 PSPSym [V13,T06] ( 1, 1 ) int -> [sp+0x14] do-not-enreg[V] "PSPSym" -; V14 cse0 [V14,T00] ( 8, 8 ) int -> r4 "CSE - aggressive" -; V15 cse1 [V15,T04] ( 3, 3 ) ref -> r1 "CSE - aggressive"
+; V13 PSPSym [V13,T05] ( 1, 1 ) int -> [sp+0x10] do-not-enreg[V] "PSPSym" +; V14 cse0 [V14,T03] ( 3, 3 ) ref -> r1 "CSE - unknown"
;
-; Lcl frame size = 24
+; Lcl frame size = 20
G_M41701_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r11,lr} - sub sp, 24 - add r11, sp, 32
+ push {r4,r11,lr} + sub sp, 20 + add r11, sp, 24
movs r0, 0 str r0, [sp+0x04] // [V04 loc4]
- add r0, sp, 40 - str r0, [sp+0x14] // [V13 PSPSym]
+ add r0, sp, 32 + str r0, [sp+0x10] // [V13 PSPSym]
;; size=18 bbWeight=1 PerfScore 7.00
-G_M41701_IG02: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M41701_IG02: ; bbWeight=1, gcVars=00000010 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V04}
- movw r4, 0xd1ff - movt r4, 0xd1ff - ldr r0, [r4]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] dmb 15 cmp r0, 0 @@ -49,15 +48,17 @@ G_M41701_IG02: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, by G_M41701_IG03: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[r0] ; GC ptr vars -{V04}
- ldr r0, [r4]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] dmb 15
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=14 bbWeight=1 PerfScore 4.00
G_M41701_IG04: ; bbWeight=1, epilog, nogc, extend
- add sp, 24 - pop {r4,r5,r11,pc}
+ add sp, 20 + pop {r4,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
-G_M41701_IG05: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M41701_IG05: ; bbWeight=1, gcVars=00000010 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0] ; GC ptr vars +{V04} movw r3, 0xd1ff @@ -65,14 +66,16 @@ G_M41701_IG05: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, by ldr r3, [r3] blx r3 // System.Reflection.Emit.AssemblyBuilder:EnsureDynamicCodeSupported() ; gcr arg pop 0
- ldr r1, [r4+0x04]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r1, [r1]
; gcrRegs +[r1] str r1, [sp+0x08] // [V00 loc0] ; GC ptr vars +{V00} movs r0, 0 str r0, [sp+0x0C] // [V01 loc1]
- ;; size=20 bbWeight=1 PerfScore 8.00 -G_M41701_IG06: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=28 bbWeight=1 PerfScore 10.00 +G_M41701_IG06: ; bbWeight=1, gcVars=00000014 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r1] ldrb r0, [sp+0x0C] // [V01 loc1] cmp r0, 0 @@ -100,19 +103,24 @@ G_M41701_IG06: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {} ; gcr arg pop 0 ;; size=52 bbWeight=1 PerfScore 18.00 G_M41701_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r4]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] dmb 15 cmp r0, 0 beq SHORT G_M41701_IG09
- ldr r2, [r4]
+ movw r0, 0xd1ff + ; gcrRegs -[r0] + movt r0, 0xd1ff + ldr r2, [r0]
; gcrRegs +[r2] dmb 15 str r2, [sp+0x04] // [V04 loc4] b SHORT G_M41701_IG11
- ;; size=20 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 12.00
G_M41701_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r0 r2]
+ ; gcrRegs -[r2]
movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3] @@ -128,9 +136,9 @@ G_M41701_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blx r3 // CORINFO_HELP_NEWSFAST ; gcrRegs +[r0] ; gcr arg pop 0
- mov r5, r0 - ; gcrRegs +[r5] - mov r0, r5
+ mov r4, r0 + ; gcrRegs +[r4] + mov r0, r4
movw r1, 0xd1ff movt r1, 0xd1ff movw r3, 0xd1ff @@ -139,9 +147,11 @@ G_M41701_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blx r3 // <unknown method> ; gcrRegs -[r0] ; gcr arg pop 0
- ldr r2, [r4-0xF0]
+ movw r2, 0xd1ff + movt r2, 0xd1ff + ldr r2, [r2]
; gcrRegs +[r2]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0] movs r1, 1 movs r3, 0 @@ -149,19 +159,20 @@ G_M41701_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movt lr, 0xd1ff ldr lr, [lr] blx lr // <unknown method>
- ; gcrRegs -[r2 r5]
+ ; gcrRegs -[r2 r4]
; gcr arg pop 0 ldr r1, [r0+0x08] ; gcrRegs +[r1] ldr r1, [r1+0x0C]
- mov r0, r4
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF ; gcrRegs -[r1]
- ;; size=82 bbWeight=1 PerfScore 27.00 -G_M41701_IG10: ; bbWeight=1, gcVars=00000008 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=94 bbWeight=1 PerfScore 30.00 +G_M41701_IG10: ; bbWeight=1, gcVars=00000004 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V04} ldrb r0, [sp+0x0C] // [V01 loc1] cmp r0, 0 @@ -176,34 +187,34 @@ G_M41701_IG10: ; bbWeight=1, gcVars=00000008 {V00}, gcrefRegs=0000 {}, by ; gcr arg pop 0 b SHORT G_M41701_IG03 ;; size=22 bbWeight=1 PerfScore 8.00
-G_M41701_IG11: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M41701_IG11: ; bbWeight=1, gcVars=00000014 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars +{V00 V04} bl G_M41701_IG15 ;; size=4 bbWeight=1 PerfScore 1.00 G_M41701_IG12: ; bbWeight=1, nogc, extend nop ;; size=2 bbWeight=1 PerfScore 1.00
-G_M41701_IG13: ; bbWeight=1, gcVars=00000020 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M41701_IG13: ; bbWeight=1, gcVars=00000010 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V00} ldr r0, [sp+0x04] // [V04 loc4] ; gcrRegs +[r0] ;; size=2 bbWeight=1 PerfScore 1.00 G_M41701_IG14: ; bbWeight=1, epilog, nogc, extend
- add sp, 24 - pop {r4,r5,r11,pc}
+ add sp, 20 + pop {r4,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00 G_M41701_IG15: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs -[r0]
- push {r2,r3,r4,r5,r11,lr}
+ push {r3,r4,r11,lr}
add r3, r11, 8
- str r3, [sp+0x04]
+ str r3, [sp]
;; size=10 bbWeight=1 PerfScore 3.00
-G_M41701_IG16: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M41701_IG16: ; bbWeight=1, gcVars=00000014 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V00}
- ldrb r0, [r11-0x14] // [V01 loc1]
+ ldrb r0, [r11-0x0C] // [V01 loc1]
cmp r0, 0 beq SHORT G_M41701_IG17
- ldr r0, [r11-0x18] // [V00 loc0]
+ ldr r0, [r11-0x10] // [V00 loc0]
; gcrRegs +[r0] movw r3, 0xd1ff movt r3, 0xd1ff @@ -213,10 +224,10 @@ G_M41701_IG16: ; bbWeight=1, gcVars=00000028 {V00 V04}, gcrefRegs=0000 {} ; gcr arg pop 0 ;; size=22 bbWeight=1 PerfScore 7.00 G_M41701_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
- pop {r2,r3,r4,r5,r11,pc}
+ pop {r3,r4,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 308, prolog size 18, PerfScore 102.00, instruction count 107, allocated bytes for code 308 (MethodHash=d1a05d1a) for method System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (Tier1)
+; Total bytes of code 352, prolog size 18, PerfScore 113.00, instruction count 118, allocated bytes for code 352 (MethodHash=d1a05d1a) for method System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (Tier1)
; ============================================================ Unwind Info: @@ -228,7 +239,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 136 (0x00088) Actual length = 272 (0x000110)
+ Function Length : 158 (0x0009e) Actual length = 316 (0x00013c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -240,8 +251,8 @@ Unwind Info: Epilog Start Index : 0 (0x00) ---- Unwind codes ---- ---- Epilog start at index 0 ---- ...

+26 (+14.77%) : 17961.dasm - System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (Tier1)

@@ -9,20 +9,20 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 3, 3 ) ref -> r0 class-hnd single-def <System.String>
-; V01 loc0 [V01,T03] ( 2, 2 ) ref -> r4 class-hnd exact single-def <System.String>
+; V01 loc0 [V01,T02] ( 2, 2 ) ref -> r4 class-hnd exact single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 3 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.String> -; V04 cse0 [V04,T01] ( 6, 4.50) int -> r5 "CSE - aggressive"
+; V03 tmp1 [V03,T01] ( 3, 3 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.String>
; TEMP_01 ref -> [r11-0x0C] ;
-; Lcl frame size = 8
+; Lcl frame size = 12
G_M21158_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r4,r5,r11,lr}
+ push {r4,r11,lr} + sub sp, 12
add r11, sp, 16 movs r1, 0 str r1, [sp+0x04]
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M21158_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[r0] movw r3, 0xd1ff @@ -31,16 +31,18 @@ G_M21158_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre blx r3 // <unknown method> mov r4, r0 ; gcrRegs +[r4]
- movw r5, 0xd1ff - movt r5, 0xd1ff - ldr r3, [r5+0x308]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
; gcrRegs +[r3] cmp r3, 0 bne SHORT G_M21158_IG05
- ;; size=30 bbWeight=1 PerfScore 10.00
+ ;; size=28 bbWeight=1 PerfScore 10.00
G_M21158_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[r0 r3]
- ldr r3, [r5]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
; gcrRegs +[r3] cmp r3, 0 bne SHORT G_M21158_IG04 @@ -49,9 +51,11 @@ G_M21158_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b movt r3, 0xd1ff ldr r3, [r3] blx r3 // System.IO.PersistedFiles:EnsureUserDirectories()
- ;; size=18 bbWeight=0.50 PerfScore 3.50
+ ;; size=26 bbWeight=0.50 PerfScore 4.50
G_M21158_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r5]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] cmp r0, 0 beq SHORT G_M21158_IG07 @@ -64,27 +68,30 @@ G_M21158_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b ldr r3, [r3] blx r3 // System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String str r0, [sp+0x04]
- add r0, r5, 776
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04] ; gcrRegs +[r1] movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF ; gcrRegs -[r1]
- ;; size=52 bbWeight=0.50 PerfScore 8.50
+ ;; size=64 bbWeight=0.50 PerfScore 10.00
G_M21158_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
- ldr r0, [r5+0x308]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] mov r1, r4 ; gcrRegs +[r1] movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3]
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=22 bbWeight=1 PerfScore 7.00
G_M21158_IG06: ; bbWeight=1, epilog, nogc, extend
- add sp, 8 - pop {r4,r5,r11,lr}
+ add sp, 12 + pop {r4,r11,lr}
bx r3 // System.IO.Path:Combine(System.String,System.String):System.String ;; size=8 bbWeight=1 PerfScore 3.00 G_M21158_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref @@ -105,30 +112,27 @@ G_M21158_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref bkpt ;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 176, prolog size 12, PerfScore 34.00, instruction count 58, allocated bytes for code 176 (MethodHash=54c6ad59) for method System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (Tier1)
+; Total bytes of code 202, prolog size 14, PerfScore 39.50, instruction count 66, allocated bytes for code 202 (MethodHash=54c6ad59) for method System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 F bit : 0 E bit : 0 X bit : 0 Vers : 0
- Function Length : 88 (0x00058) Actual length = 176 (0x0000b0)
+ Function Length : 101 (0x00065) Actual length = 202 (0x0000ca)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Condition : 14 (0xe) (always)
- Epilog Start Index : 3 (0x03)
+ Epilog Start Index : 0 (0x00)
---- Unwind codes ----
- A8 3C pop {r2,r3,r4,r5,r11,lr} ; opsize 32 - FF end - ---- Epilog start at index 3 ---- - 02 add sp, sp, #8 ; opsize 16 - A8 30 pop {r4,r5,r11,lr} ; opsize 32 - FF end
+ ---- Epilog start at index 0 ---- + 03 add sp, sp, #12 ; opsize 16 + A8 10 pop {r4,r11,lr} ; opsize 32
FF end

+40 (+22.99%) : 25331.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)

@@ -9,17 +9,15 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 4, 7 ) ref -> r4 class-hnd single-def <System.Type>
-; V01 loc0 [V01,T07] ( 4, 2.50) ref -> r6 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter> -; V02 loc1 [V02,T09] ( 3, 1.25) ref -> r0 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]> -; V03 loc2 [V03,T00] ( 5, 16.50) int -> r5
+; V01 loc0 [V01,T06] ( 4, 2.50) ref -> r5 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter> +; V02 loc1 [V02,T04] ( 3, 5 ) ref -> r6 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]> +; V03 loc2 [V03,T00] ( 5, 16.50) int -> r7
; V04 loc3 [V04,T01] ( 4, 12.50) ref -> r9 class-hnd <System.Text.Json.Serialization.JsonConverterFactory> ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1 [V06,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V06 tmp1 [V06,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V07 tmp2 [V07,T03] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V08 tmp3 [V08,T08] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp" -; V09 cse0 [V09,T06] ( 2, 4.25) byref -> r8 hoist "CSE - aggressive" -; V10 cse1 [V10,T05] ( 3, 5 ) int -> r7 "CSE - aggressive" -; V11 cse2 [V11,T04] ( 7, 5.50) int -> r5 "CSE - aggressive"
+; V08 tmp3 [V08,T07] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp" +; V09 cse0 [V09,T05] ( 3, 5 ) int -> r8 "CSE - unknown"
; TEMP_01 ref -> [r11-0x1C] ; ; Lcl frame size = 8 @@ -33,9 +31,9 @@ G_M54919_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[r4] ;; size=14 bbWeight=1 PerfScore 5.00 G_M54919_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff - movt r5, 0xd1ff - ldr r3, [r5]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
; gcrRegs +[r3] cmp r3, 0 bne SHORT G_M54919_IG04 @@ -48,21 +46,24 @@ G_M54919_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b blx r3 // <unknown method> ; gcrRegs +[r0] str r0, [sp+0x04]
+ movw r0, 0xd1ff + ; gcrRegs -[r0] + movt r0, 0xd1ff
ldr r1, [sp+0x04] ; gcrRegs +[r1]
- mov r0, r5 - ; gcrRegs -[r0]
movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF ; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r5+0x04]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
; gcrRegs +[r3] cmp r3, 0 bne SHORT G_M54919_IG06
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ; gcrRegs -[r3] movw r3, 0xd1ff @@ -71,17 +72,20 @@ G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b blx r3 // System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetDefaultFactoryConverters():System.Text.Json.Serialization.JsonConverterFactory[] ; gcrRegs +[r0] str r0, [sp+0x04]
- adds r0, r5, 4
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04] ; gcrRegs +[r1] movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF ; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r5]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] ldrsb r1, [r0] mov r1, r4 @@ -94,36 +98,36 @@ G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre ; byrRegs +[r0] cmp r0, 0 beq SHORT G_M54919_IG08
- ;; size=24 bbWeight=1 PerfScore 9.00
+ ;; size=32 bbWeight=1 PerfScore 11.00
G_M54919_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz ; gcrRegs -[r4]
- ldr r6, [r0] - ; gcrRegs +[r6] - b SHORT G_M54919_IG11
+ ldr r5, [r0] + ; gcrRegs +[r5] + b SHORT G_M54919_IG10
;; size=4 bbWeight=0.50 PerfScore 1.00 G_M54919_IG08: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r6] +[r4]
+ ; gcrRegs -[r5] +[r4]
; byrRegs -[r0]
- movs r6, 0 - ldr r0, [r5+0x04] - ; gcrRegs +[r0]
movs r5, 0
- ldr r7, [r0+0x04] - cmp r7, 0 - ble SHORT G_M54919_IG11 - ;; size=12 bbWeight=0.50 PerfScore 3.00 -G_M54919_IG09: ; bbWeight=0.25, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0000 {}, byref
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r6, [r0]
; gcrRegs +[r6]
- add r8, r0, 8 - ; byrRegs +[r8] - ;; size=4 bbWeight=0.25 PerfScore 0.25 -G_M54919_IG10: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8}, byref, isz - ; gcrRegs -[r0] - lsls r0, r5, 2 - ldr r9, [r8+r0]
+ movs r7, 0 + ldr r8, [r6+0x04] + cmp r8, 0 + ble SHORT G_M54919_IG10 + ;; size=24 bbWeight=0.50 PerfScore 4.00 +G_M54919_IG09: ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[r5] + add r0, r6, 8 + ; byrRegs +[r0] + lsls r1, r7, 2 + ldr r9, [r0+r1]
; gcrRegs +[r9] mov r0, r9 ; gcrRegs +[r0]
+ ; byrRegs -[r0]
mov r1, r4 ; gcrRegs +[r1] ldr r3, [r9] @@ -132,28 +136,27 @@ G_M54919_IG10: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8}, blx r3 // <unknown method> ; gcrRegs -[r0-r1] cmp r0, 0
- bne SHORT G_M54919_IG13 - adds r5, r5, 1 - cmp r7, r5 - bgt SHORT G_M54919_IG10 - ;; size=30 bbWeight=4 PerfScore 52.00 -G_M54919_IG11: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref - ; gcrRegs -[r4 r9] - ; byrRegs -[r8] - mov r0, r6
+ bne SHORT G_M54919_IG12 + adds r7, r7, 1 + cmp r8, r7 + bgt SHORT G_M54919_IG09 + ;; size=34 bbWeight=4 PerfScore 56.00 +G_M54919_IG10: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref + ; gcrRegs -[r4 r6 r9] + mov r0, r5
; gcrRegs +[r0] ;; size=2 bbWeight=1 PerfScore 1.00
-G_M54919_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M54919_IG11: ; bbWeight=1, epilog, nogc, extend
pop {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc} ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54919_IG13: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs -[r0 r6] +[r9] - mov r6, r9 - ; gcrRegs +[r6] - b SHORT G_M54919_IG11
+G_M54919_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs -[r0 r5] +[r9] + mov r5, r9 + ; gcrRegs +[r5] + b SHORT G_M54919_IG10
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 174, prolog size 12, PerfScore 91.25, instruction count 68, allocated bytes for code 174 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
+; Total bytes of code 214, prolog size 12, PerfScore 101.00, instruction count 76, allocated bytes for code 214 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
; ============================================================ Unwind Info: @@ -165,7 +168,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 87 (0x00057) Actual length = 174 (0x0000ae)
+ Function Length : 107 (0x0006b) Actual length = 214 (0x0000d6)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

coreclr_tests.run.linux.arm.checked.mch

-8 (-16.00%) : 156317.dasm - Program:CastToGenericStructint:GenericStruct`1int

@@ -9,6 +9,7 @@ ; ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 4 @@ -28,13 +29,11 @@ G_M58398_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M58398_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1]
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M58398_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ldrb r0, [r4+0x04] ;; size=2 bbWeight=1 PerfScore 1.00 @@ -42,7 +41,7 @@ G_M58398_IG05: ; bbWeight=1, epilog, nogc, extend pop {r3,r4,r11,pc} ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 50, prolog size 8, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=a0951be1) for method Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
+; Total bytes of code 42, prolog size 8, PerfScore 11.00, instruction count 14, allocated bytes for code 42 (MethodHash=a0951be1) for method Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
; ============================================================ Unwind Info: @@ -54,7 +53,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 25 (0x00019) Actual length = 50 (0x000032)
+ Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

-8 (-16.00%) : 369961.dasm - BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)

@@ -9,6 +9,7 @@ ; ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 4 @@ -28,13 +29,11 @@ G_M41610_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M41610_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1]
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M41610_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ldr r0, [r4+0x04] ;; size=2 bbWeight=1 PerfScore 1.00 @@ -42,7 +41,7 @@ G_M41610_IG05: ; bbWeight=1, epilog, nogc, extend pop {r3,r4,r11,pc} ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 50, prolog size 8, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=985a5d75) for method BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
+; Total bytes of code 42, prolog size 8, PerfScore 11.00, instruction count 14, allocated bytes for code 42 (MethodHash=985a5d75) for method BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
; ============================================================ Unwind Info: @@ -54,7 +53,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 25 (0x00019) Actual length = 50 (0x000032)
+ Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

-8 (-16.00%) : 378630.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)

@@ -10,9 +10,10 @@ ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
-;* V02 tmp2 [V02,T01] ( 0, 0 ) ubyte -> zero-ref "field V01.hasValue (fldOffset=0x0)" P-INDEP -;* V03 tmp3 [V03,T02] ( 0, 0 ) ubyte -> zero-ref "field V01.value (fldOffset=0x1)" P-INDEP -; V04 cse0 [V04,T00] ( 2, 2 ) byref -> r0 "CSE - aggressive"
+;* V02 tmp2 [V02,T02] ( 0, 0 ) ubyte -> zero-ref "field V01.hasValue (fldOffset=0x0)" P-INDEP +;* V03 tmp3 [V03,T03] ( 0, 0 ) ubyte -> zero-ref "field V01.value (fldOffset=0x1)" P-INDEP +; V04 cse0 [V04,T01] ( 3, 1.50) int -> r0 "CSE - unknown" +; V05 cse1 [V05,T00] ( 2, 2 ) byref -> r0 "CSE - unknown"
; ; Lcl frame size = 4 @@ -27,14 +28,12 @@ G_M5950_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, bne SHORT G_M5950_IG04 ;; size=14 bbWeight=1 PerfScore 5.00 G_M5950_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r0, 1 - movw r3, 0xd1ff - movt r3, 0xd1ff - strb r0, [r3] - movw r3, 0xd1ff - movt r3, 0xd1ff - strb r0, [r3] - ;; size=22 bbWeight=0.50 PerfScore 3.50
+ movw r0, 0xd1ff + movt r0, 0xd1ff + movs r3, 1 + strb r3, [r0] + strb r3, [r0+0x01] + ;; size=14 bbWeight=0.50 PerfScore 2.50
G_M5950_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movw r0, 0xd1ff movt r0, 0xd1ff @@ -44,7 +43,7 @@ G_M5950_IG05: ; bbWeight=1, epilog, nogc, extend pop {r3,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 50, prolog size 2, PerfScore 13.50, instruction count 17, allocated bytes for code 50 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
+; Total bytes of code 42, prolog size 2, PerfScore 12.50, instruction count 15, allocated bytes for code 42 (MethodHash=c960e8c1) for method Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -56,7 +55,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 25 (0x00019) Actual length = 50 (0x000032)
+ Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

+24 (+60.00%) : 416276.dasm - Application:Display(int,System.String,int) (FullOpts)

@@ -7,25 +7,26 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T02] ( 3, 3 ) int -> r0 single-def -; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r1 class-hnd single-def <System.String> -; V02 arg2 [V02,T03] ( 3, 3 ) int -> r4 single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> r0 single-def +; V01 arg1 [V01,T00] ( 3, 3 ) ref -> r1 class-hnd single-def <System.String> +; V02 arg2 [V02,T02] ( 3, 3 ) int -> r4 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T00] ( 5, 5 ) int -> r5 "CSE - aggressive"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M61215_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,lr}
+ push {r4,lr}
mov r4, r2 ;; size=4 bbWeight=1 PerfScore 2.00 G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref ; gcrRegs +[r1]
- movw r5, 0xd1ff - movt r5, 0xd1ff - ldr r3, [r5]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
adds r0, r3, r0
- str r0, [r5]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + str r0, [r3]
mov r0, r1 ; gcrRegs +[r0] movw r3, 0xd1ff @@ -34,15 +35,19 @@ G_M61215_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byre blx r3 // Application:Display(System.String) ; gcrRegs -[r0-r1] ; gcr arg pop 0
- ldr r3, [r5]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
adds r3, r3, r4
- str r3, [r5] - ;; size=34 bbWeight=1 PerfScore 13.00
+ movw r2, 0xd1ff + movt r2, 0xd1ff + str r3, [r2] + ;; size=58 bbWeight=1 PerfScore 19.00
G_M61215_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r3,r4,r5,pc}
+ pop {r4,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 40, prolog size 2, PerfScore 16.00, instruction count 16, allocated bytes for code 40 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
+; Total bytes of code 64, prolog size 2, PerfScore 22.00, instruction count 22, allocated bytes for code 64 (MethodHash=9ad310e0) for method Application:Display(int,System.String,int) (FullOpts)
; ============================================================ Unwind Info: @@ -54,11 +59,12 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 40 (0x000028)
+ Function Length : 32 (0x00020) Actual length = 64 (0x000040)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- ED 38 pop {r3,r4,r5,lr} ; opsize 16
+ D4 pop {r4,lr} ; opsize 16 + FF end
FF end FF end

+24 (+63.16%) : 424110.dasm - otherClass+C:.cctor() (FullOpts)

@@ -9,34 +9,39 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 5, 5 ) int -> r4 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M61252_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,lr}
+ push {r3,lr}
;; size=2 bbWeight=1 PerfScore 1.00 G_M61252_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r4, 0xd1ff - movt r4, 0xd1ff
movs r0, 2
- str r0, [r4]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + str r0, [r3]
movs r0, 3
- str r0, [r4+0x04]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + str r0, [r3]
movs r0, 4
- str r0, [r4+0x08]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + str r0, [r3]
movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3] blx r3 // otherClass:foo(int):int ; gcr arg pop 0
- str r0, [r4+0x0C] - ;; size=34 bbWeight=1 PerfScore 13.00
+ movw r3, 0xd1ff + movt r3, 0xd1ff + str r0, [r3] + ;; size=58 bbWeight=1 PerfScore 19.00
G_M61252_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,pc}
+ pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 38, prolog size 2, PerfScore 15.00, instruction count 15, allocated bytes for code 38 (MethodHash=069510bb) for method otherClass+C:.cctor() (FullOpts)
+; Total bytes of code 62, prolog size 2, PerfScore 21.00, instruction count 21, allocated bytes for code 62 (MethodHash=069510bb) for method otherClass+C:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -48,12 +53,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 19 (0x00013) Actual length = 38 (0x000026)
+ Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- D4 pop {r4,lr} ; opsize 16 - FF end
+ ED 08 pop {r3,lr} ; opsize 16
FF end FF end

+24 (+63.16%) : 424200.dasm - foo:TestEntryPoint() (FullOpts)

@@ -10,33 +10,38 @@ ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) byte -> zero-ref "Inline stloc first use temp"
-; V02 cse0 [V02,T00] ( 5, 5 ) int -> r4 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M48041_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,lr}
+ push {r3,lr}
;; size=2 bbWeight=1 PerfScore 1.00 G_M48041_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r4, 0xd1ff - movt r4, 0xd1ff
movs r0, 19
- strb r0, [r4]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + strb r0, [r1]
movs r0, 3
- strb r0, [r4+0x01] - ldrsb r0, [r4]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + strb r0, [r1] + movw r0, 0xd1ff + movt r0, 0xd1ff + ldrsb r0, [r0]
movs r1, 3 movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_DIV ; gcr arg pop 0
- strb r0, [r4+0x02] - ;; size=34 bbWeight=1 PerfScore 12.00
+ movw r3, 0xd1ff + movt r3, 0xd1ff + strb r0, [r3] + ;; size=58 bbWeight=1 PerfScore 18.00
G_M48041_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,pc}
+ pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 38, prolog size 2, PerfScore 14.00, instruction count 14, allocated bytes for code 38 (MethodHash=5a9d4456) for method foo:TestEntryPoint() (FullOpts)
+; Total bytes of code 62, prolog size 2, PerfScore 20.00, instruction count 20, allocated bytes for code 62 (MethodHash=5a9d4456) for method foo:TestEntryPoint() (FullOpts)
; ============================================================ Unwind Info: @@ -48,12 +53,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 19 (0x00013) Actual length = 38 (0x000026)
+ Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- D4 pop {r4,lr} ; opsize 16 - FF end
+ ED 08 pop {r3,lr} ; opsize 16
FF end FF end

libraries.crossgen2.linux.arm.checked.mch

-20 (-20.41%) : 191537.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:SortSystem.__Canon (FullOpts)

@@ -10,73 +10,63 @@ ; Final local variable assignments ; ; V00 TypeCtx [V00,T00] ( 4, 3.50) int -> r0 single-def
-; V01 arg0 [V01,T01] ( 4, 3.50) struct ( 8) [sp+0x30] do-not-enreg[SF] ld-addr-op single-def <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
+; V01 arg0 [V01,T01] ( 4, 3.50) struct ( 8) [sp+0x28] do-not-enreg[SF] ld-addr-op single-def <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
; V02 OutArgs [V02 ] ( 1, 1 ) struct ( 8) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
-; V04 tmp2 [V04,T02] ( 5, 5 ) struct (16) [sp+0x0C] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Collections.Internal.SegmentedArraySegment`1[System.__Canon]>
+;* V04 tmp2 [V04,T02] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SFA] multireg-arg ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Collections.Internal.SegmentedArraySegment`1[System.__Canon]>
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V06 tmp4 [V06,T06] ( 2, 1 ) ref -> r2 single-def "field V03._items (fldOffset=0x0)" P-INDEP -;* V07 tmp5 [V07,T07] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP -; V08 tmp6 [V08,T03] ( 4, 3 ) int -> r3 "V01.[004..008)"
+;* V06 tmp4 [V06,T07] ( 0, 0 ) ref -> zero-ref single-def "field V03._items (fldOffset=0x0)" P-INDEP +;* V07 tmp5 [V07,T08] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP +; V08 tmp6 [V08,T03] ( 2, 2 ) int -> r3 "V01.[004..008)"
; V09 tmp7 [V09,T05] ( 2, 2 ) int -> r0 "argument with side effect"
-; V10 cse0 [V10,T04] ( 4, 3 ) int -> r5 "CSE - aggressive"
+; V10 cse0 [V10,T04] ( 4, 3 ) int -> r5 "CSE - unknown" +; V11 cse1 [V11,T06] ( 2, 1 ) ref -> r6 "CSE - unknown"
;
-; Lcl frame size = 32
+; Lcl frame size = 20
G_M14314_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push {r1,r2}
- push {r4,r5,r11,lr} - sub sp, 32 - add r11, sp, 40 - movs r1, 0 - str r1, [sp+0x14] - str r0, [r11-0x0C] - ;; size=20 bbWeight=1 PerfScore 7.00
+ push {r4,r5,r6,r11,lr} + sub sp, 20 + add r11, sp, 32 + str r0, [r11-0x14] + ;; size=16 bbWeight=1 PerfScore 5.00
G_M14314_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r5, [sp+0x34]
+ ldr r5, [sp+0x2C]
mov r3, r5 cmp r3, 1 ble SHORT G_M14314_IG04 ;; size=8 bbWeight=1 PerfScore 4.00 G_M14314_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr r2, [sp+0x30] - ; gcrRegs +[r2] - movs r1, 0 - str r1, [sp+0x0C] - str r1, [sp+0x10] - str r1, [sp+0x14] - str r1, [sp+0x18] - str r2, [sp+0x14] - str r3, [sp+0x18] - str r3, [sp+0x10]
+ ldr r6, [sp+0x28] + ; gcrRegs +[r6]
movw r4, LOW RELOC 0xD1FFAB1E movt r4, HIGH RELOC 0xD1FFAB1E add r4, pc ldr r3, [r4] blx r3 // CORINFO_HELP_READYTORUN_GENERIC_HANDLE
- ; gcrRegs -[r2]
movs r3, 0 ; gcrRegs +[r3] str r3, [sp+0x04] movs r1, 0
- ldr r3, [sp+0x14]
mov r2, r5
+ mov r3, r6
str r5, [sp] movw r4, LOW RELOC 0xD1FFAB1E movt r4, HIGH RELOC 0xD1FFAB1E add r4, pc ldr lr, [r4] blx lr // <unknown method>
- ; gcrRegs -[r3] - ;; size=60 bbWeight=0.50 PerfScore 12.50
+ ; gcrRegs -[r3 r6] + ;; size=44 bbWeight=0.50 PerfScore 8.50
G_M14314_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- add sp, 32 - pop {r4,r5,r11,lr}
+ add sp, 20 + pop {r4,r5,r6,r11,lr}
add sp, 8 bx lr ;; size=10 bbWeight=1 PerfScore 4.00
-; Total bytes of code 98, prolog size 20, PerfScore 27.50, instruction count 40, allocated bytes for code 98 (MethodHash=d48bc815) for method Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
+; Total bytes of code 78, prolog size 16, PerfScore 21.50, instruction count 30, allocated bytes for code 78 (MethodHash=d48bc815) for method Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
; ============================================================ Unwind Info: @@ -88,20 +78,20 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 49 (0x00031) Actual length = 98 (0x000062)
+ Function Length : 39 (0x00027) Actual length = 78 (0x00004e)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Condition : 14 (0xe) (always) Epilog Start Index : 6 (0x06) ---- Unwind codes ----
- 08 add sp, sp, #32 ; opsize 16 - A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ 05 add sp, sp, #20 ; opsize 16 + A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
EC 06 pop {r1,r2} ; opsize 16 FF end ---- Epilog start at index 6 ----
- 08 add sp, sp, #32 ; opsize 16 - A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ 05 add sp, sp, #20 ; opsize 16 + A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
02 add sp, sp, #8 ; opsize 16 FD end + nop ; opsize 16 FF end

-20 (-20.41%) : 169822.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:SortSystem.__Canon (FullOpts)

@@ -10,73 +10,63 @@ ; Final local variable assignments ; ; V00 TypeCtx [V00,T00] ( 4, 3.50) int -> r0 single-def
-; V01 arg0 [V01,T01] ( 4, 3.50) struct ( 8) [sp+0x30] do-not-enreg[SF] ld-addr-op single-def <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
+; V01 arg0 [V01,T01] ( 4, 3.50) struct ( 8) [sp+0x28] do-not-enreg[SF] ld-addr-op single-def <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
; V02 OutArgs [V02 ] ( 1, 1 ) struct ( 8) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]>
-; V04 tmp2 [V04,T02] ( 5, 5 ) struct (16) [sp+0x0C] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Collections.Internal.SegmentedArraySegment`1[System.__Canon]>
+;* V04 tmp2 [V04,T02] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SFA] multireg-arg ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Collections.Internal.SegmentedArraySegment`1[System.__Canon]>
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V06 tmp4 [V06,T06] ( 2, 1 ) ref -> r2 single-def "field V03._items (fldOffset=0x0)" P-INDEP -;* V07 tmp5 [V07,T07] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP -; V08 tmp6 [V08,T03] ( 4, 3 ) int -> r3 "V01.[004..008)"
+;* V06 tmp4 [V06,T07] ( 0, 0 ) ref -> zero-ref single-def "field V03._items (fldOffset=0x0)" P-INDEP +;* V07 tmp5 [V07,T08] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP +; V08 tmp6 [V08,T03] ( 2, 2 ) int -> r3 "V01.[004..008)"
; V09 tmp7 [V09,T05] ( 2, 2 ) int -> r0 "argument with side effect"
-; V10 cse0 [V10,T04] ( 4, 3 ) int -> r5 "CSE - aggressive"
+; V10 cse0 [V10,T04] ( 4, 3 ) int -> r5 "CSE - unknown" +; V11 cse1 [V11,T06] ( 2, 1 ) ref -> r6 "CSE - unknown"
;
-; Lcl frame size = 32
+; Lcl frame size = 20
G_M14314_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push {r1,r2}
- push {r4,r5,r11,lr} - sub sp, 32 - add r11, sp, 40 - movs r1, 0 - str r1, [sp+0x14] - str r0, [r11-0x0C] - ;; size=20 bbWeight=1 PerfScore 7.00
+ push {r4,r5,r6,r11,lr} + sub sp, 20 + add r11, sp, 32 + str r0, [r11-0x14] + ;; size=16 bbWeight=1 PerfScore 5.00
G_M14314_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r5, [sp+0x34]
+ ldr r5, [sp+0x2C]
mov r3, r5 cmp r3, 1 ble SHORT G_M14314_IG04 ;; size=8 bbWeight=1 PerfScore 4.00 G_M14314_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr r2, [sp+0x30] - ; gcrRegs +[r2] - movs r1, 0 - str r1, [sp+0x0C] - str r1, [sp+0x10] - str r1, [sp+0x14] - str r1, [sp+0x18] - str r2, [sp+0x14] - str r3, [sp+0x18] - str r3, [sp+0x10]
+ ldr r6, [sp+0x28] + ; gcrRegs +[r6]
movw r4, LOW RELOC 0xD1FFAB1E movt r4, HIGH RELOC 0xD1FFAB1E add r4, pc ldr r3, [r4] blx r3 // CORINFO_HELP_READYTORUN_GENERIC_HANDLE
- ; gcrRegs -[r2]
movs r3, 0 ; gcrRegs +[r3] str r3, [sp+0x04] movs r1, 0
- ldr r3, [sp+0x14]
mov r2, r5
+ mov r3, r6
str r5, [sp] movw r4, LOW RELOC 0xD1FFAB1E movt r4, HIGH RELOC 0xD1FFAB1E add r4, pc ldr lr, [r4] blx lr // <unknown method>
- ; gcrRegs -[r3] - ;; size=60 bbWeight=0.50 PerfScore 12.50
+ ; gcrRegs -[r3 r6] + ;; size=44 bbWeight=0.50 PerfScore 8.50
G_M14314_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- add sp, 32 - pop {r4,r5,r11,lr}
+ add sp, 20 + pop {r4,r5,r6,r11,lr}
add sp, 8 bx lr ;; size=10 bbWeight=1 PerfScore 4.00
-; Total bytes of code 98, prolog size 20, PerfScore 27.50, instruction count 40, allocated bytes for code 98 (MethodHash=d48bc815) for method Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
+; Total bytes of code 78, prolog size 16, PerfScore 21.50, instruction count 30, allocated bytes for code 78 (MethodHash=d48bc815) for method Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
; ============================================================ Unwind Info: @@ -88,20 +78,20 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 49 (0x00031) Actual length = 98 (0x000062)
+ Function Length : 39 (0x00027) Actual length = 78 (0x00004e)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Condition : 14 (0xe) (always) Epilog Start Index : 6 (0x06) ---- Unwind codes ----
- 08 add sp, sp, #32 ; opsize 16 - A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ 05 add sp, sp, #20 ; opsize 16 + A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
EC 06 pop {r1,r2} ; opsize 16 FF end ---- Epilog start at index 6 ----
- 08 add sp, sp, #32 ; opsize 16 - A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ 05 add sp, sp, #20 ; opsize 16 + A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
02 add sp, sp, #8 ; opsize 16 FD end + nop ; opsize 16 FF end

-36 (-18.37%) : 79201.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)

@@ -9,38 +9,41 @@ ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T06] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.Xml.XmlSubtreeReader> -; V01 arg1 [V01,T04] ( 3, 6 ) ref -> r1 class-hnd single-def <System.String> -; V02 arg2 [V02,T07] ( 3, 4 ) ref -> r2 class-hnd single-def <System.String> -; V03 loc0 [V03,T01] ( 9, 22.50) int -> r0 -; V04 loc1 [V04,T17] ( 2, 1 ) ref -> [sp+0x04] class-hnd exact spill-single-def <<unknown class>>
+; V00 this [V00,T10] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.Xml.XmlSubtreeReader> +; V01 arg1 [V01,T07] ( 3, 6 ) ref -> r1 class-hnd single-def <System.String> +; V02 arg2 [V02,T11] ( 3, 4 ) ref -> r2 class-hnd single-def <System.String> +; V03 loc0 [V03,T01] ( 7, 21.50) int -> r0 +; V04 loc1 [V04,T18] ( 2, 1 ) ref -> r7 class-hnd exact <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T09] ( 3, 3 ) ref -> r3 class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>> -; V07 tmp2 [V07,T14] ( 2, 2 ) ref -> lr class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
+;* V06 tmp1 [V06,T19] ( 0, 0 ) ref -> zero-ref class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>> +; V07 tmp2 [V07,T15] ( 2, 2 ) ref -> r1 class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.String> ;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.String>
-; V10 tmp5 [V10,T00] ( 3, 24 ) ref -> lr "arr expr" -;* V11 tmp6 [V11,T08] ( 0, 0 ) ref -> zero-ref "arr expr" -;* V12 tmp7 [V12,T18] ( 0, 0 ) ref -> zero-ref "arr expr" -; V13 tmp8 [V13,T10] ( 3, 3 ) ref -> lr "arr expr" -; V14 tmp9 [V14,T12] ( 3, 3 ) int -> r12 "index expr" -; V15 tmp10 [V15,T11] ( 3, 3 ) ref -> r5 "arr expr" -; V16 tmp11 [V16,T15] ( 2, 2 ) int -> r1 "index expr" -; V17 cse0 [V17,T02] ( 4, 10.50) ref -> lr "CSE - aggressive" -; V18 cse1 [V18,T13] ( 5, 2.50) int -> r2 "CSE - moderate" -; V19 cse2 [V19,T03] ( 5, 6 ) ref -> r5 hoist "CSE - aggressive" -; V20 cse3 [V20,T05] ( 4, 6.50) int -> r3 "CSE - aggressive" -; V21 cse4 [V21,T16] ( 3, 1.50) int -> r6 "CSE - moderate"
+; V10 tmp5 [V10,T00] ( 3, 24 ) ref -> r12 "arr expr" +;* V11 tmp6 [V11,T12] ( 0, 0 ) ref -> zero-ref "arr expr" +;* V12 tmp7 [V12,T20] ( 0, 0 ) ref -> zero-ref "arr expr" +;* V13 tmp8 [V13,T21] ( 0, 0 ) ref -> zero-ref "arr expr" +; V14 tmp9 [V14,T13] ( 3, 3 ) int -> r1 "index expr" +;* V15 tmp10 [V15,T22] ( 0, 0 ) ref -> zero-ref "arr expr" +; V16 tmp11 [V16,T16] ( 2, 2 ) int -> r1 "index expr" +; V17 cse0 [V17,T05] ( 2, 4.50) ref -> lr hoist "CSE - unknown" +; V18 cse1 [V18,T09] ( 4, 6.50) int -> r3 "CSE - unknown" +; V19 cse2 [V19,T04] ( 4, 9 ) int -> r5 "CSE - unknown" +; V20 cse3 [V20,T08] ( 2, 8 ) ref -> r7 "CSE - unknown" +; V21 cse4 [V21,T02] ( 4, 10.50) ref -> r7 "CSE - unknown" +; V22 cse5 [V22,T14] ( 5, 2.50) int -> r2 "CSE - unknown" +; V23 cse6 [V23,T03] ( 5, 9.50) byref -> r6 "CSE - unknown" +; V24 cse7 [V24,T17] ( 3, 1.50) int -> r8 "CSE - unknown" +; V25 cse8 [V25,T06] ( 3, 8.50) int -> r12 "CSE - unknown"
;
-; Lcl frame size = 12
+; Lcl frame size = 4
G_M23254_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r11,lr} - sub sp, 12
+ push {r3,r4,r5,r6,r7,r8,r11,lr}
add r11, sp, 24 mov r4, r0 ; gcrRegs +[r4]
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M23254_IG02: ; bbWeight=1, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[r1-r2] movs r0, 0 @@ -49,111 +52,86 @@ G_M23254_IG02: ; bbWeight=1, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {} ble SHORT G_M23254_IG07 ;; size=8 bbWeight=1 PerfScore 4.00 G_M23254_IG03: ; bbWeight=0.50, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}, byref
- ldr r5, [r4+0x10] - ; gcrRegs +[r5] - ;; size=2 bbWeight=0.50 PerfScore 0.50 -G_M23254_IG04: ; bbWeight=4, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz - mov lr, r5
+ ldr lr, [r4+0x10]
; gcrRegs +[lr]
- ldr r12, [lr+0x04] - cmp r0, r12 - bhs SHORT G_M23254_IG11 - add lr, lr, 8 - ; gcrRegs -[lr] - ; byrRegs +[lr] - lsl r12, r0, 2 - ldr lr, [lr+r12] - ; gcrRegs +[lr] - ; byrRegs -[lr] - ldr r12, [lr+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.50 +G_M23254_IG04: ; bbWeight=4, gcrefRegs=4016 {r1 r2 r4 lr}, byrefRegs=0000 {}, byref, isz + mov r12, lr
; gcrRegs +[r12]
- cmp r12, r1
+ ldr r5, [r12+0x04] + cmp r0, r5 + bhs SHORT G_M23254_IG11 + add r6, r12, 8 + ; byrRegs +[r6] + lsl r12, r0, 2 + ; gcrRegs -[r12] + ldr r7, [r6+r12] + ; gcrRegs +[r7] + ldr r8, [r7+0x08] + ; gcrRegs +[r8] + cmp r8, r1
bne SHORT G_M23254_IG06 ;; size=30 bbWeight=4 PerfScore 40.00
-G_M23254_IG05: ; bbWeight=2, gcrefRegs=4036 {r1 r2 r4 r5 lr}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r12] - ldr r12, [lr+0x04] - ; gcrRegs +[r12] - cmp r12, r2
+G_M23254_IG05: ; bbWeight=2, gcrefRegs=4096 {r1 r2 r4 r7 lr}, byrefRegs=0040 {r6}, byref, isz + ; gcrRegs -[r8] + ldr r8, [r7+0x04] + ; gcrRegs +[r8] + cmp r8, r2
beq SHORT G_M23254_IG08 ;; size=8 bbWeight=2 PerfScore 6.00
-G_M23254_IG06: ; bbWeight=4, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r12 lr]
+G_M23254_IG06: ; bbWeight=4, gcrefRegs=4016 {r1 r2 r4 lr}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r7-r8] + ; byrRegs -[r6]
adds r0, r0, 1 cmp r0, r3 blt SHORT G_M23254_IG04 ;; size=6 bbWeight=4 PerfScore 12.00 G_M23254_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[r1-r2 r4-r5] - add sp, 12 - pop {r4,r5,r6,r11,pc} - ;; size=6 bbWeight=0.50 PerfScore 1.00 -G_M23254_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=4030 {r4 r5 lr}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[r4-r5 lr]
+ ; gcrRegs -[r1-r2 r4 lr] + pop {r3,r4,r5,r6,r7,r8,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50 +G_M23254_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0090 {r4 r7}, byrefRegs=0040 {r6}, gcvars, byref, isz + ; gcrRegs +[r4 r7] + ; byrRegs +[r6]
subs r2, r3, 1 cmp r0, r2 bge SHORT G_M23254_IG09
- str lr, [sp+0x04] // [V04 loc1] - ; GC ptr vars +{V04} - mov r3, r5 - ; gcrRegs +[r3] - mov lr, r5 - mov r12, r2 - ldr r6, [lr+0x04] - cmp r12, r6 - bhs SHORT G_M23254_IG11 - add lr, lr, 8 - ; gcrRegs -[lr] - ; byrRegs +[lr] - lsl r6, r12, 2 - ldr lr, [lr+r6] - ; gcrRegs +[lr] - ; byrRegs -[lr] - ldr r12, [r3+0x04] - cmp r0, r12 - bhs SHORT G_M23254_IG11 - adds r3, 8 - ; gcrRegs -[r3] - ; byrRegs +[r3] - lsls r0, r0, 2 - adds r0, r3, r0 - ; byrRegs +[r0] - mov r1, lr - ; gcrRegs +[r1] - movw r12, LOW RELOC 0xD1FFAB1E - movt r12, HIGH RELOC 0xD1FFAB1E - add r12, pc - ldr r12, [r12] - blx r12 // CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[r1 lr] - ; byrRegs -[r0 r3]
mov r1, r2
- ldr r0, [r5+0x04] - cmp r1, r0
+ cmp r1, r5
bhs SHORT G_M23254_IG11
- add r1, r5, 8 - ; byrRegs +[r1] - adds r0, r1, r6 - ; byrRegs +[r0] - ldr r1, [sp+0x04] // [V04 loc1]
+ lsl r8, r1, 2 + ldr r1, [r6+r8]
; gcrRegs +[r1]
- ; byrRegs -[r1]
+ add r0, r6, r12 + ; byrRegs +[r0]
movw r12, LOW RELOC 0xD1FFAB1E movt r12, HIGH RELOC 0xD1FFAB1E add r12, pc ldr r12, [r12]
- ; GC ptr vars -{V04}
blx r12 // CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[r1 r5]
+ ; gcrRegs -[r1]
; byrRegs -[r0]
- ;; size=100 bbWeight=0.50 PerfScore 18.50
+ mov r1, r2 + cmp r1, r5 + bhs SHORT G_M23254_IG11 + add r0, r6, r8 + ; byrRegs +[r0] + mov r1, r7 + ; gcrRegs +[r1] + movw r12, LOW RELOC 0xD1FFAB1E + movt r12, HIGH RELOC 0xD1FFAB1E + add r12, pc + ldr r12, [r12] + blx r12 // CORINFO_HELP_ASSIGN_REF + ; gcrRegs -[r1 r7] + ; byrRegs -[r0 r6] + ;; size=68 bbWeight=0.50 PerfScore 12.00
G_M23254_IG09: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref str r2, [r4+0x30] ;; size=2 bbWeight=0.50 PerfScore 0.50 G_M23254_IG10: ; bbWeight=0.50, epilog, nogc, extend
- add sp, 12 - pop {r4,r5,r6,r11,pc} - ;; size=6 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r5,r6,r7,r8,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M23254_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[r4] movw r3, LOW RELOC 0xD1FFAB1E @@ -165,7 +143,7 @@ G_M23254_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref bkpt ;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 12, PerfScore 87.50, instruction count 73, allocated bytes for code 196 (MethodHash=dfe8a529) for method System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
+; Total bytes of code 160, prolog size 10, PerfScore 79.00, instruction count 57, allocated bytes for code 160 (MethodHash=dfe8a529) for method System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
; ============================================================ Unwind Info: @@ -177,7 +155,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 98 (0x00062) Actual length = 196 (0x0000c4)
+ Function Length : 80 (0x00050) Actual length = 160 (0x0000a0)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -189,7 +167,7 @@ Unwind Info: Epilog Start Index : 0 (0x00) ...

+12 (+28.57%) : 114390.dasm - System.Diagnostics.Activity:get_TraceId():System.Diagnostics.ActivityTraceId:this (FullOpts)

@@ -13,13 +13,12 @@ ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Diagnostics.ActivityTraceId> ;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.String>
-; V04 tmp3 [V04,T02] ( 2, 2 ) ref -> r0 single-def "field V02._hexString (fldOffset=0x0)" P-INDEP -; V05 cse0 [V05,T01] ( 3, 3 ) int -> r6 "CSE - aggressive"
+; V04 tmp3 [V04,T01] ( 2, 2 ) ref -> r0 single-def "field V02._hexString (fldOffset=0x0)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M14062_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,lr}
+ push {r3,r4,r5,lr}
mov r5, r0 ; gcrRegs +[r5] ;; size=4 bbWeight=1 PerfScore 2.00 @@ -27,8 +26,8 @@ G_M14062_IG02: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre movw r0, LOW RELOC 0xD1FFAB1E movt r0, HIGH RELOC 0xD1FFAB1E add r0, pc
- ldr r6, [r0] - ldr r0, [r5+r6]
+ ldr r0, [r0] + ldr r0, [r5+r0]
; gcrRegs +[r0] cmp r0, 0 bne SHORT G_M14062_IG04 @@ -46,14 +45,18 @@ G_M14062_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b ; gcr arg pop 0 ;; size=16 bbWeight=0.50 PerfScore 3.00 G_M14062_IG04: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
- ldr r0, [r5+r6]
+ movw r0, LOW RELOC 0xD1FFAB1E + movt r0, HIGH RELOC 0xD1FFAB1E + add r0, pc + ldr r0, [r0] + ldr r0, [r5+r0]
; gcrRegs +[r0]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M14062_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,pc}
+ pop {r3,r4,r5,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 14.00, instruction count 17, allocated bytes for code 42 (MethodHash=8296c911) for method System.Diagnostics.Activity:get_TraceId():System.Diagnostics.ActivityTraceId:this (FullOpts)
+; Total bytes of code 54, prolog size 2, PerfScore 18.00, instruction count 21, allocated bytes for code 54 (MethodHash=8296c911) for method System.Diagnostics.Activity:get_TraceId():System.Diagnostics.ActivityTraceId:this (FullOpts)
; ============================================================ Unwind Info: @@ -65,12 +68,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- D6 pop {r4,r5,r6,lr} ; opsize 16 - FF end
+ ED 38 pop {r3,r4,r5,lr} ; opsize 16
FF end FF end

+12 (+28.57%) : 87448.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeClass():Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)

@@ -10,12 +10,11 @@ ; ; V00 this [V00,T00] ( 5, 4.50) ref -> r5 this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) int -> r6 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M38112_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,lr}
+ push {r3,r4,r5,lr}
mov r5, r0 ; gcrRegs +[r5] ;; size=4 bbWeight=1 PerfScore 2.00 @@ -23,8 +22,8 @@ G_M38112_IG02: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre movw r0, LOW RELOC 0xD1FFAB1E movt r0, HIGH RELOC 0xD1FFAB1E add r0, pc
- ldr r6, [r0] - ldr r0, [r5+r6]
+ ldr r0, [r0] + ldr r0, [r5+r0]
; gcrRegs +[r0] cmp r0, 0 bne SHORT G_M38112_IG04 @@ -42,14 +41,18 @@ G_M38112_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b ; gcr arg pop 0 ;; size=16 bbWeight=0.50 PerfScore 3.00 G_M38112_IG04: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
- ldr r0, [r5+r6]
+ movw r0, LOW RELOC 0xD1FFAB1E + movt r0, HIGH RELOC 0xD1FFAB1E + add r0, pc + ldr r0, [r0] + ldr r0, [r5+r0]
; gcrRegs +[r0]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M38112_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,pc}
+ pop {r3,r4,r5,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 14.00, instruction count 17, allocated bytes for code 42 (MethodHash=9bd26b1f) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeClass():Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
+; Total bytes of code 54, prolog size 2, PerfScore 18.00, instruction count 21, allocated bytes for code 54 (MethodHash=9bd26b1f) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeClass():Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
; ============================================================ Unwind Info: @@ -61,12 +64,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- D6 pop {r4,r5,r6,lr} ; opsize 16 - FF end
+ ED 38 pop {r3,r4,r5,lr} ; opsize 16
FF end FF end

+12 (+28.57%) : 115944.dasm - Internal.TypeSystem.Ecma.EcmaMethod:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)

@@ -13,13 +13,12 @@ ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <Internal.TypeSystem.Instantiation> ;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc[]>
-; V04 tmp3 [V04,T02] ( 2, 2 ) ref -> r0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP -; V05 cse0 [V05,T01] ( 3, 3 ) int -> r6 "CSE - aggressive"
+; V04 tmp3 [V04,T01] ( 2, 2 ) ref -> r0 single-def "field V02._genericParameters (fldOffset=0x0)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M42175_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,lr}
+ push {r3,r4,r5,lr}
mov r5, r0 ; gcrRegs +[r5] ;; size=4 bbWeight=1 PerfScore 2.00 @@ -27,8 +26,8 @@ G_M42175_IG02: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre movw r0, LOW RELOC 0xD1FFAB1E movt r0, HIGH RELOC 0xD1FFAB1E add r0, pc
- ldr r6, [r0] - ldr r0, [r5+r6]
+ ldr r0, [r0] + ldr r0, [r5+r0]
; gcrRegs +[r0] cmp r0, 0 bne SHORT G_M42175_IG04 @@ -46,14 +45,18 @@ G_M42175_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b ; gcr arg pop 0 ;; size=16 bbWeight=0.50 PerfScore 3.00 G_M42175_IG04: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
- ldr r0, [r5+r6]
+ movw r0, LOW RELOC 0xD1FFAB1E + movt r0, HIGH RELOC 0xD1FFAB1E + add r0, pc + ldr r0, [r0] + ldr r0, [r5+r0]
; gcrRegs +[r0]
- ;; size=2 bbWeight=1 PerfScore 1.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M42175_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,pc}
+ pop {r3,r4,r5,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 14.00, instruction count 17, allocated bytes for code 42 (MethodHash=b5cd5b40) for method Internal.TypeSystem.Ecma.EcmaMethod:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 54, prolog size 2, PerfScore 18.00, instruction count 21, allocated bytes for code 54 (MethodHash=b5cd5b40) for method Internal.TypeSystem.Ecma.EcmaMethod:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================ Unwind Info: @@ -65,12 +68,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- D6 pop {r4,r5,r6,lr} ; opsize 16 - FF end
+ ED 38 pop {r3,r4,r5,lr} ; opsize 16
FF end FF end

libraries.pmi.linux.arm.checked.mch

-36 (-20.00%) : 128225.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)

@@ -8,38 +8,41 @@ ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T06] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.Xml.XmlSubtreeReader> -; V01 arg1 [V01,T04] ( 3, 6 ) ref -> r1 class-hnd single-def <System.String> -; V02 arg2 [V02,T07] ( 3, 4 ) ref -> r2 class-hnd single-def <System.String> -; V03 loc0 [V03,T01] ( 9, 22.50) int -> r0 -; V04 loc1 [V04,T17] ( 2, 1 ) ref -> [sp+0x04] class-hnd exact spill-single-def <<unknown class>>
+; V00 this [V00,T10] ( 5, 4 ) ref -> r4 this class-hnd single-def <System.Xml.XmlSubtreeReader> +; V01 arg1 [V01,T07] ( 3, 6 ) ref -> r1 class-hnd single-def <System.String> +; V02 arg2 [V02,T11] ( 3, 4 ) ref -> r2 class-hnd single-def <System.String> +; V03 loc0 [V03,T01] ( 7, 21.50) int -> r0 +; V04 loc1 [V04,T18] ( 2, 1 ) ref -> r7 class-hnd exact <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T09] ( 3, 3 ) ref -> r3 class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>> -; V07 tmp2 [V07,T14] ( 2, 2 ) ref -> lr class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
+;* V06 tmp1 [V06,T19] ( 0, 0 ) ref -> zero-ref class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>> +; V07 tmp2 [V07,T15] ( 2, 2 ) ref -> r1 class-hnd exact "Strict ordering of exceptions for Array store" <<unknown class>>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V10 tmp5 [V10,T00] ( 3, 24 ) ref -> lr "arr expr" -;* V11 tmp6 [V11,T08] ( 0, 0 ) ref -> zero-ref "arr expr" -;* V12 tmp7 [V12,T18] ( 0, 0 ) ref -> zero-ref "arr expr" -; V13 tmp8 [V13,T10] ( 3, 3 ) ref -> lr "arr expr" -; V14 tmp9 [V14,T12] ( 3, 3 ) int -> r12 "index expr" -; V15 tmp10 [V15,T11] ( 3, 3 ) ref -> r5 "arr expr" -; V16 tmp11 [V16,T15] ( 2, 2 ) int -> r1 "index expr" -; V17 cse0 [V17,T02] ( 4, 10.50) ref -> lr "CSE - aggressive" -; V18 cse1 [V18,T13] ( 5, 2.50) int -> r2 "CSE - moderate" -; V19 cse2 [V19,T03] ( 5, 6 ) ref -> r5 hoist "CSE - aggressive" -; V20 cse3 [V20,T05] ( 4, 6.50) int -> r3 "CSE - aggressive" -; V21 cse4 [V21,T16] ( 3, 1.50) int -> r6 "CSE - moderate"
+; V10 tmp5 [V10,T00] ( 3, 24 ) ref -> r12 "arr expr" +;* V11 tmp6 [V11,T12] ( 0, 0 ) ref -> zero-ref "arr expr" +;* V12 tmp7 [V12,T20] ( 0, 0 ) ref -> zero-ref "arr expr" +;* V13 tmp8 [V13,T21] ( 0, 0 ) ref -> zero-ref "arr expr" +; V14 tmp9 [V14,T13] ( 3, 3 ) int -> r1 "index expr" +;* V15 tmp10 [V15,T22] ( 0, 0 ) ref -> zero-ref "arr expr" +; V16 tmp11 [V16,T16] ( 2, 2 ) int -> r1 "index expr" +; V17 cse0 [V17,T05] ( 2, 4.50) ref -> lr hoist "CSE - unknown" +; V18 cse1 [V18,T09] ( 4, 6.50) int -> r3 "CSE - unknown" +; V19 cse2 [V19,T04] ( 4, 9 ) int -> r5 "CSE - unknown" +; V20 cse3 [V20,T08] ( 2, 8 ) ref -> r7 "CSE - unknown" +; V21 cse4 [V21,T02] ( 4, 10.50) ref -> r7 "CSE - unknown" +; V22 cse5 [V22,T14] ( 5, 2.50) int -> r2 "CSE - unknown" +; V23 cse6 [V23,T03] ( 5, 9.50) byref -> r6 "CSE - unknown" +; V24 cse7 [V24,T17] ( 3, 1.50) int -> r8 "CSE - unknown" +; V25 cse8 [V25,T06] ( 3, 8.50) int -> r12 "CSE - unknown"
;
-; Lcl frame size = 12
+; Lcl frame size = 4
G_M23254_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r11,lr} - sub sp, 12
+ push {r3,r4,r5,r6,r7,r8,r11,lr}
add r11, sp, 24 mov r4, r0 ; gcrRegs +[r4]
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M23254_IG02: ; bbWeight=1, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[r1-r2] movs r0, 0 @@ -48,107 +51,82 @@ G_M23254_IG02: ; bbWeight=1, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {} ble SHORT G_M23254_IG07 ;; size=8 bbWeight=1 PerfScore 4.00 G_M23254_IG03: ; bbWeight=0.50, gcrefRegs=0016 {r1 r2 r4}, byrefRegs=0000 {}, byref
- ldr r5, [r4+0x10] - ; gcrRegs +[r5] - ;; size=2 bbWeight=0.50 PerfScore 0.50 -G_M23254_IG04: ; bbWeight=4, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz - mov lr, r5
+ ldr lr, [r4+0x10]
; gcrRegs +[lr]
- ldr r12, [lr+0x04] - cmp r0, r12 - bhs SHORT G_M23254_IG11 - add lr, lr, 8 - ; gcrRegs -[lr] - ; byrRegs +[lr] - lsl r12, r0, 2 - ldr lr, [lr+r12] - ; gcrRegs +[lr] - ; byrRegs -[lr] - ldr r12, [lr+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.50 +G_M23254_IG04: ; bbWeight=4, gcrefRegs=4016 {r1 r2 r4 lr}, byrefRegs=0000 {}, byref, isz + mov r12, lr
; gcrRegs +[r12]
- cmp r12, r1
+ ldr r5, [r12+0x04] + cmp r0, r5 + bhs SHORT G_M23254_IG11 + add r6, r12, 8 + ; byrRegs +[r6] + lsl r12, r0, 2 + ; gcrRegs -[r12] + ldr r7, [r6+r12] + ; gcrRegs +[r7] + ldr r8, [r7+0x08] + ; gcrRegs +[r8] + cmp r8, r1
bne SHORT G_M23254_IG06 ;; size=30 bbWeight=4 PerfScore 40.00
-G_M23254_IG05: ; bbWeight=2, gcrefRegs=4036 {r1 r2 r4 r5 lr}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r12] - ldr r12, [lr+0x04] - ; gcrRegs +[r12] - cmp r12, r2
+G_M23254_IG05: ; bbWeight=2, gcrefRegs=4096 {r1 r2 r4 r7 lr}, byrefRegs=0040 {r6}, byref, isz + ; gcrRegs -[r8] + ldr r8, [r7+0x04] + ; gcrRegs +[r8] + cmp r8, r2
beq SHORT G_M23254_IG08 ;; size=8 bbWeight=2 PerfScore 6.00
-G_M23254_IG06: ; bbWeight=4, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r12 lr]
+G_M23254_IG06: ; bbWeight=4, gcrefRegs=4016 {r1 r2 r4 lr}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r7-r8] + ; byrRegs -[r6]
adds r0, r0, 1 cmp r0, r3 blt SHORT G_M23254_IG04 ;; size=6 bbWeight=4 PerfScore 12.00 G_M23254_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[r1-r2 r4-r5] - add sp, 12 - pop {r4,r5,r6,r11,pc} - ;; size=6 bbWeight=0.50 PerfScore 1.00 -G_M23254_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=4030 {r4 r5 lr}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[r4-r5 lr]
+ ; gcrRegs -[r1-r2 r4 lr] + pop {r3,r4,r5,r6,r7,r8,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50 +G_M23254_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0090 {r4 r7}, byrefRegs=0040 {r6}, gcvars, byref, isz + ; gcrRegs +[r4 r7] + ; byrRegs +[r6]
subs r2, r3, 1 cmp r0, r2 bge SHORT G_M23254_IG09
- str lr, [sp+0x04] // [V04 loc1] - ; GC ptr vars +{V04} - mov r3, r5 - ; gcrRegs +[r3] - mov lr, r5 - mov r12, r2 - ldr r6, [lr+0x04] - cmp r12, r6 - bhs SHORT G_M23254_IG11 - add lr, lr, 8 - ; gcrRegs -[lr] - ; byrRegs +[lr] - lsl r6, r12, 2 - ldr lr, [lr+r6] - ; gcrRegs +[lr] - ; byrRegs -[lr] - ldr r12, [r3+0x04] - cmp r0, r12 - bhs SHORT G_M23254_IG11 - adds r3, 8 - ; gcrRegs -[r3] - ; byrRegs +[r3] - lsls r0, r0, 2 - adds r0, r3, r0 - ; byrRegs +[r0] - mov r1, lr - ; gcrRegs +[r1] - movw r12, 0xd1ff - movt r12, 0xd1ff - blx r12 // CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[r1 lr] - ; byrRegs -[r0 r3]
mov r1, r2
- ldr r0, [r5+0x04] - cmp r1, r0
+ cmp r1, r5
bhs SHORT G_M23254_IG11
- add r1, r5, 8 - ; byrRegs +[r1] - adds r0, r1, r6 - ; byrRegs +[r0] - ldr r1, [sp+0x04] // [V04 loc1]
+ lsl r8, r1, 2 + ldr r1, [r6+r8]
; gcrRegs +[r1]
- ; byrRegs -[r1]
+ add r0, r6, r12 + ; byrRegs +[r0]
movw r12, 0xd1ff movt r12, 0xd1ff
- ; GC ptr vars -{V04}
blx r12 // CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[r1 r5]
+ ; gcrRegs -[r1]
; byrRegs -[r0]
- ;; size=88 bbWeight=0.50 PerfScore 16.50
+ mov r1, r2 + cmp r1, r5 + bhs SHORT G_M23254_IG11 + add r0, r6, r8 + ; byrRegs +[r0] + mov r1, r7 + ; gcrRegs +[r1] + movw r12, 0xd1ff + movt r12, 0xd1ff + blx r12 // CORINFO_HELP_ASSIGN_REF + ; gcrRegs -[r1 r7] + ; byrRegs -[r0 r6] + ;; size=56 bbWeight=0.50 PerfScore 10.00
G_M23254_IG09: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref str r2, [r4+0x30] ;; size=2 bbWeight=0.50 PerfScore 0.50 G_M23254_IG10: ; bbWeight=0.50, epilog, nogc, extend
- add sp, 12 - pop {r4,r5,r6,r11,pc} - ;; size=6 bbWeight=0.50 PerfScore 1.00
+ pop {r3,r4,r5,r6,r7,r8,r11,pc} + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M23254_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[r4] movw r3, 0xd1ff @@ -158,7 +136,7 @@ G_M23254_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref bkpt ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 180, prolog size 12, PerfScore 85.50, instruction count 67, allocated bytes for code 180 (MethodHash=dfe8a529) for method System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
+; Total bytes of code 144, prolog size 10, PerfScore 77.00, instruction count 51, allocated bytes for code 144 (MethodHash=dfe8a529) for method System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
; ============================================================ Unwind Info: @@ -170,7 +148,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 90 (0x0005a) Actual length = 180 (0x0000b4)
+ Function Length : 72 (0x00048) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -182,7 +160,7 @@ Unwind Info: Epilog Start Index : 0 (0x00) ---- Unwind codes ---- ---- Epilog start at index 0 ----
- 03 add sp, sp, #12 ; opsize 16 - A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
+ A9 F8 pop {r3,r4,r5,r6,r7,r8,r11,lr} ; opsize 32 + FF end
...

-8 (-19.05%) : 8515.dasm - System.Runtime.CompilerServices.Unsafe:Unboxubyte:byref (FullOpts)

@@ -9,6 +9,7 @@ ; ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -27,14 +28,12 @@ G_M34600_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M34600_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1] ; gcr arg pop 0
- ;; size=20 bbWeight=0.25 PerfScore 1.50
+ ;; size=12 bbWeight=0.25 PerfScore 1.00
G_M34600_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref adds r0, r4, 4 ; byrRegs +[r0] @@ -43,7 +42,7 @@ G_M34600_IG05: ; bbWeight=1, epilog, nogc, extend pop {r4,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 42, prolog size 2, PerfScore 10.50, instruction count 15, allocated bytes for code 42 (MethodHash=929678d7) for method System.Runtime.CompilerServices.Unsafe:Unbox[ubyte](System.Object):byref (FullOpts)
+; Total bytes of code 34, prolog size 2, PerfScore 10.00, instruction count 13, allocated bytes for code 34 (MethodHash=929678d7) for method System.Runtime.CompilerServices.Unsafe:Unbox[ubyte](System.Object):byref (FullOpts)
; ============================================================ Unwind Info: @@ -55,7 +54,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

-8 (-18.18%) : 29646.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unboxint:int (FullOpts)

@@ -9,6 +9,7 @@ ; ; V00 arg0 [V00,T00] ( 5, 4.25) ref -> r4 class-hnd single-def <System.Object> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> r0 "CSE - unknown"
; ; Lcl frame size = 0 @@ -27,15 +28,13 @@ G_M26934_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre G_M26934_IG03: ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref mov r1, r4 ; gcrRegs +[r1]
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3] blx r3 // CORINFO_HELP_UNBOX ; gcrRegs -[r1] ; gcr arg pop 0
- ;; size=22 bbWeight=0.25 PerfScore 1.75
+ ;; size=14 bbWeight=0.25 PerfScore 1.25
G_M26934_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ldr r0, [r4+0x04] ;; size=2 bbWeight=1 PerfScore 1.00 @@ -43,7 +42,7 @@ G_M26934_IG05: ; bbWeight=1, epilog, nogc, extend pop {r4,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 44, prolog size 2, PerfScore 10.75, instruction count 16, allocated bytes for code 44 (MethodHash=04ec96c9) for method Microsoft.FSharp.Core.Operators+Unchecked:Unbox[int](System.Object):int (FullOpts)
+; Total bytes of code 36, prolog size 2, PerfScore 10.25, instruction count 14, allocated bytes for code 36 (MethodHash=04ec96c9) for method Microsoft.FSharp.Core.Operators+Unchecked:Unbox[int](System.Object):int (FullOpts)
; ============================================================ Unwind Info: @@ -55,7 +54,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

+40 (+22.99%) : 33446.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)

@@ -9,17 +9,15 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 4, 7 ) ref -> r4 class-hnd single-def <System.Type>
-; V01 loc0 [V01,T07] ( 4, 2.43) ref -> r6 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter> -; V02 loc1 [V02,T09] ( 3, 1.25) ref -> r0 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]> -; V03 loc2 [V03,T00] ( 5, 16.50) int -> r5
+; V01 loc0 [V01,T06] ( 4, 2.43) ref -> r5 ld-addr-op class-hnd <System.Text.Json.Serialization.JsonConverter> +; V02 loc1 [V02,T04] ( 3, 5 ) ref -> r6 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory[]> +; V03 loc2 [V03,T00] ( 5, 16.50) int -> r7
; V04 loc3 [V04,T01] ( 4, 12.50) ref -> r9 class-hnd <System.Text.Json.Serialization.JsonConverterFactory> ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1 [V06,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V06 tmp1 [V06,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V07 tmp2 [V07,T03] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V08 tmp3 [V08,T08] ( 3, 2.43) byref -> r0 single-def "Inline stloc first use temp" -; V09 cse0 [V09,T06] ( 2, 4.25) byref -> r8 hoist "CSE - aggressive" -; V10 cse1 [V10,T05] ( 3, 5 ) int -> r7 "CSE - aggressive" -; V11 cse2 [V11,T04] ( 7, 5.50) int -> r5 "CSE - aggressive"
+; V08 tmp3 [V08,T07] ( 3, 2.43) byref -> r0 single-def "Inline stloc first use temp" +; V09 cse0 [V09,T05] ( 3, 5 ) int -> r8 "CSE - unknown"
; TEMP_01 ref -> [r11-0x1C] ; ; Lcl frame size = 8 @@ -33,9 +31,9 @@ G_M54919_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[r4] ;; size=14 bbWeight=1 PerfScore 5.00 G_M54919_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff - movt r5, 0xd1ff - ldr r3, [r5]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
; gcrRegs +[r3] cmp r3, 0 bne SHORT G_M54919_IG04 @@ -48,21 +46,24 @@ G_M54919_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b blx r3 // <unknown method> ; gcrRegs +[r0] str r0, [sp+0x04]
+ movw r0, 0xd1ff + ; gcrRegs -[r0] + movt r0, 0xd1ff
ldr r1, [sp+0x04] ; gcrRegs +[r1]
- mov r0, r5 - ; gcrRegs -[r0]
movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF ; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r3, [r5+0x04]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
; gcrRegs +[r3] cmp r3, 0 bne SHORT G_M54919_IG06
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ; gcrRegs -[r3] movw r3, 0xd1ff @@ -71,17 +72,20 @@ G_M54919_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b blx r3 // System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetDefaultFactoryConverters():System.Text.Json.Serialization.JsonConverterFactory[] ; gcrRegs +[r0] str r0, [sp+0x04]
- adds r0, r5, 4
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04] ; gcrRegs +[r1] movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF ; gcrRegs -[r1]
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ ;; size=34 bbWeight=0.50 PerfScore 5.50
G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r5]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] ldrsb r1, [r0] mov r1, r4 @@ -94,36 +98,36 @@ G_M54919_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre ; byrRegs +[r0] cmp r0, 0 beq SHORT G_M54919_IG08
- ;; size=24 bbWeight=1 PerfScore 9.00
+ ;; size=32 bbWeight=1 PerfScore 11.00
G_M54919_IG07: ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz ; gcrRegs -[r4]
- ldr r6, [r0] - ; gcrRegs +[r6] - b SHORT G_M54919_IG11
+ ldr r5, [r0] + ; gcrRegs +[r5] + b SHORT G_M54919_IG10
;; size=4 bbWeight=0.43 PerfScore 0.86 G_M54919_IG08: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r6] +[r4]
+ ; gcrRegs -[r5] +[r4]
; byrRegs -[r0]
- movs r6, 0 - ldr r0, [r5+0x04] - ; gcrRegs +[r0]
movs r5, 0
- ldr r7, [r0+0x04] - cmp r7, 0 - ble SHORT G_M54919_IG11 - ;; size=12 bbWeight=0.50 PerfScore 3.00 -G_M54919_IG09: ; bbWeight=0.25, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0000 {}, byref
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r6, [r0]
; gcrRegs +[r6]
- add r8, r0, 8 - ; byrRegs +[r8] - ;; size=4 bbWeight=0.25 PerfScore 0.25 -G_M54919_IG10: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8}, byref, isz - ; gcrRegs -[r0] - lsls r0, r5, 2 - ldr r9, [r8+r0]
+ movs r7, 0 + ldr r8, [r6+0x04] + cmp r8, 0 + ble SHORT G_M54919_IG10 + ;; size=24 bbWeight=0.50 PerfScore 4.00 +G_M54919_IG09: ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[r5] + add r0, r6, 8 + ; byrRegs +[r0] + lsls r1, r7, 2 + ldr r9, [r0+r1]
; gcrRegs +[r9] mov r0, r9 ; gcrRegs +[r0]
+ ; byrRegs -[r0]
mov r1, r4 ; gcrRegs +[r1] ldr r3, [r9] @@ -132,28 +136,27 @@ G_M54919_IG10: ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0100 {r8}, blx r3 // <unknown method> ; gcrRegs -[r0-r1] cmp r0, 0
- bne SHORT G_M54919_IG13 - adds r5, r5, 1 - cmp r7, r5 - bgt SHORT G_M54919_IG10 - ;; size=30 bbWeight=4 PerfScore 52.00 -G_M54919_IG11: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref - ; gcrRegs -[r4 r9] - ; byrRegs -[r8] - mov r0, r6
+ bne SHORT G_M54919_IG12 + adds r7, r7, 1 + cmp r8, r7 + bgt SHORT G_M54919_IG09 + ;; size=34 bbWeight=4 PerfScore 56.00 +G_M54919_IG10: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref + ; gcrRegs -[r4 r6 r9] + mov r0, r5
; gcrRegs +[r0] ;; size=2 bbWeight=1 PerfScore 1.00
-G_M54919_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M54919_IG11: ; bbWeight=1, epilog, nogc, extend
pop {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc} ;; size=4 bbWeight=1 PerfScore 1.00
-G_M54919_IG13: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs -[r0 r6] +[r9] - mov r6, r9 - ; gcrRegs +[r6] - b SHORT G_M54919_IG11
+G_M54919_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs -[r0 r5] +[r9] + mov r5, r9 + ; gcrRegs +[r5] + b SHORT G_M54919_IG10
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 174, prolog size 12, PerfScore 91.11, instruction count 68, allocated bytes for code 174 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
+; Total bytes of code 214, prolog size 12, PerfScore 100.86, instruction count 76, allocated bytes for code 214 (MethodHash=e30a2978) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
; ============================================================ Unwind Info: @@ -165,7 +168,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 87 (0x00057) Actual length = 174 (0x0000ae)
+ Function Length : 107 (0x0006b) Actual length = 214 (0x0000d6)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+25.40%) : 220625.dasm - System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)

@@ -11,22 +11,21 @@ ; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.Diagnostics.SwitchElement> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
-; V03 tmp2 [V03,T01] ( 4, 4 ) ref -> r5 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection> -; V04 tmp3 [V04,T04] ( 3, 3 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty> -; V05 tmp4 [V05,T02] ( 4, 4 ) ref -> r5 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection> -; V06 tmp5 [V06,T05] ( 3, 3 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty> -; V07 tmp6 [V07,T06] ( 3, 3 ) ref -> r0 single-def "argument with side effect" -; V08 tmp7 [V08,T07] ( 3, 3 ) ref -> r0 single-def "argument with side effect" -; V09 tmp8 [V09,T08] ( 3, 3 ) ref -> r0 single-def "argument with side effect" -; V10 tmp9 [V10,T09] ( 3, 3 ) ref -> r0 single-def "argument with side effect" -; V11 cse0 [V11,T10] ( 3, 2.50) ref -> r0 "CSE - aggressive" -; V12 cse1 [V12,T03] ( 6, 3 ) int -> r4 "CSE - aggressive"
+; V03 tmp2 [V03,T01] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection> +; V04 tmp3 [V04,T03] ( 3, 3 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty> +; V05 tmp4 [V05,T02] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection> +; V06 tmp5 [V06,T04] ( 3, 3 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty> +; V07 tmp6 [V07,T05] ( 3, 3 ) ref -> r0 single-def "argument with side effect" +; V08 tmp7 [V08,T06] ( 3, 3 ) ref -> r0 single-def "argument with side effect" +; V09 tmp8 [V09,T07] ( 3, 3 ) ref -> r0 single-def "argument with side effect" +; V10 tmp9 [V10,T08] ( 3, 3 ) ref -> r0 single-def "argument with side effect" +; V11 cse0 [V11,T09] ( 3, 2.50) ref -> r0 "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M58644_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,r6,r11,lr} - add r11, sp, 16
+ push {r4,r5,r11,lr} + add r11, sp, 8
;; size=8 bbWeight=1 PerfScore 2.00 G_M58644_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[r0] @@ -40,9 +39,9 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b ldr r3, [r3+0x10] blx r3 // <unknown method> ; gcrRegs -[r0]
- movw r4, 0xd1ff - movt r4, 0xd1ff - ldr r0, [r4]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] ldr r0, [r0+0x04] ldr r3, [r0] @@ -50,14 +49,18 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b ldr r3, [r3+0x08] blx r3 // <unknown method> ; gcrRegs -[r0]
- ldr r5, [r4]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r4, [r1] + ; gcrRegs +[r4] + movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r5, [r1]
; gcrRegs +[r5]
- ldr r6, [r4+0x04] - ; gcrRegs +[r6] - ldrsb r1, [r5] - ldr r1, [r6+0x08]
+ ldrsb r1, [r4] + ldr r1, [r5+0x08]
; gcrRegs +[r1]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0] movw r3, 0xd1ff movt r3, 0xd1ff @@ -66,25 +69,29 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b ; gcrRegs -[r0-r1] cmp r0, 0 bne SHORT G_M58644_IG04
- ldr r0, [r5+0x04]
+ ldr r0, [r4+0x04]
; gcrRegs +[r0]
- mov r1, r6
+ mov r1, r5
; gcrRegs +[r1] ldr r3, [r0] ldr r3, [r3+0x30] ldr r3, [r3+0x14] blx r3 // <unknown method>
- ; gcrRegs -[r0-r1 r5-r6] - ;; size=68 bbWeight=0.50 PerfScore 14.50
+ ; gcrRegs -[r0-r1 r4-r5] + ;; size=84 bbWeight=0.50 PerfScore 16.50
G_M58644_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r5, [r4] - ; gcrRegs +[r5] - ldr r4, [r4+0x08]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r4, [r1]
; gcrRegs +[r4]
- ldrsb r1, [r5] - ldr r1, [r4+0x08]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r5, [r1] + ; gcrRegs +[r5] + ldrsb r1, [r4] + ldr r1, [r5+0x08]
; gcrRegs +[r1]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0] movw r3, 0xd1ff movt r3, 0xd1ff @@ -93,21 +100,21 @@ G_M58644_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcrRegs -[r0-r1] cmp r0, 0 bne SHORT G_M58644_IG05
- ldr r0, [r5+0x04]
+ ldr r0, [r4+0x04]
; gcrRegs +[r0]
- mov r1, r4
+ mov r1, r5
; gcrRegs +[r1] ldr r3, [r0] ldr r3, [r3+0x30] ldr r3, [r3+0x14] blx r3 // <unknown method> ; gcrRegs -[r0-r1 r4-r5]
- ;; size=40 bbWeight=0.50 PerfScore 8.50
+ ;; size=56 bbWeight=0.50 PerfScore 10.50
G_M58644_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop {r3,r4,r5,r6,r11,pc}
+ pop {r4,r5,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 126, prolog size 8, PerfScore 29.00, instruction count 52, allocated bytes for code 126 (MethodHash=acec1aeb) for method System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
+; Total bytes of code 158, prolog size 8, PerfScore 33.00, instruction count 60, allocated bytes for code 158 (MethodHash=acec1aeb) for method System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
; ============================================================ Unwind Info: @@ -119,11 +126,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 63 (0x0003f) Actual length = 126 (0x00007e)
+ Function Length : 79 (0x0004f) Actual length = 158 (0x00009e)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
+ A8 30 pop {r4,r5,r11,lr} ; opsize 32
FF end FF end

+32 (+25.40%) : 148658.dasm - System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)

@@ -11,22 +11,21 @@ ; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.Diagnostics.SwitchElement> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
-; V03 tmp2 [V03,T01] ( 4, 4 ) ref -> r5 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection> -; V04 tmp3 [V04,T04] ( 3, 3 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty> -; V05 tmp4 [V05,T02] ( 4, 4 ) ref -> r5 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection> -; V06 tmp5 [V06,T05] ( 3, 3 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty> -; V07 tmp6 [V07,T06] ( 3, 3 ) ref -> r0 single-def "argument with side effect" -; V08 tmp7 [V08,T07] ( 3, 3 ) ref -> r0 single-def "argument with side effect" -; V09 tmp8 [V09,T08] ( 3, 3 ) ref -> r0 single-def "argument with side effect" -; V10 tmp9 [V10,T09] ( 3, 3 ) ref -> r0 single-def "argument with side effect" -; V11 cse0 [V11,T10] ( 3, 2.50) ref -> r0 "CSE - aggressive" -; V12 cse1 [V12,T03] ( 6, 3 ) int -> r4 "CSE - aggressive"
+; V03 tmp2 [V03,T01] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection> +; V04 tmp3 [V04,T03] ( 3, 3 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty> +; V05 tmp4 [V05,T02] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection> +; V06 tmp5 [V06,T04] ( 3, 3 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <System.Configuration.ConfigurationProperty> +; V07 tmp6 [V07,T05] ( 3, 3 ) ref -> r0 single-def "argument with side effect" +; V08 tmp7 [V08,T06] ( 3, 3 ) ref -> r0 single-def "argument with side effect" +; V09 tmp8 [V09,T07] ( 3, 3 ) ref -> r0 single-def "argument with side effect" +; V10 tmp9 [V10,T08] ( 3, 3 ) ref -> r0 single-def "argument with side effect" +; V11 cse0 [V11,T09] ( 3, 2.50) ref -> r0 "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M58644_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,r6,r11,lr} - add r11, sp, 16
+ push {r4,r5,r11,lr} + add r11, sp, 8
;; size=8 bbWeight=1 PerfScore 2.00 G_M58644_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[r0] @@ -40,9 +39,9 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b ldr r3, [r3+0x10] blx r3 // <unknown method> ; gcrRegs -[r0]
- movw r4, 0xd1ff - movt r4, 0xd1ff - ldr r0, [r4]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] ldr r0, [r0+0x04] ldr r3, [r0] @@ -50,14 +49,18 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b ldr r3, [r3+0x08] blx r3 // <unknown method> ; gcrRegs -[r0]
- ldr r5, [r4]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r4, [r1] + ; gcrRegs +[r4] + movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r5, [r1]
; gcrRegs +[r5]
- ldr r6, [r4+0x04] - ; gcrRegs +[r6] - ldrsb r1, [r5] - ldr r1, [r6+0x08]
+ ldrsb r1, [r4] + ldr r1, [r5+0x08]
; gcrRegs +[r1]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0] movw r3, 0xd1ff movt r3, 0xd1ff @@ -66,25 +69,29 @@ G_M58644_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b ; gcrRegs -[r0-r1] cmp r0, 0 bne SHORT G_M58644_IG04
- ldr r0, [r5+0x04]
+ ldr r0, [r4+0x04]
; gcrRegs +[r0]
- mov r1, r6
+ mov r1, r5
; gcrRegs +[r1] ldr r3, [r0] ldr r3, [r3+0x30] ldr r3, [r3+0x14] blx r3 // <unknown method>
- ; gcrRegs -[r0-r1 r5-r6] - ;; size=68 bbWeight=0.50 PerfScore 14.50
+ ; gcrRegs -[r0-r1 r4-r5] + ;; size=84 bbWeight=0.50 PerfScore 16.50
G_M58644_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr r5, [r4] - ; gcrRegs +[r5] - ldr r4, [r4+0x08]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r4, [r1]
; gcrRegs +[r4]
- ldrsb r1, [r5] - ldr r1, [r4+0x08]
+ movw r1, 0xd1ff + movt r1, 0xd1ff + ldr r5, [r1] + ; gcrRegs +[r5] + ldrsb r1, [r4] + ldr r1, [r5+0x08]
; gcrRegs +[r1]
- mov r0, r5
+ mov r0, r4
; gcrRegs +[r0] movw r3, 0xd1ff movt r3, 0xd1ff @@ -93,21 +100,21 @@ G_M58644_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcrRegs -[r0-r1] cmp r0, 0 bne SHORT G_M58644_IG05
- ldr r0, [r5+0x04]
+ ldr r0, [r4+0x04]
; gcrRegs +[r0]
- mov r1, r4
+ mov r1, r5
; gcrRegs +[r1] ldr r3, [r0] ldr r3, [r3+0x30] ldr r3, [r3+0x14] blx r3 // <unknown method> ; gcrRegs -[r0-r1 r4-r5]
- ;; size=40 bbWeight=0.50 PerfScore 8.50
+ ;; size=56 bbWeight=0.50 PerfScore 10.50
G_M58644_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop {r3,r4,r5,r6,r11,pc}
+ pop {r4,r5,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 126, prolog size 8, PerfScore 29.00, instruction count 52, allocated bytes for code 126 (MethodHash=acec1aeb) for method System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
+; Total bytes of code 158, prolog size 8, PerfScore 33.00, instruction count 60, allocated bytes for code 158 (MethodHash=acec1aeb) for method System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
; ============================================================ Unwind Info: @@ -119,11 +126,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 63 (0x0003f) Actual length = 126 (0x00007e)
+ Function Length : 79 (0x0004f) Actual length = 158 (0x00009e)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
+ A8 30 pop {r4,r5,r11,lr} ; opsize 32
FF end FF end

libraries_tests.run.linux.arm.Release.mch

-14 (-30.43%) : 41939.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)

@@ -9,10 +9,11 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.17) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]> -; V01 arg1 [V01,T01] ( 4, 3.17) int -> r1 single-def
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]> +; V01 arg1 [V01,T00] ( 4, 3.17) int -> r1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+; V04 cse0 [V04,T02] ( 3, 2.17) ref -> r0 "CSE - unknown"
; ; Lcl frame size = 4 @@ -21,26 +22,24 @@ G_M55991_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref ;; size=2 bbWeight=1 PerfScore 1.00 G_M55991_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[r0]
- ldr lr, [r0+0x04] - ; gcrRegs +[lr] - ldr lr, [lr+0x04] - ldr lr, [lr+0x04] - ; gcrRegs -[lr] - cmp lr, r1
+ ldr r0, [r0+0x04] + ldr r3, [r0+0x04] + ; gcrRegs +[r3] + ldr r3, [r3+0x04] + ; gcrRegs -[r3] + cmp r3, r1
blt SHORT G_M55991_IG04
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 5.00
G_M55991_IG03: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc ; gcrRegs -[r0] pop {r3,pc} ;; size=2 bbWeight=0.83 PerfScore 0.83 G_M55991_IG04: ; bbWeight=0.17, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs +[r0]
- ldr r0, [r0+0x04] - movw lr, 0xd1ff - movt lr, 0xd1ff - ldr r3, [lr] - ldr lr, [r0] - ;; size=18 bbWeight=0.17 PerfScore 0.86
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3] + ;; size=10 bbWeight=0.17 PerfScore 0.51
G_M55991_IG05: ; bbWeight=0.17, epilog, nogc, extend add sp, 4 pop lr @@ -48,7 +47,7 @@ G_M55991_IG05: ; bbWeight=0.17, epilog, nogc, extend ; gcr arg pop 0 ;; size=8 bbWeight=0.17 PerfScore 0.51
-; Total bytes of code 46, prolog size 2, PerfScore 8.20, instruction count 15, allocated bytes for code 46 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
+; Total bytes of code 32, prolog size 2, PerfScore 7.86, instruction count 13, allocated bytes for code 32 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
; ============================================================ Unwind Info: @@ -60,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 46 (0x00002e)
+ Function Length : 16 (0x00010) Actual length = 32 (0x000020)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-14 (-30.43%) : 80295.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)

@@ -9,10 +9,11 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.31) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]> -; V01 arg1 [V01,T01] ( 4, 3.31) int -> r1 single-def
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]> +; V01 arg1 [V01,T00] ( 4, 3.31) int -> r1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+; V04 cse0 [V04,T02] ( 3, 2.31) ref -> r0 "CSE - unknown"
; ; Lcl frame size = 4 @@ -21,26 +22,24 @@ G_M55991_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref ;; size=2 bbWeight=1 PerfScore 1.00 G_M55991_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[r0]
- ldr lr, [r0+0x04] - ; gcrRegs +[lr] - ldr lr, [lr+0x04] - ldr lr, [lr+0x04] - ; gcrRegs -[lr] - cmp lr, r1
+ ldr r0, [r0+0x04] + ldr r3, [r0+0x04] + ; gcrRegs +[r3] + ldr r3, [r3+0x04] + ; gcrRegs -[r3] + cmp r3, r1
blt SHORT G_M55991_IG04
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 5.00
G_M55991_IG03: ; bbWeight=0.69, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc ; gcrRegs -[r0] pop {r3,pc} ;; size=2 bbWeight=0.69 PerfScore 0.69 G_M55991_IG04: ; bbWeight=0.31, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs +[r0]
- ldr r0, [r0+0x04] - movw lr, 0xd1ff - movt lr, 0xd1ff - ldr r3, [lr] - ldr lr, [r0] - ;; size=18 bbWeight=0.31 PerfScore 1.56
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3] + ;; size=10 bbWeight=0.31 PerfScore 0.93
G_M55991_IG05: ; bbWeight=0.31, epilog, nogc, extend add sp, 4 pop lr @@ -48,7 +47,7 @@ G_M55991_IG05: ; bbWeight=0.31, epilog, nogc, extend ; gcr arg pop 0 ;; size=8 bbWeight=0.31 PerfScore 0.93
-; Total bytes of code 46, prolog size 2, PerfScore 9.18, instruction count 15, allocated bytes for code 46 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
+; Total bytes of code 32, prolog size 2, PerfScore 8.56, instruction count 13, allocated bytes for code 32 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
; ============================================================ Unwind Info: @@ -60,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 46 (0x00002e)
+ Function Length : 16 (0x00010) Actual length = 32 (0x000020)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-14 (-30.43%) : 176335.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)

@@ -9,10 +9,11 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.05) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]> -; V01 arg1 [V01,T01] ( 4, 3.05) int -> r1 single-def
+; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]> +; V01 arg1 [V01,T00] ( 4, 3.05) int -> r1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+; V04 cse0 [V04,T02] ( 3, 2.05) ref -> r0 "CSE - unknown"
; ; Lcl frame size = 4 @@ -21,26 +22,24 @@ G_M55991_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref ;; size=2 bbWeight=1 PerfScore 1.00 G_M55991_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[r0]
- ldr lr, [r0+0x04] - ; gcrRegs +[lr] - ldr lr, [lr+0x04] - ldr lr, [lr+0x04] - ; gcrRegs -[lr] - cmp lr, r1
+ ldr r0, [r0+0x04] + ldr r3, [r0+0x04] + ; gcrRegs +[r3] + ldr r3, [r3+0x04] + ; gcrRegs -[r3] + cmp r3, r1
blt SHORT G_M55991_IG04
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 5.00
G_M55991_IG03: ; bbWeight=0.95, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc ; gcrRegs -[r0] pop {r3,pc} ;; size=2 bbWeight=0.95 PerfScore 0.95 G_M55991_IG04: ; bbWeight=0.05, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs +[r0]
- ldr r0, [r0+0x04] - movw lr, 0xd1ff - movt lr, 0xd1ff - ldr r3, [lr] - ldr lr, [r0] - ;; size=18 bbWeight=0.05 PerfScore 0.25
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3] + ;; size=10 bbWeight=0.05 PerfScore 0.15
G_M55991_IG05: ; bbWeight=0.05, epilog, nogc, extend add sp, 4 pop lr @@ -48,7 +47,7 @@ G_M55991_IG05: ; bbWeight=0.05, epilog, nogc, extend ; gcr arg pop 0 ;; size=8 bbWeight=0.05 PerfScore 0.15
-; Total bytes of code 46, prolog size 2, PerfScore 7.35, instruction count 15, allocated bytes for code 46 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
+; Total bytes of code 32, prolog size 2, PerfScore 7.25, instruction count 13, allocated bytes for code 32 (MethodHash=a2c22548) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
; ============================================================ Unwind Info: @@ -60,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 23 (0x00017) Actual length = 46 (0x00002e)
+ Function Length : 16 (0x00010) Actual length = 32 (0x000020)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+24.56%) : 308861.dasm - System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double (Instrumented Tier1)

@@ -11,26 +11,29 @@ ; V00 arg0 [V00,T00] ( 9, 8 ) double -> f16:f17 ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) double -> zero-ref "Inline stloc first use temp"
-; V03 cse0 [V03,T01] ( 4, 3.50) double -> f18:f19 "CSE - aggressive"
; ; Lcl frame size = 0 G_M55413_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push {r4,lr}
- vpush {d8-d9}
+ vpush {d8-d8}
vmov d8, d0 ;; size=10 bbWeight=1 PerfScore 3.00 G_M55413_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movs r2, 0 movw r3, 0xd1ff movt r3, 0xd1ff
- vmov.i2d d9, r2, r3 - vdiv d0, d8, d9
+ vmov.i2d d0, r2, r3 + vdiv d0, d8, d0
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // <unknown method> ; gcr arg pop 0
- vmul d4, d0, d9
+ movs r0, 0 + movw r3, 0xd1ff + movt r3, 0xd1ff + vmov.i2d d4, r0, r3 + vmul d4, d0, d4
vsub d8, d8, d4 movs r0, 0 movs r3, 0 @@ -38,7 +41,7 @@ G_M55413_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, vcmp d8, d4 vmrs APSR, FPSCR bhs SHORT G_M55413_IG04
- ;; size=54 bbWeight=1 PerfScore 16.00
+ ;; size=68 bbWeight=1 PerfScore 20.00
G_M55413_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movw r0, 0xd1ff movt r0, 0xd1ff @@ -46,8 +49,12 @@ G_M55413_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr movt r3, 0xd1ff blx r3 // CORINFO_HELP_COUNTPROFILE32 ; gcr arg pop 0
- vadd d8, d8, d9 - ;; size=22 bbWeight=0.50 PerfScore 3.00
+ movs r0, 0 + movw r3, 0xd1ff + movt r3, 0xd1ff + vmov.i2d d4, r0, r3 + vadd d8, d8, d4 + ;; size=36 bbWeight=0.50 PerfScore 5.00
G_M55413_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movw r0, 0xd1ff movt r0, 0xd1ff @@ -58,11 +65,11 @@ G_M55413_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref vmov d0, d8 ;; size=22 bbWeight=1 PerfScore 6.00 G_M55413_IG05: ; bbWeight=1, epilog, nogc, extend
- vpop {d8-d9}
+ vpop {d8-d8}
pop {r4,pc} ;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 114, prolog size 6, PerfScore 30.00, instruction count 33, allocated bytes for code 114 (MethodHash=c67d278a) for method System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double (Instrumented Tier1)
+; Total bytes of code 142, prolog size 6, PerfScore 36.00, instruction count 41, allocated bytes for code 142 (MethodHash=c67d278a) for method System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double (Instrumented Tier1)
; ============================================================ Unwind Info: @@ -74,11 +81,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 57 (0x00039) Actual length = 114 (0x000072)
+ Function Length : 71 (0x00047) Actual length = 142 (0x00008e)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- E1 vpop {d8,d9} ; opsize 32
+ E0 vpop {d8} ; opsize 32
D4 pop {r4,lr} ; opsize 16 FF end FF end

+32 (+25.40%) : 457993.dasm - System.Xml.Tests.TCXMLIntegrityBase:CloseTest():int:this (Tier1)

@@ -15,12 +15,11 @@ ;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.Tests.CDataReader> ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.Tests.CDataReader> ;* V07 tmp6 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.Tests.CDataReader>
-; V08 cse0 [V08,T04] ( 6, 4 ) int -> r5 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M37247_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r11,lr}
+ push {r3,r4,r11,lr}
add r11, sp, 8 mov r4, r0 ; gcrRegs +[r4] @@ -29,9 +28,9 @@ G_M37247_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre ldr r0, [r4+0x18] ; gcrRegs +[r0] ldr r3, [r0]
- movw r5, 0xd1ff - movt r5, 0xd1ff - cmp r3, r5
+ movw r2, 0xd1ff + movt r2, 0xd1ff + cmp r3, r2
bne SHORT G_M37247_IG07 movw r3, 0xd1ff movt r3, 0xd1ff @@ -41,9 +40,11 @@ G_M37247_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre ldr r0, [r4+0x18] ; gcrRegs +[r0] ldr r3, [r0]
- cmp r3, r5
+ movw r2, 0xd1ff + movt r2, 0xd1ff + cmp r3, r2
bne SHORT G_M37247_IG08
- ;; size=36 bbWeight=1 PerfScore 14.00
+ ;; size=44 bbWeight=1 PerfScore 16.00
G_M37247_IG03: ; bbWeight=1, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz movw r3, 0xd1ff movt r3, 0xd1ff @@ -53,9 +54,11 @@ G_M37247_IG03: ; bbWeight=1, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, b ldr r0, [r4+0x18] ; gcrRegs +[r0] ldr r3, [r0]
- cmp r3, r5
+ movw r2, 0xd1ff + movt r2, 0xd1ff + cmp r3, r2
bne SHORT G_M37247_IG09
- ;; size=20 bbWeight=1 PerfScore 8.00
+ ;; size=28 bbWeight=1 PerfScore 10.00
G_M37247_IG04: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref ; gcrRegs -[r4] movw r3, 0xd1ff @@ -68,7 +71,7 @@ G_M37247_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movs r0, 1 ;; size=2 bbWeight=1 PerfScore 1.00 G_M37247_IG06: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r11,pc}
+ pop {r3,r4,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00 G_M37247_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs +[r0 r4] @@ -80,9 +83,11 @@ G_M37247_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0011 {r0 r4}, ldr r0, [r4+0x18] ; gcrRegs +[r0] ldr r3, [r0]
- cmp r3, r5
+ movw r2, 0xd1ff + movt r2, 0xd1ff + cmp r3, r2
beq SHORT G_M37247_IG03
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M37247_IG08: ; bbWeight=0, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz ldr r3, [r0] ldr r3, [r3+0x38] @@ -92,9 +97,11 @@ G_M37247_IG08: ; bbWeight=0, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, b ldr r0, [r4+0x18] ; gcrRegs +[r0] ldr r3, [r0]
- cmp r3, r5
+ movw r2, 0xd1ff + movt r2, 0xd1ff + cmp r3, r2
beq SHORT G_M37247_IG04
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M37247_IG09: ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[r4] ldr r3, [r0] @@ -105,7 +112,7 @@ G_M37247_IG09: ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre b SHORT G_M37247_IG05 ;; size=10 bbWeight=0 PerfScore 0.00
-; Total bytes of code 126, prolog size 8, PerfScore 29.00, instruction count 52, allocated bytes for code 126 (MethodHash=025a6e80) for method System.Xml.Tests.TCXMLIntegrityBase:CloseTest():int:this (Tier1)
+; Total bytes of code 158, prolog size 8, PerfScore 33.00, instruction count 60, allocated bytes for code 158 (MethodHash=025a6e80) for method System.Xml.Tests.TCXMLIntegrityBase:CloseTest():int:this (Tier1)
; ============================================================ Unwind Info: @@ -117,7 +124,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 63 (0x0003f) Actual length = 126 (0x00007e)
+ Function Length : 79 (0x0004f) Actual length = 158 (0x00009e)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -125,7 +132,7 @@ Unwind Info: Epilog Start Index : 0 (0x00) ---- Unwind codes ---- ---- Epilog start at index 0 ----
- A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ A8 18 pop {r3,r4,r11,lr} ; opsize 32
FF end FF end

+34 (+25.76%) : 290087.dasm - System.Linq.Expressions.ExpressionVisitor:VisitLoop(System.Linq.Expressions.LoopExpression):System.Linq.Expressions.Expression:this (Tier1)

@@ -10,22 +10,21 @@ ; V00 this [V00,T01] ( 7, 3.50) ref -> r5 this class-hnd single-def <System.Linq.Expressions.ExpressionVisitor> ; V01 arg1 [V01,T00] ( 8, 6 ) ref -> r4 class-hnd single-def <System.Linq.Expressions.LoopExpression> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T05] ( 3, 4 ) ref -> r6 class-hnd exact single-def "spilling ret_expr" <System.Linq.Expressions.LabelTarget> -; V04 tmp2 [V04,T06] ( 3, 4 ) ref -> r6 class-hnd exact "impAppendStmt" <System.Linq.Expressions.LabelTarget> -; V05 tmp3 [V05,T04] ( 4, 4 ) ref -> r9 class-hnd exact single-def "spilling ret_expr" <System.Linq.Expressions.LabelTarget> -; V06 tmp4 [V06,T07] ( 3, 4 ) ref -> r9 class-hnd exact "impAppendStmt" <System.Linq.Expressions.LabelTarget> -; V07 tmp5 [V07,T08] ( 4, 3 ) ref -> r1 class-hnd single-def "spilling ret_expr" <System.Linq.Expressions.Expression>
+; V03 tmp1 [V03,T04] ( 3, 4 ) ref -> r6 class-hnd exact single-def "spilling ret_expr" <System.Linq.Expressions.LabelTarget> +; V04 tmp2 [V04,T05] ( 3, 4 ) ref -> r6 class-hnd exact "impAppendStmt" <System.Linq.Expressions.LabelTarget> +; V05 tmp3 [V05,T03] ( 4, 4 ) ref -> r8 class-hnd exact single-def "spilling ret_expr" <System.Linq.Expressions.LabelTarget> +; V06 tmp4 [V06,T06] ( 3, 4 ) ref -> r8 class-hnd exact "impAppendStmt" <System.Linq.Expressions.LabelTarget> +; V07 tmp5 [V07,T07] ( 4, 3 ) ref -> r1 class-hnd single-def "spilling ret_expr" <System.Linq.Expressions.Expression>
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Expressions.Compiler.VariableBinder> ;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Expressions.Compiler.VariableBinder>
-; V10 tmp8 [V10,T09] ( 3, 1.50) ref -> r3 "guarded devirt return temp"
+; V10 tmp8 [V10,T08] ( 3, 1.50) ref -> r3 "guarded devirt return temp"
;* V11 tmp9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Expressions.Compiler.VariableBinder>
-; V12 cse0 [V12,T02] ( 9, 4 ) int -> r7 "CSE - aggressive" -; V13 cse1 [V13,T03] ( 6, 4 ) int -> r8 "CSE - aggressive"
+; V12 cse0 [V12,T02] ( 9, 4 ) int -> r7 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M30520_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r7,r8,r9,r11,lr}
+ push {r3,r4,r5,r6,r7,r8,r11,lr}
add r11, sp, 24 mov r5, r0 ; gcrRegs +[r5] @@ -36,22 +35,26 @@ G_M30520_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b ldr r6, [r4+0x08] ; gcrRegs +[r6] ldr r7, [r5]
- movw r8, 0xd1ff - movt r8, 0xd1ff - cmp r7, r8
+ movw r0, 0xd1ff + movt r0, 0xd1ff + cmp r7, r0
bne SHORT G_M30520_IG07
- ldr r9, [r4+0x0C] - ; gcrRegs +[r9] - cmp r7, r8
+ ldr r8, [r4+0x0C] + ; gcrRegs +[r8] + movw r0, 0xd1ff + movt r0, 0xd1ff + cmp r7, r0
bne SHORT G_M30520_IG08
- ;; size=24 bbWeight=1 PerfScore 9.00 -G_M30520_IG03: ; bbWeight=1, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=1 PerfScore 11.00 +G_M30520_IG03: ; bbWeight=1, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, byref, isz
ldr r1, [r4+0x04] ; gcrRegs +[r1]
- cmp r7, r8
+ movw r0, 0xd1ff + movt r0, 0xd1ff + cmp r7, r0
bne SHORT G_M30520_IG09
- ;; size=6 bbWeight=1 PerfScore 3.00 -G_M30520_IG04: ; bbWeight=0.50, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefRegs=0000 {}, byref
+ ;; size=14 bbWeight=1 PerfScore 5.00 +G_M30520_IG04: ; bbWeight=0.50, gcrefRegs=0172 {r1 r4 r5 r6 r8}, byrefRegs=0000 {}, byref
mov r0, r5 ; gcrRegs +[r0] movw r3, 0xd1ff @@ -62,24 +65,25 @@ G_M30520_IG04: ; bbWeight=0.50, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefReg mov r3, r0 ; gcrRegs +[r3] ;; size=16 bbWeight=0.50 PerfScore 3.00
-G_M30520_IG05: ; bbWeight=1, gcrefRegs=0258 {r3 r4 r6 r9}, byrefRegs=0000 {}, byref
+G_M30520_IG05: ; bbWeight=1, gcrefRegs=0158 {r3 r4 r6 r8}, byrefRegs=0000 {}, byref
; gcrRegs -[r0] mov r0, r4 ; gcrRegs +[r0] mov r1, r6 ; gcrRegs +[r1]
- mov r2, r9
+ mov r2, r8
; gcrRegs +[r2] movw lr, 0xd1ff movt lr, 0xd1ff ldr r12, [lr] ;; size=18 bbWeight=1 PerfScore 6.00 G_M30520_IG06: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,r7,r8,r9,r11,lr}
+ add sp, 4 + pop {r4,r5,r6,r7,r8,r11,lr}
bx r12 // System.Linq.Expressions.LoopExpression:Update(System.Linq.Expressions.LabelTarget,System.Linq.Expressions.LabelTarget,System.Linq.Expressions.Expression):System.Linq.Expressions.LoopExpression:this
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=8 bbWeight=1 PerfScore 3.00
G_M30520_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[r0-r3 r9] +[r5]
+ ; gcrRegs -[r0-r3 r8] +[r5]
mov r0, r5 ; gcrRegs +[r0] mov r1, r6 @@ -90,30 +94,34 @@ G_M30520_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0070 {r4 r5 r6 ; gcrRegs -[r1 r6] mov r6, r0 ; gcrRegs +[r6]
- ldr r9, [r4+0x0C] - ; gcrRegs +[r9] - cmp r7, r8 - beq SHORT G_M30520_IG03 - ;; size=20 bbWeight=0 PerfScore 0.00 -G_M30520_IG08: ; bbWeight=0, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+ ldr r8, [r4+0x0C] + ; gcrRegs +[r8] + movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff + cmp r7, r0 + beq SHORT G_M30520_IG03 + ;; size=28 bbWeight=0 PerfScore 0.00 +G_M30520_IG08: ; bbWeight=0, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, byref, isz
mov r0, r5 ; gcrRegs +[r0]
- mov r1, r9
+ mov r1, r8
; gcrRegs +[r1] ldr r3, [r7+0x30] ldr r3, [r3+0x18] blx r3 // System.Linq.Expressions.ExpressionVisitor:VisitLabelTarget(System.Linq.Expressions.LabelTarget):System.Linq.Expressions.LabelTarget:this
- ; gcrRegs -[r1 r9] - mov r9, r0 - ; gcrRegs +[r9]
+ ; gcrRegs -[r1 r8] + mov r8, r0 + ; gcrRegs +[r8]
ldr r1, [r4+0x04] ; gcrRegs +[r1]
- cmp r7, r8 - beq SHORT G_M30520_IG04 - ;; size=18 bbWeight=0 PerfScore 0.00 -G_M30520_IG09: ; bbWeight=0, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff + cmp r7, r0 + beq SHORT G_M30520_IG04 + ;; size=26 bbWeight=0 PerfScore 0.00 +G_M30520_IG09: ; bbWeight=0, gcrefRegs=0172 {r1 r4 r5 r6 r8}, byrefRegs=0000 {}, byref, isz
mov r0, r5 ; gcrRegs +[r0] ldr r3, [r7+0x2C] @@ -125,27 +133,30 @@ G_M30520_IG09: ; bbWeight=0, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefRegs=0 b SHORT G_M30520_IG05 ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 132, prolog size 8, PerfScore 27.00, instruction count 54, allocated bytes for code 132 (MethodHash=a38d88c7) for method System.Linq.Expressions.ExpressionVisitor:VisitLoop(System.Linq.Expressions.LoopExpression):System.Linq.Expressions.Expression:this (Tier1)
+; Total bytes of code 166, prolog size 8, PerfScore 32.00, instruction count 63, allocated bytes for code 166 (MethodHash=a38d88c7) for method System.Linq.Expressions.ExpressionVisitor:VisitLoop(System.Linq.Expressions.LoopExpression):System.Linq.Expressions.Expression:this (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 1 F bit : 0 E bit : 0 X bit : 0 Vers : 0
- Function Length : 66 (0x00042) Actual length = 132 (0x000084)
+ Function Length : 83 (0x00053) Actual length = 166 (0x0000a6)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Condition : 14 (0xe) (always)
- Epilog Start Index : 0 (0x00)
+ Epilog Start Index : 3 (0x03)
---- Unwind codes ----
- ---- Epilog start at index 0 ---- - AB F0 pop {r4,r5,r6,r7,r8,r9,r11,lr} ; opsize 32
+ A9 F8 pop {r3,r4,r5,r6,r7,r8,r11,lr} ; opsize 32 + FF end + ---- Epilog start at index 3 ---- + 01 add sp, sp, #4 ; opsize 16 + A9 F0 pop {r4,r5,r6,r7,r8,r11,lr} ; opsize 32
FF end FF end

librariestestsnotieredcompilation.run.linux.arm.Release.mch

-8 (-26.67%) : 36266.dasm - DryIoc.Container:SetInitialFactoryID():this (FullOpts)

@@ -11,6 +11,7 @@ ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <DryIoc.Container> ;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V03 cse0 [V03,T00] ( 3, 2.50) int -> r3 "CSE - unknown"
; ; Lcl frame size = 4 @@ -20,21 +21,19 @@ G_M44763_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M44763_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movw r3, 0xd1ff movt r3, 0xd1ff
- ldr r3, [r3] - cmp r3, 142
+ ldr r2, [r3] + cmp r2, 142
bge SHORT G_M44763_IG04 ;; size=14 bbWeight=1 PerfScore 5.00 G_M44763_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r3, 143 - movw r2, 0xd1ff - movt r2, 0xd1ff - str r3, [r2] - ;; size=12 bbWeight=0.50 PerfScore 2.00
+ movs r2, 143 + str r2, [r3] + ;; size=4 bbWeight=0.50 PerfScore 1.00
G_M44763_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc pop {r3,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 30, prolog size 2, PerfScore 9.00, instruction count 11, allocated bytes for code 30 (MethodHash=1f755124) for method DryIoc.Container:SetInitialFactoryID():this (FullOpts)
+; Total bytes of code 22, prolog size 2, PerfScore 8.00, instruction count 9, allocated bytes for code 22 (MethodHash=1f755124) for method DryIoc.Container:SetInitialFactoryID():this (FullOpts)
; ============================================================ Unwind Info: @@ -46,7 +45,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
+ Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

-8 (-26.67%) : 103086.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass:Dispose():this (FullOpts)

@@ -9,6 +9,7 @@ ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T00] ( 3, 2.50) int -> r3 "CSE - unknown"
; ; Lcl frame size = 4 @@ -18,21 +19,19 @@ G_M42863_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M42863_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movw r3, 0xd1ff movt r3, 0xd1ff
- ldr r3, [r3] - cmp r3, 2
+ ldr r2, [r3] + cmp r2, 2
bne SHORT G_M42863_IG04 ;; size=14 bbWeight=1 PerfScore 5.00 G_M42863_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r3, 1 - movw r2, 0xd1ff - movt r2, 0xd1ff - str r3, [r2] - ;; size=12 bbWeight=0.50 PerfScore 2.00
+ movs r2, 1 + str r2, [r3] + ;; size=4 bbWeight=0.50 PerfScore 1.00
G_M42863_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc pop {r3,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 30, prolog size 2, PerfScore 9.00, instruction count 11, allocated bytes for code 30 (MethodHash=856f5890) for method ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass:Dispose():this (FullOpts)
+; Total bytes of code 22, prolog size 2, PerfScore 8.00, instruction count 9, allocated bytes for code 22 (MethodHash=856f5890) for method ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass:Dispose():this (FullOpts)
; ============================================================ Unwind Info: @@ -44,7 +43,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
+ Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

-8 (-26.67%) : 112244.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass:Dispose():this (FullOpts)

@@ -9,6 +9,7 @@ ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T00] ( 3, 2.50) int -> r3 "CSE - unknown"
; ; Lcl frame size = 4 @@ -18,21 +19,19 @@ G_M29935_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M29935_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movw r3, 0xd1ff movt r3, 0xd1ff
- ldr r3, [r3] - cmp r3, 2
+ ldr r2, [r3] + cmp r2, 2
bne SHORT G_M29935_IG04 ;; size=14 bbWeight=1 PerfScore 5.00 G_M29935_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r3, 1 - movw r2, 0xd1ff - movt r2, 0xd1ff - str r3, [r2] - ;; size=12 bbWeight=0.50 PerfScore 2.00
+ movs r2, 1 + str r2, [r3] + ;; size=4 bbWeight=0.50 PerfScore 1.00
G_M29935_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc pop {r3,pc} ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 30, prolog size 2, PerfScore 9.00, instruction count 11, allocated bytes for code 30 (MethodHash=50c18b10) for method ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass:Dispose():this (FullOpts)
+; Total bytes of code 22, prolog size 2, PerfScore 8.00, instruction count 9, allocated bytes for code 22 (MethodHash=50c18b10) for method ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass:Dispose():this (FullOpts)
; ============================================================ Unwind Info: @@ -44,7 +43,7 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
+ Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----

+16 (+30.77%) : 163781.dasm - System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b_170():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)

@@ -12,25 +12,24 @@ ; V01 RetBuf [V01,T00] ( 4, 4 ) byref -> r4 single-def ;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[int,System.String]> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 2, 4 ) int -> r6 "impAppendStmt" -; V05 tmp2 [V05,T02] ( 2, 4 ) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String> -; V06 tmp3 [V06,T05] ( 2, 2 ) ref -> r1 single-def "field V02.value (fldOffset=0x0)" P-INDEP -; V07 tmp4 [V07,T06] ( 2, 2 ) int -> r6 single-def "field V02.key (fldOffset=0x4)" P-INDEP -; V08 cse0 [V08,T04] ( 3, 3 ) int -> r0 "CSE - aggressive" -; V09 cse1 [V09,T01] ( 4, 4 ) int -> r5 "CSE - aggressive"
+; V04 tmp1 [V04,T02] ( 2, 4 ) int -> r5 "impAppendStmt" +; V05 tmp2 [V05,T01] ( 2, 4 ) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String> +; V06 tmp3 [V06,T04] ( 2, 2 ) ref -> r1 single-def "field V02.value (fldOffset=0x0)" P-INDEP +; V07 tmp4 [V07,T05] ( 2, 2 ) int -> r5 single-def "field V02.key (fldOffset=0x4)" P-INDEP +; V08 cse0 [V08,T03] ( 3, 3 ) int -> r0 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M30779_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,lr}
+ push {r3,r4,r5,lr}
mov r4, r1 ; byrRegs +[r4] ;; size=4 bbWeight=1 PerfScore 2.00 G_M30779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
- movw r5, 0xd1ff - movt r5, 0xd1ff - ldr r0, [r5] - mov r6, r0
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0] + mov r5, r0
movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3] @@ -39,10 +38,14 @@ G_M30779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre ; gcr arg pop 0 mov r1, r0 ; gcrRegs +[r1]
- ldr r0, [r5]
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff + ldr r0, [r0]
subs r0, r0, 1
- str r0, [r5]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + str r0, [r3]
mov r0, r4 ; byrRegs +[r0] movw r12, 0xd1ff @@ -50,13 +53,13 @@ G_M30779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre blx r12 // CORINFO_HELP_CHECKED_ASSIGN_REF ; gcrRegs -[r1] ; byrRegs -[r0]
- str r6, [r4+0x04] - ;; size=46 bbWeight=1 PerfScore 17.00
+ str r5, [r4+0x04] + ;; size=62 bbWeight=1 PerfScore 21.00
G_M30779_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,pc}
+ pop {r3,r4,r5,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 52, prolog size 2, PerfScore 20.00, instruction count 20, allocated bytes for code 52 (MethodHash=0b4787c4) for method System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b__17_0():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
+; Total bytes of code 68, prolog size 2, PerfScore 24.00, instruction count 24, allocated bytes for code 68 (MethodHash=0b4787c4) for method System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b__17_0():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
; ============================================================ Unwind Info: @@ -68,12 +71,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
+ Function Length : 34 (0x00022) Actual length = 68 (0x000044)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- D6 pop {r4,r5,r6,lr} ; opsize 16 - FF end
+ ED 38 pop {r3,r4,r5,lr} ; opsize 16
FF end FF end

+24 (+33.33%) : 113366.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)

@@ -10,31 +10,35 @@ ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Object>
-; V02 cse0 [V02,T00] ( 5, 5 ) int -> r4 "CSE - aggressive"
; TEMP_01 ref -> [sp+0x04] ;
-; Lcl frame size = 8
+; Lcl frame size = 12
G_M9155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r4,lr}
+ push {lr} + sub sp, 12
movs r0, 0 str r0, [sp+0x04]
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
G_M9155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movs r0, 91 movw r3, 0xd1ff movt r3, 0xd1ff str r0, [r3]
- movw r4, 0xd1ff - movt r4, 0xd1ff
movs r0, 0
- str r0, [r4]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + str r0, [r3]
;; size=24 bbWeight=1 PerfScore 8.00 G_M9155_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str r0, [r4+0x04] - ;; size=2 bbWeight=1 PerfScore 1.00
+ movw r3, 0xd1ff + movt r3, 0xd1ff + str r0, [r3] + ;; size=10 bbWeight=1 PerfScore 3.00
G_M9155_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str r0, [r4+0x08]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + str r0, [r3]
movw r0, 0xd1ff movt r0, 0xd1ff movw r3, 0xd1ff @@ -43,20 +47,22 @@ G_M9155_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs +[r0] ; gcr arg pop 0 str r0, [sp+0x04]
- add r0, r4, 12
+ movw r0, 0xd1ff
; gcrRegs -[r0]
+ movt r0, 0xd1ff
ldr r1, [sp+0x04] ; gcrRegs +[r1] movw r12, 0xd1ff movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_REF ; gcrRegs -[r1]
- ;; size=38 bbWeight=1 PerfScore 12.00
+ ;; size=50 bbWeight=1 PerfScore 15.00
G_M9155_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r2,r3,r4,pc} - ;; size=2 bbWeight=1 PerfScore 1.00
+ add sp, 12 + pop {pc} + ;; size=4 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 6, PerfScore 25.00, instruction count 25, allocated bytes for code 72 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 32.00, instruction count 32, allocated bytes for code 96 (MethodHash=94d2dc3c) for method ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -68,11 +74,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 36 (0x00024) Actual length = 72 (0x000048)
+ Function Length : 48 (0x00030) Actual length = 96 (0x000060)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- ED 1C pop {r2,r3,r4,lr} ; opsize 16 - FF end
+ 03 add sp, sp, #12 ; opsize 16 + ED 00 pop {lr} ; opsize 16
FF end

+28 (+46.67%) : 155966.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FlushStores() (FullOpts)

@@ -10,22 +10,22 @@ ; ; V00 OutArgs [V00 ] ( 1, 1 ) struct ( 4) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslX509ChainEventSource>
-; V02 tmp2 [V02,T02] ( 2, 2 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslX509ChainEventSource>
+; V02 tmp2 [V02,T01] ( 2, 2 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslX509ChainEventSource>
;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslCachedDirectoryStoreProvider> ;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslCachedDirectoryStoreProvider> ;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.X509Certificates.OpenSslCachedDirectoryStoreProvider>
-; V06 cse0 [V06,T01] ( 3, 2.50) ref -> r0 "CSE - aggressive" -; V07 cse1 [V07,T00] ( 5, 5 ) int -> r4 "CSE - aggressive"
+; V06 cse0 [V06,T00] ( 3, 2.50) ref -> r0 "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 12
G_M49161_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r4,lr} - ;; size=2 bbWeight=1 PerfScore 1.00
+ push {lr} + sub sp, 12 + ;; size=4 bbWeight=1 PerfScore 2.00
G_M49161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movw r4, 0xd1ff - movt r4, 0xd1ff - ldr r0, [r4]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldr r0, [r0]
; gcrRegs +[r0] ldrb r1, [r0+0x5D] cmp r1, 0 @@ -45,20 +45,31 @@ G_M49161_IG03: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b ; gcr arg pop 0 ;; size=24 bbWeight=0.50 PerfScore 4.50 G_M49161_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr r3, [r4+0x04]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldr r3, [r3]
; gcrRegs +[r3] movs r2, 1 strb r2, [r3+0x10]
- ldr r3, [r4+0x0C]
+ movw r3, 0xd1ff + ; gcrRegs -[r3] + movt r3, 0xd1ff + ldr r3, [r3] + ; gcrRegs +[r3]
strb r2, [r3+0x10]
- ldr r3, [r4+0x08]
+ movw r3, 0xd1ff + ; gcrRegs -[r3] + movt r3, 0xd1ff + ldr r3, [r3] + ; gcrRegs +[r3]
strb r2, [r3+0x10]
- ;; size=14 bbWeight=1 PerfScore 7.00
+ ;; size=38 bbWeight=1 PerfScore 13.00
G_M49161_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r2,r3,r4,pc} - ;; size=2 bbWeight=1 PerfScore 1.00
+ add sp, 12 + pop {pc} + ;; size=4 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 2, PerfScore 19.50, instruction count 24, allocated bytes for code 60 (MethodHash=f60a3ff6) for method System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FlushStores() (FullOpts)
+; Total bytes of code 88, prolog size 4, PerfScore 27.50, instruction count 32, allocated bytes for code 88 (MethodHash=f60a3ff6) for method System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FlushStores() (FullOpts)
; ============================================================ Unwind Info: @@ -70,11 +81,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 30 (0x0001e) Actual length = 60 (0x00003c)
+ Function Length : 44 (0x0002c) Actual length = 88 (0x000058)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- ED 1C pop {r2,r3,r4,lr} ; opsize 16 - FF end
+ 03 add sp, sp, #12 ; opsize 16 + ED 00 pop {lr} ; opsize 16
FF end

realworld.run.linux.arm.checked.mch

-48 (-13.71%) : 33716.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)

@@ -7,22 +7,21 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 9, 7.50) ref -> r5 this class-hnd single-def <Microsoft.Cci.ReferenceIndexerBase>
+; V00 this [V00,T00] ( 11, 9 ) ref -> r5 this class-hnd single-def <Microsoft.Cci.ReferenceIndexerBase>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> r6 class-hnd single-def <Microsoft.Cci.IGenericTypeInstanceReference>
-; V02 loc0 [V02,T05] ( 4, 3 ) ref -> r7 class-hnd single-def <<unknown class>> -; V03 loc1 [V03,T07] ( 3, 1.50) ref -> r9 class-hnd single-def <Microsoft.Cci.ITypeReference>
+; V02 loc0 [V02,T04] ( 4, 3 ) ref -> r7 class-hnd single-def <<unknown class>> +; V03 loc1 [V03,T06] ( 3, 1.50) ref -> r8 class-hnd single-def <Microsoft.Cci.ITypeReference>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (12) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05,T02] ( 3, 6 ) ref -> r7 class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ITypeReference]>
-; V06 tmp2 [V06,T06] ( 2, 2 ) ref -> r1 single-def "argument with side effect" -; V07 tmp3 [V07,T04] ( 2, 4 ) ref -> r1 single-def "argument with side effect" -; V08 cse0 [V08,T03] ( 6, 4.50) byref -> r8 multi-def "CSE - aggressive"
+; V06 tmp2 [V06,T05] ( 2, 2 ) ref -> r1 single-def "argument with side effect" +; V07 tmp3 [V07,T03] ( 2, 4 ) ref -> r1 single-def "argument with side effect"
; TEMP_01 ref -> [r11-0x1C] ;
-; Lcl frame size = 24
+; Lcl frame size = 28
G_M42137_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r7,r8,r9,r11,lr} - sub sp, 24
+ push {r4,r5,r6,r7,r8,r11,lr} + sub sp, 28
add r11, sp, 48 movs r2, 0 str r2, [sp+0x14] @@ -45,22 +44,23 @@ G_M42137_IG02: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b ;; size=20 bbWeight=1 PerfScore 8.00 G_M42137_IG03: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[r0]
- add r8, r5, 4 - ; byrRegs +[r8] - ldr r1, [r8+0x0C]
+ adds r3, r5, 4 + ; byrRegs +[r3] + ldr r1, [r3+0x0C]
; gcrRegs +[r1] str r1, [sp]
- ldr r1, [r8+0x10]
+ ldr r1, [r3+0x10]
str r1, [sp+0x04]
- ldr r1, [r8+0x14]
+ ldr r1, [r3+0x14]
; gcrRegs -[r1] str r1, [sp+0x08]
- ldr r1, [r8]
+ ldr r1, [r3]
; gcrRegs +[r1]
- ldr r2, [r8+0x04]
+ ldr r2, [r3+0x04]
; gcrRegs +[r2]
- ldr r3, [r8+0x08]
+ ldr r3, [r3+0x08]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
mov r0, r7 ; gcrRegs +[r0] movw r4, 0xd1ff @@ -68,40 +68,43 @@ G_M42137_IG03: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 ldr lr, [r4] blx lr // <unknown method> ; gcrRegs -[r1-r3]
- mov r9, r0 - ; gcrRegs +[r9] - mov r0, r9
+ mov r8, r0 + ; gcrRegs +[r8] + mov r0, r8
movw r4, 0xd1ff movt r4, 0xd1ff ldr r3, [r4] blx r3 // <unknown method> cmp r0, 0 bne SHORT G_M42137_IG04
- mov r0, r9
+ mov r0, r8
movw r4, 0xd1ff movt r4, 0xd1ff ldr r3, [r4] blx r3 // <unknown method>
- ; gcrRegs -[r9]
+ ; gcrRegs -[r8]
cmp r0, 0 beq SHORT G_M42137_IG05
- ;; size=88 bbWeight=0.50 PerfScore 15.00 -G_M42137_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0100 {r8}, byref
+ ;; size=74 bbWeight=0.50 PerfScore 15.00 +G_M42137_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
- ldr r1, [r8+0x0C]
+ adds r3, r5, 4 + ; byrRegs +[r3] + ldr r1, [r3+0x0C]
; gcrRegs +[r1] str r1, [sp]
- ldr r1, [r8+0x10]
+ ldr r1, [r3+0x10]
str r1, [sp+0x04]
- ldr r1, [r8+0x14]
+ ldr r1, [r3+0x14]
; gcrRegs -[r1] str r1, [sp+0x08]
- ldr r1, [r8]
+ ldr r1, [r3]
; gcrRegs +[r1]
- ldr r2, [r8+0x04]
+ ldr r2, [r3+0x04]
; gcrRegs +[r2]
- ldr r3, [r8+0x08]
+ ldr r3, [r3+0x08]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
mov r0, r7 ; gcrRegs +[r0] movw r4, 0xd1ff @@ -109,7 +112,6 @@ G_M42137_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0100 ldr lr, [r4] blx lr // <unknown method> ; gcrRegs -[r1-r3 r7]
- ; byrRegs -[r8]
mov r1, r0 ; gcrRegs +[r1] mov r0, r5 @@ -118,24 +120,25 @@ G_M42137_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0100 ldr r3, [r3+0x0C] blx r3 // <unknown method> ; gcrRegs -[r0-r1]
- ;; size=58 bbWeight=0.50 PerfScore 10.00
+ ;; size=48 bbWeight=0.50 PerfScore 10.50
G_M42137_IG05: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
- add r8, r5, 4 - ; byrRegs +[r8] - ldr r1, [r8+0x0C]
+ adds r3, r5, 4 + ; byrRegs +[r3] + ldr r1, [r3+0x0C]
; gcrRegs +[r1] str r1, [sp]
- ldr r1, [r8+0x10]
+ ldr r1, [r3+0x10]
str r1, [sp+0x04]
- ldr r1, [r8+0x14]
+ ldr r1, [r3+0x14]
; gcrRegs -[r1] str r1, [sp+0x08]
- ldr r1, [r8]
+ ldr r1, [r3]
; gcrRegs +[r1]
- ldr r2, [r8+0x04]
+ ldr r2, [r3+0x04]
; gcrRegs +[r2]
- ldr r3, [r8+0x08]
+ ldr r3, [r3+0x08]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
mov r0, r6 ; gcrRegs +[r0] movw r4, 0xd1ff @@ -159,27 +162,29 @@ G_M42137_IG05: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b ; gcrRegs +[r0] mov r7, r0 ; gcrRegs +[r7]
- ldr r1, [r8+0x0C]
+ adds r3, r5, 4 + ; byrRegs +[r3] + ldr r1, [r3+0x0C]
; gcrRegs +[r1] str r1, [sp]
- ldr r1, [r8+0x10]
+ ldr r1, [r3+0x10]
str r1, [sp+0x04]
- ldr r1, [r8+0x14]
+ ldr r1, [r3+0x14]
; gcrRegs -[r1] str r1, [sp+0x08]
- ldr r1, [r8]
+ ldr r1, [r3]
; gcrRegs +[r1]
- ldr r2, [r8+0x04]
+ ldr r2, [r3+0x04]
; gcrRegs +[r2]
- ldr r3, [r8+0x08]
+ ldr r3, [r3+0x08]
; gcrRegs +[r3]
+ ; byrRegs -[r3]
mov r0, r6 movw r4, 0xd1ff movt r4, 0xd1ff ldr lr, [r4] blx lr // <unknown method> ; gcrRegs -[r1-r3 r6]
- ; byrRegs -[r8]
str r0, [sp+0x14] adds r0, r7, 4 ; gcrRegs -[r0] @@ -198,14 +203,14 @@ G_M42137_IG05: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3]
- ;; size=158 bbWeight=1 PerfScore 52.00
+ ;; size=134 bbWeight=1 PerfScore 53.00
G_M42137_IG06: ; bbWeight=1, epilog, nogc, extend
- add sp, 24 - pop {r4,r5,r6,r7,r8,r9,r11,lr}
+ add sp, 28 + pop {r4,r5,r6,r7,r8,r11,lr}
bx r3 // <unknown method> ;; size=8 bbWeight=1 PerfScore 3.00
-; Total bytes of code 350, prolog size 14, PerfScore 95.00, instruction count 120, allocated bytes for code 350 (MethodHash=a7c55b66) for method Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)
+; Total bytes of code 302, prolog size 14, PerfScore 96.50, instruction count 122, allocated bytes for code 302 (MethodHash=a7c55b66) for method Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)
; ============================================================ Unwind Info: @@ -217,11 +222,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 175 (0x000af) Actual length = 350 (0x00015e)
+ Function Length : 151 (0x00097) Actual length = 302 (0x00012e)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- 06 add sp, sp, #24 ; opsize 16 - AB F0 pop {r4,r5,r6,r7,r8,r9,r11,lr} ; opsize 32
+ 07 add sp, sp, #28 ; opsize 16 + A9 F0 pop {r4,r5,r6,r7,r8,r11,lr} ; opsize 32
FF end

-6 (-13.64%) : 57.dasm - System.Diagnostics.Debug:Assert(ubyte) (FullOpts)

@@ -10,6 +10,7 @@ ; ; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> r0 single-def ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 1.50) ref -> r1 "CSE - unknown"
; ; Lcl frame size = 4 @@ -22,14 +23,14 @@ G_M56764_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, bne SHORT G_M56764_IG05 ;; size=6 bbWeight=1 PerfScore 3.00 G_M56764_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r0, 0xd1ff - movt r0, 0xd1ff
movw r1, 0xd1ff movt r1, 0xd1ff
+ mov r0, r1 + ; gcrRegs +[r0]
movw r3, 0xd1ff movt r3, 0xd1ff ldr r3, [r3]
- ;; size=26 bbWeight=0.50 PerfScore 3.50
+ ;; size=20 bbWeight=0.50 PerfScore 3.00
G_M56764_IG04: ; bbWeight=0.50, epilog, nogc, extend add sp, 4 pop lr @@ -37,10 +38,11 @@ G_M56764_IG04: ; bbWeight=0.50, epilog, nogc, extend ; gcr arg pop 0 ;; size=8 bbWeight=0.50 PerfScore 1.50 G_M56764_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; gcrRegs -[r0]
pop {r3,pc} ;; size=2 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 44, prolog size 2, PerfScore 9.50, instruction count 15, allocated bytes for code 44 (MethodHash=d7082243) for method System.Diagnostics.Debug:Assert(ubyte) (FullOpts)
+; Total bytes of code 38, prolog size 2, PerfScore 9.00, instruction count 14, allocated bytes for code 38 (MethodHash=d7082243) for method System.Diagnostics.Debug:Assert(ubyte) (FullOpts)
; ============================================================ Unwind Info: @@ -52,7 +54,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ Function Length : 19 (0x00013) Actual length = 38 (0x000026)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-46 (-13.37%) : 26887.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitNameOfOperator(Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

@@ -8,25 +8,22 @@ ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 10, 10 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]>
+; V00 this [V00,T00] ( 14, 14 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]>
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r5 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator>
-; V02 loc0 [V02,T07] ( 2, 2 ) struct (24) [sp+0x18] do-not-enreg[S] double-align <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
+; V02 loc0 [V02,T04] ( 2, 2 ) struct (24) [sp+0x18] do-not-enreg[S] double-align <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 2, 4 ) struct (24) [sp+0x00] do-not-enreg[HS] must-init hidden-struct-arg double-align "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
+; V04 tmp1 [V04,T02] ( 2, 4 ) struct (24) [sp+0x00] do-not-enreg[HS] must-init hidden-struct-arg double-align "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
;* V05 tmp2 [V05 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op double-align "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState> ;* V06 tmp3 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op double-align "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
-; V07 cse0 [V07,T02] ( 4, 4 ) byref -> r6 "CSE - aggressive" -; V08 cse1 [V08,T06] ( 3, 3 ) int -> r7 "CSE - aggressive" -; V09 cse2 [V09,T04] ( 3, 3 ) byref -> r8 "CSE - aggressive" -; V10 cse3 [V10,T05] ( 3, 3 ) byref -> r9 "CSE - aggressive"
+; V07 cse0 [V07,T03] ( 3, 3 ) int -> r6 "CSE - unknown"
;
-; Lcl frame size = 48
+; Lcl frame size = 52
G_M8493_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r7,r8,r9,r11,lr} - sub sp, 48 - add r11, sp, 72 - sub r4, r11, 72
+ push {r4,r5,r6,r11,lr} + sub sp, 52 + add r11, sp, 64 + sub r4, r11, 64
movs r2, 0 movs r3, 0 stm r4!, {r2,r3} @@ -38,12 +35,10 @@ G_M8493_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[r5] ;; size=28 bbWeight=1 PerfScore 11.00 G_M8493_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
- add r6, r4, 64 - ; byrRegs +[r6]
+ add r1, r4, 64 + ; byrRegs +[r1]
add r0, sp, 24 ; byrRegs +[r0]
- mov r1, r6 - ; byrRegs +[r1]
ldr r2, [r1!+0x04] ; gcrRegs +[r2] str r2, [r0!+0x04] @@ -65,34 +60,30 @@ G_M8493_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, by mov r0, r4 ; gcrRegs +[r0] ; byrRegs -[r0]
- ldr r7, [r4] - ldr r3, [r7+0xB8]
+ ldr r6, [r4] + ldr r3, [r6+0xB8]
ldr r3, [r3+0x04] blx r3 // <unknown method> ; gcrRegs -[r0]
- add r8, r4, 112 - ; byrRegs +[r8]
movs r0, 0
- str r0, [r8] - str r0, [r8+0x04] - str r0, [r8+0x08] - str r0, [r8+0x0C] - str r0, [r8+0x10] - str r0, [r8+0x14] - add r9, r4, 88 - ; byrRegs +[r9] - ;; size=104 bbWeight=1 PerfScore 30.00 -G_M8493_IG03: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0340 {r6 r8 r9}, byref - str r0, [r9] - str r0, [r9+0x04] - str r0, [r9+0x08] - str r0, [r9+0x0C] - str r0, [r9+0x10] - str r0, [r9+0x14] - ;; size=24 bbWeight=1 PerfScore 6.00 -G_M8493_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0340 {r6 r8 r9}, byref
+ str r0, [r4+0x70] + str r0, [r4+0x74] + str r0, [r4+0x78] + str r0, [r4+0x7C] + str r0, [r4+0x80] + str r0, [r4+0x84] + ;; size=86 bbWeight=1 PerfScore 27.00 +G_M8493_IG03: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref + str r0, [r4+0x58] + str r0, [r4+0x5C] + str r0, [r4+0x60] + str r0, [r4+0x64] + str r0, [r4+0x68] + str r0, [r4+0x6C] + ;; size=12 bbWeight=1 PerfScore 6.00 +G_M8493_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
strb r0, [r4+0x3D]
- mov r0, r6
+ add r0, r4, 64
; byrRegs +[r0] add r1, sp, 0 ; byrRegs +[r1] @@ -116,32 +107,30 @@ G_M8493_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0340 {r6 r8 mov r0, r4 ; gcrRegs +[r0] ; byrRegs -[r0]
- ldr r3, [r7+0x2C]
+ ldr r3, [r6+0x2C]
ldr r3, [r3+0x10] blx r3 // <unknown method> ; gcrRegs -[r1 r5] movs r0, 0 ; gcrRegs -[r0]
- str r0, [r8] - str r0, [r8+0x04] - str r0, [r8+0x08] - str r0, [r8+0x0C] - str r0, [r8+0x10] - str r0, [r8+0x14] - ;; size=96 bbWeight=1 PerfScore 29.00 -G_M8493_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0240 {r6 r9}, byref - ; byrRegs -[r8] - str r0, [r9] - str r0, [r9+0x04] - str r0, [r9+0x08] - str r0, [r9+0x0C] - str r0, [r9+0x10] - str r0, [r9+0x14] - ;; size=24 bbWeight=1 PerfScore 6.00 -G_M8493_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref - ; byrRegs -[r9]
+ str r0, [r4+0x70] + str r0, [r4+0x74] + str r0, [r4+0x78] + str r0, [r4+0x7C] + str r0, [r4+0x80] + str r0, [r4+0x84] + ;; size=90 bbWeight=1 PerfScore 29.00 +G_M8493_IG05: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref + str r0, [r4+0x58] + str r0, [r4+0x5C] + str r0, [r4+0x60] + str r0, [r4+0x64] + str r0, [r4+0x68] + str r0, [r4+0x6C] + ;; size=12 bbWeight=1 PerfScore 6.00 +G_M8493_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
strb r0, [r4+0x3D]
- mov r0, r6
+ add r0, r4, 64
; byrRegs +[r0] add r1, sp, 24 ; byrRegs +[r1] @@ -149,7 +138,6 @@ G_M8493_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byr movt r12, 0xd1ff blx r12 // CORINFO_HELP_ASSIGN_BYREF ; gcrRegs -[r4]
- ; byrRegs -[r6]
ldr r2, [r1!+0x04] str r2, [r0!+0x04] ldr r2, [r1!+0x04] @@ -163,13 +151,13 @@ G_M8493_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byr str r2, [r0!+0x04] movs r0, 0 ; byrRegs -[r0]
- ;; size=62 bbWeight=1 PerfScore 18.00
+ ;; size=64 bbWeight=1 PerfScore 18.00
G_M8493_IG07: ; bbWeight=1, epilog, nogc, extend
- add sp, 48 - pop {r4,r5,r6,r7,r8,r9,r11,pc}
+ add sp, 52 + pop {r4,r5,r6,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 344, prolog size 24, PerfScore 102.00, instruction count 102, allocated bytes for code 344 (MethodHash=ff58ded2) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitNameOfOperator(Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
+; Total bytes of code 298, prolog size 24, PerfScore 99.00, instruction count 99, allocated bytes for code 298 (MethodHash=ff58ded2) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitNameOfOperator(Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
; ============================================================ Unwind Info: @@ -181,11 +169,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 172 (0x000ac) Actual length = 344 (0x000158)
+ Function Length : 149 (0x00095) Actual length = 298 (0x00012a)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- 0C add sp, sp, #48 ; opsize 16 - AB F0 pop {r4,r5,r6,r7,r8,r9,r11,lr} ; opsize 32
+ 0D add sp, sp, #52 ; opsize 16 + A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
FF end

+30 (+27.78%) : 377.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)

@@ -9,15 +9,14 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T01] ( 3, 2 ) int -> r3 -; V02 cse0 [V02,T00] ( 6, 5.50) int -> r4 "CSE - aggressive"
+; V01 tmp1 [V01,T00] ( 3, 2 ) int -> r3
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M15866_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r11,lr} - add r11, sp, 8 - ;; size=8 bbWeight=1 PerfScore 2.00
+ push {r11,lr} + mov r11, sp + ;; size=6 bbWeight=1 PerfScore 2.00
G_M15866_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movw r0, 0xd1ff movt r0, 0xd1ff @@ -36,9 +35,9 @@ G_M15866_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movs r0, 1 ;; size=2 bbWeight=1 PerfScore 1.00 G_M15866_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movw r4, 0xd1ff - movt r4, 0xd1ff - strb r0, [r4]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + strb r0, [r3]
movw r0, 0xd1ff movt r0, 0xd1ff movw r3, 0xd1ff @@ -56,18 +55,24 @@ G_M15866_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movs r3, 1 ;; size=2 bbWeight=1 PerfScore 1.00 G_M15866_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- strb r3, [r4+0x01] - ldrb r3, [r4]
+ movw r2, 0xd1ff + movt r2, 0xd1ff + strb r3, [r2] + movw r3, 0xd1ff + movt r3, 0xd1ff + ldrb r3, [r3]
cmp r3, 0 beq SHORT G_M15866_IG10
- ;; size=8 bbWeight=1 PerfScore 4.00
+ ;; size=24 bbWeight=1 PerfScore 8.00
G_M15866_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldrb r3, [r4+0x01]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldrb r3, [r3]
cmp r3, 0 beq SHORT G_M15866_IG08 movs r3, 0 b SHORT G_M15866_IG09
- ;; size=10 bbWeight=0.50 PerfScore 2.50
+ ;; size=18 bbWeight=0.50 PerfScore 3.50
G_M15866_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movs r3, 1 ;; size=2 bbWeight=0.50 PerfScore 0.50 @@ -78,13 +83,15 @@ G_M15866_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr movs r3, 0 ;; size=2 bbWeight=0.50 PerfScore 0.50 G_M15866_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- strb r3, [r4+0x02] - ;; size=2 bbWeight=1 PerfScore 1.00
+ movw r2, 0xd1ff + movt r2, 0xd1ff + strb r3, [r2] + ;; size=10 bbWeight=1 PerfScore 3.00
G_M15866_IG12: ; bbWeight=1, epilog, nogc, extend
- pop {r3,r4,r11,pc}
+ pop {r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 108, prolog size 8, PerfScore 37.00, instruction count 41, allocated bytes for code 108 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
+; Total bytes of code 138, prolog size 6, PerfScore 44.00, instruction count 49, allocated bytes for code 138 (MethodHash=0981c205) for method BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -96,11 +103,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 54 (0x00036) Actual length = 108 (0x00006c)
+ Function Length : 69 (0x00045) Actual length = 138 (0x00008a)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ A8 00 pop {r11,lr} ; opsize 32
FF end FF end

+20 (+28.57%) : 1165.dasm - System.Diagnostics.Stopwatch:.cctor() (FullOpts)

@@ -8,27 +8,28 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T02] ( 5, 5 ) int -> r4 "CSE - aggressive" -; V02 rat0 [V02,T00] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable" -; V03 rat1 [V03,T01] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
+; V01 rat0 [V01,T00] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable" +; V02 rat1 [V02,T01] ( 3, 6 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M2214_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,lr}
+ push {r3,lr}
;; size=2 bbWeight=1 PerfScore 1.00 G_M2214_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r4, 0xd1ff - movt r4, 0xd1ff - mov r0, r4
+ movw r0, 0xd1ff + movt r0, 0xd1ff
movw r1, 0xd1ff movt r1, 0xd1ff
- str r1, [r0] - movs r1, 0 - str r1, [r0+0x04]
+ str r0, [r1] + movs r0, 0 + str r0, [r1+0x04]
movs r0, 1
- strb r0, [r4+0x10] - mov r1, r4
+ movw r1, 0xd1ff + movt r1, 0xd1ff + strb r0, [r1] + movw r1, 0xd1ff + movt r1, 0xd1ff
ldr r0, [r1] ldr r1, [r1+0x04] movw r3, 0xd1ff @@ -40,13 +41,15 @@ G_M2214_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movt r3, 0xd1ff vmov.i2d d4, r2, r3 vdiv d4, d4, d0
- vstr d4, [r4+0x08] - ;; size=66 bbWeight=1 PerfScore 22.00
+ movw r3, 0xd1ff + movt r3, 0xd1ff + vstr d4, [r3] + ;; size=86 bbWeight=1 PerfScore 26.00
G_M2214_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r4,pc}
+ pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 70, prolog size 2, PerfScore 24.00, instruction count 24, allocated bytes for code 70 (MethodHash=b3f5f759) for method System.Diagnostics.Stopwatch:.cctor() (FullOpts)
+; Total bytes of code 90, prolog size 2, PerfScore 28.00, instruction count 28, allocated bytes for code 90 (MethodHash=b3f5f759) for method System.Diagnostics.Stopwatch:.cctor() (FullOpts)
; ============================================================ Unwind Info: @@ -58,12 +61,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 70 (0x000046)
+ Function Length : 45 (0x0002d) Actual length = 90 (0x00005a)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- D4 pop {r4,lr} ; opsize 16 - FF end
+ ED 08 pop {r3,lr} ; opsize 16
FF end FF end

+24 (+42.86%) : 37249.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)

@@ -9,20 +9,19 @@ ; ; V00 arg0 [V00,T00] ( 4, 3 ) ref -> r4 class-hnd single-def <System.Action> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 4.50) int -> r5 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M64219_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r11,lr}
+ push {r3,r4,r11,lr}
add r11, sp, 8 mov r4, r0 ; gcrRegs +[r4] ;; size=10 bbWeight=1 PerfScore 3.00 G_M64219_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- movw r5, 0xd1ff - movt r5, 0xd1ff - ldrb r3, [r5]
+ movw r3, 0xd1ff + movt r3, 0xd1ff + ldrb r3, [r3]
cmp r3, 0 bne SHORT G_M64219_IG04 ;; size=14 bbWeight=1 PerfScore 5.00 @@ -31,13 +30,17 @@ G_M64219_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b movt r3, 0xd1ff ldr r3, [r3] blx r3 // <unknown method>
- strb r0, [r5+0x01] - ;; size=14 bbWeight=0.50 PerfScore 2.50
+ movw r3, 0xd1ff + movt r3, 0xd1ff + strb r0, [r3] + ;; size=22 bbWeight=0.50 PerfScore 3.50
G_M64219_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ldrb r0, [r5+0x01]
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldrb r0, [r0]
cmp r0, 0 beq SHORT G_M64219_IG06
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=14 bbWeight=1 PerfScore 5.00
G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ldr r0, [r4+0x04] ; gcrRegs +[r0] @@ -46,13 +49,15 @@ G_M64219_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b ; gcrRegs -[r0 r4] ;; size=6 bbWeight=0.50 PerfScore 1.50 G_M64219_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb r0, [r5+0x01] - ;; size=2 bbWeight=1 PerfScore 1.00
+ movw r0, 0xd1ff + movt r0, 0xd1ff + ldrb r0, [r0] + ;; size=10 bbWeight=1 PerfScore 3.00
G_M64219_IG07: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r11,pc}
+ pop {r3,r4,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 56, prolog size 8, PerfScore 17.00, instruction count 21, allocated bytes for code 56 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 22.00, instruction count 27, allocated bytes for code 80 (MethodHash=752d0524) for method Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -64,11 +69,11 @@ Unwind Info: E bit : 1 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 56 (0x000038)
+ Function Length : 40 (0x00028) Actual length = 80 (0x000050)
--- One epilog, unwind codes at 0 ---- Unwind codes ---- ---- Epilog start at index 0 ----
- A8 30 pop {r4,r5,r11,lr} ; opsize 32
+ A8 18 pop {r3,r4,r11,lr} ; opsize 32
FF end FF end

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.linux.arm.checked.mch 12,140 10,000 1,692 448 -220,864 +21,188 -0.1776%
benchmarks.run_pgo.linux.arm.checked.mch 31,317 22,671 6,978 1,668 -339,890 +96,034 -0.0327%
benchmarks.run_tiered.linux.arm.checked.mch 8,425 6,715 1,309 401 -155,328 +16,936 -0.1855%
coreclr_tests.run.linux.arm.checked.mch 77,879 37,254 26,395 14,230 -2,276,326 +301,024 +0.0573%
libraries.crossgen2.linux.arm.checked.mch 11,296 4,487 4,803 2,006 -34,262 +38,000 +0.0492%
libraries.pmi.linux.arm.checked.mch 29,945 19,046 7,986 2,913 -184,588 +91,178 +0.0053%
libraries_tests.run.linux.arm.Release.mch 73,607 44,180 23,206 6,221 -512,654 +270,014 +0.0153%
librariestestsnotieredcompilation.run.linux.arm.Release.mch 59,478 40,734 15,249 3,495 -582,672 +192,708 -0.0188%
realworld.run.linux.arm.checked.mch 6,548 3,635 2,299 614 -58,148 +37,060 +0.0378%
310,635 188,722 89,917 31,996 -4,364,732 +1,064,142

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm.checked.mch 49,602 6,350 43,252 1,297 (2.54%) 1,354 (2.66%)
benchmarks.run_pgo.linux.arm.checked.mch 166,974 59,797 107,177 3,373 (1.98%) 3,056 (1.79%)
benchmarks.run_tiered.linux.arm.checked.mch 76,186 41,011 35,175 1,057 (1.37%) 1,104 (1.43%)
coreclr_tests.run.linux.arm.checked.mch 472,077 259,321 212,756 7,298 (1.52%) 7,533 (1.57%)
libraries.crossgen2.linux.arm.checked.mch 201,977 14 201,963 0 (0.00%) 28 (0.01%)
libraries.pmi.linux.arm.checked.mch 276,554 6 276,548 8,014 (2.81%) 8,665 (3.04%)
libraries_tests.run.linux.arm.Release.mch 709,830 444,574 265,256 19,140 (2.62%) 18,761 (2.57%)
librariestestsnotieredcompilation.run.linux.arm.Release.mch 273,052 21,625 251,427 33,996 (11.03%) 34,448 (11.17%)
realworld.run.linux.arm.checked.mch 36,426 165 36,261 1,425 (3.76%) 1,441 (3.80%)
2,262,678 832,863 1,429,815 75,600 (3.23%) 76,390 (3.26%)

jit-analyze output

benchmarks.run.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 16543852 (overridden on cmd)
Total bytes of diff: 16344176 (overridden on cmd)
Total bytes of delta: -199676 (-1.21 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        1364 : 34055.dasm (4.69 % of base)
        1274 : 13739.dasm (4.76 % of base)
         378 : 22912.dasm (7.58 % of base)
         348 : 39942.dasm (2.10 % of base)
         258 : 13636.dasm (2.60 % of base)
         208 : 29435.dasm (2.86 % of base)
         182 : 49056.dasm (5.40 % of base)
         154 : 42798.dasm (0.97 % of base)
         136 : 1776.dasm (1.74 % of base)
         122 : 894.dasm (9.24 % of base)
         120 : 30577.dasm (3.22 % of base)
         120 : 41405.dasm (1.16 % of base)
         108 : 28793.dasm (1.80 % of base)
         102 : 29299.dasm (1.59 % of base)
         102 : 34118.dasm (2.93 % of base)
         102 : 34311.dasm (4.13 % of base)
         100 : 6562.dasm (0.99 % of base)
          94 : 14544.dasm (1.38 % of base)
          92 : 17250.dasm (10.98 % of base)
          86 : 17768.dasm (2.58 % of base)

Top file improvements (bytes):
        -330 : 28841.dasm (-2.85 % of base)
        -278 : 10427.dasm (-8.96 % of base)
        -242 : 1428.dasm (-5.56 % of base)
        -206 : 2044.dasm (-5.79 % of base)
        -188 : 44473.dasm (-6.90 % of base)
        -186 : 2277.dasm (-9.89 % of base)
        -136 : 29384.dasm (-9.94 % of base)
        -132 : 30045.dasm (-12.24 % of base)
        -128 : 12448.dasm (-5.81 % of base)
        -122 : 1292.dasm (-14.84 % of base)
        -110 : 3578.dasm (-2.60 % of base)
        -110 : 10499.dasm (-7.83 % of base)
        -108 : 24953.dasm (-3.46 % of base)
        -100 : 9000.dasm (-4.42 % of base)
         -98 : 5686.dasm (-5.94 % of base)
         -96 : 30542.dasm (-5.51 % of base)
         -92 : 16026.dasm (-5.09 % of base)
         -90 : 31544.dasm (-15.00 % of base)
         -90 : 6914.dasm (-3.70 % of base)
         -88 : 9954.dasm (-4.07 % of base)

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

Top method regressions (bytes):
        1364 (4.69 % of base) : 34055.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        1274 (4.76 % of base) : 13739.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         378 (7.58 % of base) : 22912.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (FullOpts)
         348 (2.10 % of base) : 39942.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         258 (2.60 % of base) : 13636.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         208 (2.86 % of base) : 29435.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
         182 (5.40 % of base) : 49056.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (FullOpts)
         154 (0.97 % of base) : 42798.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         136 (1.74 % of base) : 1776.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         122 (9.24 % of base) : 894.dasm - System.Guid:TryParseExactD(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts)
         120 (1.16 % of base) : 41405.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (FullOpts)
         120 (3.22 % of base) : 30577.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (FullOpts)
         108 (1.80 % of base) : 28793.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
         102 (1.59 % of base) : 29299.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,byref,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (FullOpts)
         102 (4.13 % of base) : 34311.dasm - MS.Internal.Xml.XPath.QueryBuilder:ProcessAxis(MS.Internal.Xml.XPath.Axis,int,byref):MS.Internal.Xml.XPath.Query:this (FullOpts)
         102 (2.93 % of base) : 34118.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         100 (0.99 % of base) : 6562.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (FullOpts)
          94 (1.38 % of base) : 14544.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
          92 (10.98 % of base) : 17250.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (FullOpts)
          86 (2.58 % of base) : 17768.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts)

Top method improvements (bytes):
        -330 (-2.85 % of base) : 28841.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -278 (-8.96 % of base) : 10427.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -242 (-5.56 % of base) : 1428.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
        -206 (-5.79 % of base) : 2044.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
        -188 (-6.90 % of base) : 44473.dasm - BenchmarksGame.RegexRedux_5:RunBench(int):int:this (FullOpts)
        -186 (-9.89 % of base) : 2277.dasm - ProtoBuf.Internal.Serializers.DefaultValueDecorator:EmitBranchIfDefaultValue(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.CodeLabel):this (FullOpts)
        -136 (-9.94 % of base) : 29384.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -132 (-12.24 % of base) : 30045.dasm - Microsoft.CodeAnalysis.SymbolDisplayFormat:.cctor() (FullOpts)
        -128 (-5.81 % of base) : 12448.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -122 (-14.84 % of base) : 1292.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (FullOpts)
        -110 (-2.60 % of base) : 3578.dasm - System.Net.Http.RedirectHandler+<SendAsync>d__4:MoveNext():this (FullOpts)
        -110 (-7.83 % of base) : 10499.dasm - System.Text.Json.Tests.Perf_Get:.cctor() (FullOpts)
        -108 (-3.46 % of base) : 24953.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
        -100 (-4.42 % of base) : 9000.dasm - System.Collections.Perf_SingleCharFrozenDictionary:Setup():this (FullOpts)
         -98 (-5.94 % of base) : 5686.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
         -96 (-5.51 % of base) : 30542.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (FullOpts)
         -92 (-5.09 % of base) : 16026.dasm - System.Xml.Linq.XContainer:GetStringValue(System.Object):System.String (FullOpts)
         -90 (-3.70 % of base) : 6914.dasm - System.Collections.Perf_LengthBucketsFrozenDictionary:Setup():this (FullOpts)
         -90 (-15.00 % of base) : 31544.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
         -88 (-4.07 % of base) : 9954.dasm - System.Collections.Perf_DefaultFrozenDictionary:Setup():this (FullOpts)

Top method regressions (percentages):
          20 (28.57 % of base) : 989.dasm - System.Diagnostics.Stopwatch:.cctor() (FullOpts)
          30 (27.78 % of base) : 377.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
          22 (25.58 % of base) : 39354.dasm - V8.Crypto.Support:runDecrypt(ubyte) (FullOpts)
          22 (25.58 % of base) : 39321.dasm - V8.Crypto.Support:runEncrypt(ubyte) (FullOpts)
          20 (24.39 % of base) : 6391.dasm - Utf8Json.JsonSerializer:get_DefaultResolver():Utf8Json.IJsonFormatterResolver (FullOpts)
          20 (23.81 % of base) : 15534.dasm - System.Diagnostics.Activity:get_DefaultIdFormat():int (FullOpts)
          40 (22.99 % of base) : 12187.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
          12 (22.22 % of base) : 17466.dasm - System.Formats.Tar.Tests.Perf_TarFile:CreateFromDirectory_Path():this (FullOpts)
          60 (22.06 % of base) : 33972.dasm - FractalPerf.Launch:Test():double:this (FullOpts)
          18 (21.43 % of base) : 14001.dasm - MessagePack.MessagePackSerializer:get_DefaultResolver():MessagePack.IFormatterResolver (FullOpts)
          20 (17.54 % of base) : 14918.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[int,int]:.cctor() (FullOpts)
          24 (16.22 % of base) : 908.dasm - BenchmarkDotNet.Characteristics.CharacteristicPresenter:.cctor() (FullOpts)
          12 (15.38 % of base) : 4358.dasm - System.Console:<get_IsInputRedirected>g__EnsureInitialized|34_0():System.Runtime.CompilerServices.StrongBox`1[ubyte] (FullOpts)
          12 (15.38 % of base) : 4355.dasm - System.Console:<get_IsOutputRedirected>g__EnsureInitialized|36_0():System.Runtime.CompilerServices.StrongBox`1[ubyte] (FullOpts)
          16 (14.81 % of base) : 20699.dasm - Microsoft.Extensions.Configuration.ConfigurationKeyComparer:.cctor() (FullOpts)
          26 (14.77 % of base) : 4865.dasm - System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (FullOpts)
          30 (14.71 % of base) : 5203.dasm - System.Random+Net5CompatSeedImpl:NextUInt64():ulong:this (FullOpts)
          22 (14.67 % of base) : 897.dasm - BenchmarkDotNet.Characteristics.CharacteristicSetPresenter:.cctor() (FullOpts)
          14 (14.29 % of base) : 4669.dasm - System.Net.SocketProtocolSupportPal:.cctor() (FullOpts)
          14 (14.29 % of base) : 3285.dasm - System.Net.SocketProtocolSupportPal:.cctor() (FullOpts)

Top method improvements (percentages):
         -42 (-19.09 % of base) : 14745.dasm - System.MathF:ILogB(float):int (FullOpts)
          -8 (-18.18 % of base) : 12302.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
          -8 (-18.18 % of base) : 17735.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
          -8 (-18.18 % of base) : 12303.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
          -8 (-18.18 % of base) : 19704.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_0(System.Object):System.String:this (FullOpts)
          -8 (-18.18 % of base) : 19709.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_10(System.Object):int:this (FullOpts)
          -8 (-18.18 % of base) : 19710.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_12(System.Object):int:this (FullOpts)
          -8 (-18.18 % of base) : 19711.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_14(System.Object):int:this (FullOpts)
          -8 (-18.18 % of base) : 19713.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_18(System.Object):int:this (FullOpts)
          -8 (-18.18 % of base) : 19705.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_2(System.Object):System.String:this (FullOpts)
          -8 (-18.18 % of base) : 19706.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_4(System.Object):System.String:this (FullOpts)
          -8 (-18.18 % of base) : 19707.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<LargeStructWithPropertiesPropInit>b__60_6(System.Object):System.String:this (FullOpts)
          -8 (-18.18 % of base) : 16258.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_0(System.Object):int:this (FullOpts)
          -8 (-18.18 % of base) : 16259.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<SimpleStructWithPropertiesPropInit>b__101_2(System.Object):System.String:this (FullOpts)
          -8 (-18.18 % of base) : 18462.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_0(System.Object):int:this (FullOpts)
          -8 (-18.18 % of base) : 18467.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_10(System.Object):System.String:this (FullOpts)
          -8 (-18.18 % of base) : 18463.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_2(System.Object):ubyte:this (FullOpts)
          -8 (-18.18 % of base) : 18464.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_4(System.Object):System.String:this (FullOpts)
          -8 (-18.18 % of base) : 18465.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_6(System.Object):int:this (FullOpts)
          -8 (-18.18 % of base) : 18466.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext+<>c:<StructRecordPropInit>b__107_8(System.Object):ubyte:this (FullOpts)


benchmarks.run_pgo.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 68542524 (overridden on cmd)
Total bytes of diff: 68298668 (overridden on cmd)
Total bytes of delta: -243856 (-0.36 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        1364 : 118891.dasm (4.69 % of base)
        1274 : 38023.dasm (4.76 % of base)
         348 : 134643.dasm (2.10 % of base)
         258 : 43342.dasm (2.60 % of base)
         212 : 101410.dasm (2.74 % of base)
         212 : 106941.dasm (2.74 % of base)
         210 : 71805.dasm (3.74 % of base)
         182 : 167509.dasm (5.40 % of base)
         164 : 93134.dasm (8.30 % of base)
         160 : 90847.dasm (5.40 % of base)
         154 : 66418.dasm (9.91 % of base)
         152 : 79436.dasm (3.85 % of base)
         148 : 98066.dasm (4.27 % of base)
         136 : 15891.dasm (1.74 % of base)
         136 : 139764.dasm (0.85 % of base)
         136 : 61410.dasm (14.11 % of base)
         134 : 99892.dasm (2.36 % of base)
         130 : 85740.dasm (6.44 % of base)
         130 : 106448.dasm (6.42 % of base)
         130 : 145279.dasm (6.42 % of base)

Top file improvements (bytes):
        -278 : 25931.dasm (-8.96 % of base)
        -246 : 92624.dasm (-2.16 % of base)
        -226 : 4120.dasm (-5.09 % of base)
        -216 : 100542.dasm (-3.55 % of base)
        -208 : 27326.dasm (-5.80 % of base)
        -122 : 3512.dasm (-14.84 % of base)
        -116 : 26983.dasm (-3.62 % of base)
        -116 : 143124.dasm (-3.62 % of base)
        -114 : 47646.dasm (-1.11 % of base)
        -108 : 79554.dasm (-3.46 % of base)
        -104 : 101413.dasm (-3.69 % of base)
        -104 : 106942.dasm (-3.69 % of base)
        -104 : 110836.dasm (-2.22 % of base)
         -98 : 16462.dasm (-3.71 % of base)
         -98 : 90421.dasm (-6.09 % of base)
         -98 : 142898.dasm (-3.94 % of base)
         -98 : 9155.dasm (-5.93 % of base)
         -94 : 24581.dasm (-3.89 % of base)
         -92 : 135543.dasm (-4.37 % of base)
         -88 : 37390.dasm (-8.13 % of base)

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

Top method regressions (bytes):
        1364 (4.69 % of base) : 118891.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        1274 (4.76 % of base) : 38023.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         348 (2.10 % of base) : 134643.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         258 (2.60 % of base) : 43342.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         212 (2.74 % of base) : 101410.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
         212 (2.74 % of base) : 106941.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
         210 (3.74 % of base) : 71805.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
         182 (5.40 % of base) : 167509.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier0-FullOpts)
         164 (8.30 % of base) : 93134.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (Tier0-FullOpts)
         160 (5.40 % of base) : 90847.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|199_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (Tier0-FullOpts)
         154 (9.91 % of base) : 66418.dasm - System.Number:<TryFormatInt32>g__TryFormatInt32Slow|42_0[ushort](int,int,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ushort],byref):ubyte (Tier1)
         152 (3.85 % of base) : 79436.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
         148 (4.27 % of base) : 98066.dasm - Microsoft.Cci.MetadataVisitor:Visit(Microsoft.Cci.ICustomAttribute):this (Tier1)
         136 (0.85 % of base) : 139764.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         136 (14.11 % of base) : 61410.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0-FullOpts)
         136 (1.74 % of base) : 15891.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         134 (2.36 % of base) : 99892.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CompileMethods(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,System.Predicate`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal],System.Threading.CancellationToken):ubyte:this (Tier1)
         130 (6.44 % of base) : 85740.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindMatch(int,System.ReadOnlySpan`1[ushort],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicMatch:this (Tier1)
         130 (6.42 % of base) : 106448.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindMatch(int,System.ReadOnlySpan`1[ushort],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicMatch:this (Tier1)
         130 (6.42 % of base) : 145279.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindMatch(int,System.ReadOnlySpan`1[ushort],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicMatch:this (Tier1)

Top method improvements (bytes):
        -278 (-8.96 % of base) : 25931.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (Tier0-FullOpts)
        -246 (-2.16 % of base) : 92624.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
        -226 (-5.09 % of base) : 4120.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
        -216 (-3.55 % of base) : 100542.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier1)
        -208 (-5.80 % of base) : 27326.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (Tier0-FullOpts)
        -122 (-14.84 % of base) : 3512.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (Tier0-FullOpts)
        -116 (-3.62 % of base) : 26983.dasm - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
        -116 (-3.62 % of base) : 143124.dasm - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
        -114 (-1.11 % of base) : 47646.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
        -108 (-3.46 % of base) : 79554.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
        -104 (-2.22 % of base) : 110836.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseLocalDeclaration(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclaratorSyntax],ubyte,ubyte,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken],byref,byref):this (Tier1)
        -104 (-3.69 % of base) : 101413.dasm - System.Reflection.PortableExecutable.PEHeaders:SkipDosHeader(byref,byref) (Tier1)
        -104 (-3.69 % of base) : 106942.dasm - System.Reflection.PortableExecutable.PEHeaders:SkipDosHeader(byref,byref) (Tier1)
         -98 (-6.09 % of base) : 90421.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (Tier0-FullOpts)
         -98 (-5.93 % of base) : 9155.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
         -98 (-3.94 % of base) : 142898.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         -98 (-3.71 % of base) : 16462.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (Tier0-FullOpts)
         -94 (-3.89 % of base) : 24581.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         -92 (-4.37 % of base) : 135543.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateContract(System.Type):Newtonsoft.Json.Serialization.JsonContract:this (Tier1)
         -88 (-8.13 % of base) : 37390.dasm - Sigil.Emit`1[System.__Canon]:UpdateStackAndInstrStream(System.Nullable`1[System.Reflection.Emit.OpCode],Sigil.Impl.TransitionWrapper,ubyte):this (Tier1)

Top method regressions (percentages):
          40 (22.73 % of base) : 34898.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
          32 (17.78 % of base) : 122386.dasm - System.Runtime.Serialization.XmlSerializableReader:Read():ubyte:this (Tier1)
         136 (14.11 % of base) : 61410.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0-FullOpts)
           6 (13.64 % of base) : 105541.dasm - System.Collections.IterateFor`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
          40 (12.66 % of base) : 100406.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariableType(System.Reflection.Metadata.Ecma335.LocalVariableTypeEncoder,Microsoft.Cci.ILocalDefinition):this (Tier1)
          32 (11.85 % of base) : 71953.dasm - System.Collections.Immutable.ImmutableArray`1[int]:IndexOf(int,int,int,System.Collections.Generic.IEqualityComparer`1[int]):int:this (Tier0-FullOpts)
          12 (11.54 % of base) : 40460.dasm - System.Text.RegularExpressions.Symbolic.CharSetSolver:<CreateBDDFromChar>g__CreateBdd|6_0(ushort):System.Text.RegularExpressions.Symbolic.BDD:this (Tier0-FullOpts)
           6 (11.11 % of base) : 102168.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 119680.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 65176.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 118843.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 81727.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 88064.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 131991.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 37048.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 42912.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 61499.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 104020.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 164835.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
           6 (11.11 % of base) : 66588.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)

Top method improvements (percentages):
          -8 (-19.05 % of base) : 58415.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
          -8 (-19.05 % of base) : 35091.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
          -8 (-19.05 % of base) : 73845.dasm - System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.StructRecord](System.Object):byref (Tier1)
          -8 (-18.18 % of base) : 35084.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
          -8 (-18.18 % of base) : 52077.dasm - (dynamicClass):NumSetter(System.Object,int) (FullOpts)
          -8 (-18.18 % of base) : 70434.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
         -58 (-16.20 % of base) : 129512.dasm - Benchstone.BenchI.XposMatrix:Inner(int[][],int) (Tier0-FullOpts)
        -122 (-14.84 % of base) : 3512.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (Tier0-FullOpts)
          -8 (-14.29 % of base) : 52078.dasm - (dynamicClass):TextSetter(System.Object,System.String) (FullOpts)
          -8 (-11.76 % of base) : 94163.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (Tier0-FullOpts)
          -2 (-11.11 % of base) : 115945.dasm - System.Math:Min(short,short):short (Tier1)
          -2 (-11.11 % of base) : 84486.dasm - System.Math:Min(short,short):short (Tier1)
         -18 (-10.71 % of base) : 87033.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
          -8 (-10.00 % of base) : 133338.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
          -8 (-10.00 % of base) : 118893.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
          -8 (-10.00 % of base) : 134593.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
          -8 (-10.00 % of base) : 139730.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
          -8 (-10.00 % of base) : 124143.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
          -8 (-10.00 % of base) : 153309.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)
          -8 (-10.00 % of base) : 38094.dasm - Sigil.Impl.VerifiableTracker+<>c__DisplayClass23_0:<UpdateStack>b__0(Sigil.Impl.StackTransition):this (Tier1)


benchmarks.run_tiered.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 19429376 (overridden on cmd)
Total bytes of diff: 19290984 (overridden on cmd)
Total bytes of delta: -138392 (-0.71 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        1364 : 61482.dasm (4.69 % of base)
        1274 : 27697.dasm (4.76 % of base)
         378 : 41142.dasm (7.58 % of base)
         340 : 65738.dasm (2.05 % of base)
         238 : 32224.dasm (2.40 % of base)
         208 : 57707.dasm (2.86 % of base)
         182 : 75938.dasm (5.40 % of base)
         154 : 66975.dasm (0.97 % of base)
         152 : 43381.dasm (3.85 % of base)
         136 : 11730.dasm (1.74 % of base)
         128 : 42341.dasm (2.11 % of base)
         122 : 16086.dasm (9.24 % of base)
         120 : 58179.dasm (3.22 % of base)
         120 : 66448.dasm (1.16 % of base)
         110 : 52927.dasm (1.84 % of base)
         102 : 61368.dasm (2.93 % of base)
         102 : 53911.dasm (1.59 % of base)
         100 : 19405.dasm (0.99 % of base)
          96 : 25960.dasm (1.41 % of base)
          92 : 36438.dasm (10.98 % of base)

Top file improvements (bytes):
        -296 : 53010.dasm (-2.56 % of base)
        -278 : 14800.dasm (-8.96 % of base)
        -242 : 4603.dasm (-5.56 % of base)
        -206 : 24063.dasm (-5.79 % of base)
        -186 : 24772.dasm (-9.89 % of base)
        -136 : 54229.dasm (-10.19 % of base)
        -128 : 25540.dasm (-5.81 % of base)
        -122 : 3892.dasm (-14.84 % of base)
        -116 : 27325.dasm (-3.50 % of base)
        -110 : 7142.dasm (-2.60 % of base)
        -108 : 42557.dasm (-3.46 % of base)
         -98 : 13167.dasm (-5.94 % of base)
         -96 : 56707.dasm (-5.59 % of base)
         -92 : 35357.dasm (-5.15 % of base)
         -88 : 50967.dasm (-2.68 % of base)
         -86 : 40740.dasm (-2.58 % of base)
         -86 : 42266.dasm (-8.87 % of base)
         -86 : 40271.dasm (-2.62 % of base)
         -86 : 65581.dasm (-6.73 % of base)
         -78 : 3206.dasm (-14.03 % of base)

92 total files with Code Size differences (48 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
        1364 (4.69 % of base) : 61482.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
        1274 (4.76 % of base) : 27697.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         378 (7.58 % of base) : 41142.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
         340 (2.05 % of base) : 65738.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         238 (2.40 % of base) : 32224.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         208 (2.86 % of base) : 57707.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier1)
         182 (5.40 % of base) : 75938.dasm - Benchstone.MDBenchI.MDPuzzle:DoIt():ubyte:this (Tier0-FullOpts)
         154 (0.97 % of base) : 66975.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         152 (3.85 % of base) : 43381.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
         136 (1.74 % of base) : 11730.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         128 (2.11 % of base) : 42341.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this (Tier0-FullOpts)
         122 (9.24 % of base) : 16086.dasm - System.Guid:TryParseExactD(System.ReadOnlySpan`1[ushort],byref):ubyte (Tier1)
         120 (1.16 % of base) : 66448.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
         120 (3.22 % of base) : 58179.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier1)
         110 (1.84 % of base) : 52927.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (Tier0-FullOpts)
         102 (1.59 % of base) : 53911.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,byref,Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier0-FullOpts)
         102 (2.93 % of base) : 61368.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         100 (0.99 % of base) : 19405.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
          96 (1.41 % of base) : 25960.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
          92 (10.98 % of base) : 36438.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0-FullOpts)

Top method improvements (bytes):
        -296 (-2.56 % of base) : 53010.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
        -278 (-8.96 % of base) : 14800.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (Tier0-FullOpts)
        -242 (-5.56 % of base) : 4603.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
        -206 (-5.79 % of base) : 24063.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (Tier0-FullOpts)
        -186 (-9.89 % of base) : 24772.dasm - ProtoBuf.Internal.Serializers.DefaultValueDecorator:EmitBranchIfDefaultValue(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.CodeLabel):this (Tier1)
        -136 (-10.19 % of base) : 54229.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (Tier1)
        -128 (-5.81 % of base) : 25540.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -122 (-14.84 % of base) : 3892.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (Tier0-FullOpts)
        -116 (-3.50 % of base) : 27325.dasm - Sigil.Emit`1[System.__Canon]:ValidateTryCatchFinallyBranches():this (Tier0-FullOpts)
        -110 (-2.60 % of base) : 7142.dasm - System.Net.Http.RedirectHandler+<SendAsync>d__4:MoveNext():this (Tier0-FullOpts)
        -108 (-3.46 % of base) : 42557.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
         -98 (-5.94 % of base) : 13167.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
         -96 (-5.59 % of base) : 56707.dasm - System.Reflection.Metadata.BlobWriterImpl:WriteConstant(System.Reflection.Metadata.BlobBuilder,System.Object) (Tier1)
         -92 (-5.15 % of base) : 35357.dasm - System.Xml.Linq.XContainer:GetStringValue(System.Object):System.String (Tier1)
         -88 (-2.68 % of base) : 50967.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (Tier0-FullOpts)
         -86 (-6.73 % of base) : 65581.dasm - BenchmarksGame.FannkuchRedux_9:Run(int,int) (Tier0-FullOpts)
         -86 (-8.87 % of base) : 42266.dasm - IDEAEncryption:cipher_idea(ubyte[],ubyte[],int,ushort[]) (Tier0-FullOpts)
         -86 (-2.58 % of base) : 40740.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -86 (-2.62 % of base) : 40271.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -78 (-14.03 % of base) : 3206.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (Tier1)

Top method regressions (percentages):
          40 (22.99 % of base) : 25331.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (Tier0-FullOpts)
          26 (14.77 % of base) : 17961.dasm - System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:GetStorePath(System.String):System.String (Tier1)
          44 (14.29 % of base) : 15024.dasm - System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (Tier1)
           6 (13.64 % of base) : 58834.dasm - System.Collections.IterateFor`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
          18 (13.04 % of base) : 53385.dasm - Microsoft.CodeAnalysis.ConcurrentCache`2[Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderCacheKey,System.__Canon]:TryGetValue(Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderCacheKey,byref):ubyte:this (Tier1)
           8 (12.90 % of base) : 7138.dasm - System.Diagnostics.Metrics.MeterListener:GetAllListeners():System.Collections.Generic.List`1[System.Diagnostics.Metrics.MeterListener] (Tier1)
          18 (12.50 % of base) : 15083.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:get_AttributeCache():System.Collections.Hashtable (Tier1)
          18 (12.50 % of base) : 14142.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:get_IntrinsicTypeConverters():System.Collections.Generic.Dictionary`2[System.Object,System.ComponentModel.ReflectTypeDescriptionProvider+IntrinsicTypeConverterData] (Tier1)
          20 (12.05 % of base) : 64792.dasm - System.Numerics.BigIntegerCalculator:Refresh(System.Span`1[uint],int):int (Tier1)
          20 (12.05 % of base) : 26390.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier1)
          30 (12.00 % of base) : 59197.dasm - System.Text.Json.Utf8JsonReader:ConsumeLiteralMultiSegment(System.ReadOnlySpan`1[ubyte],ubyte):ubyte:this (Tier1)
          34 (11.89 % of base) : 27661.dasm - Jil.Common.ExtensionMethods:IsConstant(System.Reflection.PropertyInfo):ubyte (Tier1)
          32 (11.85 % of base) : 41369.dasm - System.Collections.Immutable.ImmutableArray`1[int]:IndexOf(int,int,int,System.Collections.Generic.IEqualityComparer`1[int]):int:this (Tier0-FullOpts)
          36 (11.54 % of base) : 5853.dasm - System.MemoryExtensions:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int (Tier1)
          12 (11.54 % of base) : 25964.dasm - System.Text.RegularExpressions.Symbolic.CharSetSolver:<CreateBDDFromChar>g__CreateBdd|6_0(ushort):System.Text.RegularExpressions.Symbolic.BDD:this (Tier0-FullOpts)
           6 (11.11 % of base) : 13102.dasm - System.Collections.Generic.Stack`1[System.__Canon]:Pop():System.__Canon:this (Tier1)
          92 (10.98 % of base) : 36438.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0-FullOpts)
          16 (10.96 % of base) : 59929.dasm - Microsoft.CodeAnalysis.CSharp.LocalBinderFactory:VisitRankSpecifiers(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Binder):this (Tier1)
          12 (10.91 % of base) : 15111.dasm - System.SpanHelpers:Reverse[System.__Canon](byref,uint) (Tier1)
          16 (10.81 % of base) : 34503.dasm - System.HexConverter:ToString(System.ReadOnlySpan`1[ubyte],uint):System.String (Tier1)

Top method improvements (percentages):
         -42 (-19.09 % of base) : 32371.dasm - System.MathF:ILogB(float):int (Tier1)
          -8 (-19.05 % of base) : 29659.dasm - (dynamicClass):NumGetter(System.Object):int (FullOpts)
          -8 (-19.05 % of base) : 36229.dasm - (dynamicClass):Param2Getter(System.Object):ubyte (FullOpts)
          -8 (-19.05 % of base) : 29660.dasm - (dynamicClass):TextGetter(System.Object):System.String (FullOpts)
          -8 (-19.05 % of base) : 38266.dasm - System.Runtime.CompilerServices.Unsafe:Unbox[MicroBenchmarks.Serializers.SimpleStructWithProperties](System.Object):byref (Tier1)
          -8 (-18.18 % of base) : 35050.dasm - (dynamicClass):NumSetter(System.Object,int) (FullOpts)
          -8 (-18.18 % of base) : 40585.dasm - (dynamicClass):Param2Setter(System.Object,ubyte) (FullOpts)
         -58 (-16.20 % of base) : 64438.dasm - Benchstone.BenchI.XposMatrix:Inner(int[][],int) (Tier0-FullOpts)
          -8 (-16.00 % of base) : 14824.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (Tier1)
        -122 (-14.84 % of base) : 3892.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (Tier0-FullOpts)
          -8 (-14.81 % of base) : 3874.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:GetValue[int](BenchmarkDotNet.Characteristics.Characteristic`1[int]):int:this (Tier1)
         -32 (-14.81 % of base) : 67114.dasm - System.Array+SorterObjectArray:SwapIfGreater(int,int):this (Tier1)
          -8 (-14.29 % of base) : 35051.dasm - (dynamicClass):TextSetter(System.Object,System.String) (FullOpts)
          -6 (-14.29 % of base) : 19304.dasm - System.Reflection.SignatureGenericMethodParameterType:.ctor(int):this (Tier1)
          -6 (-14.29 % of base) : 19305.dasm - System.Reflection.SignatureGenericParameterType:.ctor(int):this (Tier1)
          -6 (-14.29 % of base) : 18511.dasm - System.String:GetCaseCompareOfComparisonCulture(int):int (Tier1)
         -78 (-14.03 % of base) : 3206.dasm - Newtonsoft.Json.Utilities.EnumUtils:ToUInt64(System.Object):ulong (Tier1)
          -6 (-13.64 % of base) : 34.dasm - System.Diagnostics.Debug:Assert(ubyte) (Tier1)
          -6 (-13.64 % of base) : 5790.dasm - System.Threading.PortableThreadPool+ThreadCounts:get_NumProcessingWork():short:this (Tier1)
          -6 (-13.64 % of base) : 5791.dasm - System.Threading.PortableThreadPool+ThreadCounts:get_NumThreadsGoal():short:this (Tier1)


coreclr_tests.run.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 321435778 (overridden on cmd)
Total bytes of diff: 319460476 (overridden on cmd)
Total bytes of delta: -1975302 (-0.61 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        1104 : 415928.dasm (5.33 % of base)
        1030 : 466258.dasm (3.86 % of base)
        1012 : 413570.dasm (1.30 % of base)
         914 : 407917.dasm (4.36 % of base)
         724 : 317656.dasm (1.74 % of base)
         660 : 408553.dasm (0.85 % of base)
         658 : 407927.dasm (3.30 % of base)
         622 : 317637.dasm (2.26 % of base)
         582 : 415934.dasm (2.92 % of base)
         570 : 317648.dasm (1.72 % of base)
         504 : 407922.dasm (2.27 % of base)
         472 : 415942.dasm (2.30 % of base)
         472 : 407975.dasm (2.30 % of base)
         450 : 407912.dasm (2.19 % of base)
         442 : 317645.dasm (1.26 % of base)
         434 : 463794.dasm (4.86 % of base)
         412 : 407127.dasm (0.48 % of base)
         406 : 413458.dasm (0.47 % of base)
         400 : 317653.dasm (1.18 % of base)
         380 : 317661.dasm (0.89 % of base)

Top file improvements (bytes):
       -8246 : 408303.dasm (-6.15 % of base)
       -7392 : 408308.dasm (-4.77 % of base)
       -6296 : 407899.dasm (-6.56 % of base)
       -6294 : 407963.dasm (-6.62 % of base)
       -6206 : 408298.dasm (-4.79 % of base)
       -6072 : 407995.dasm (-5.39 % of base)
       -5910 : 407931.dasm (-5.27 % of base)
       -5862 : 407663.dasm (-3.83 % of base)
       -5460 : 407670.dasm (-3.43 % of base)
       -5350 : 408313.dasm (-3.36 % of base)
       -5174 : 407649.dasm (-4.30 % of base)
       -5060 : 407873.dasm (-4.81 % of base)
       -5058 : 415908.dasm (-4.81 % of base)
       -4458 : 407656.dasm (-3.59 % of base)
       -3980 : 407462.dasm (-1.54 % of base)
       -3794 : 407467.dasm (-1.46 % of base)
       -3452 : 407859.dasm (-3.28 % of base)
       -3326 : 415910.dasm (-3.16 % of base)
       -2134 : 459659.dasm (-12.12 % of base)
       -2108 : 431806.dasm (-11.71 % of base)

93 total files with Code Size differences (52 improved, 41 regressed), 20 unchanged.

Top method regressions (bytes):
        1104 (5.33 % of base) : 415928.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
        1030 (3.86 % of base) : 466258.dasm - HFATest.TestCase:TestEntryPoint():int (FullOpts)
        1012 (1.30 % of base) : 413570.dasm - Test_10w5d.testout1:.cctor() (FullOpts)
         914 (4.36 % of base) : 407917.dasm - r4NaNmul:TestEntryPoint():int (FullOpts)
         724 (1.74 % of base) : 317656.dasm - lclfldrem:TestEntryPoint():int (FullOpts)
         660 (0.85 % of base) : 408553.dasm - Test_10w5d.testout1:.cctor() (FullOpts)
         658 (3.30 % of base) : 407927.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
         622 (2.26 % of base) : 317637.dasm - lclfldadd:TestEntryPoint():int (FullOpts)
         582 (2.92 % of base) : 415934.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
         570 (1.72 % of base) : 317648.dasm - lclfldmul:TestEntryPoint():int (FullOpts)
         504 (2.27 % of base) : 407922.dasm - r4NaNrem:TestEntryPoint():int (FullOpts)
         472 (2.30 % of base) : 415942.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
         472 (2.30 % of base) : 407975.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
         450 (2.19 % of base) : 407912.dasm - r4NaNdiv:TestEntryPoint():int (FullOpts)
         442 (1.26 % of base) : 317645.dasm - lclflddiv:TestEntryPoint():int (FullOpts)
         434 (4.86 % of base) : 463794.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (FullOpts)
         412 (0.48 % of base) : 407127.dasm - Test_1000w1d.testout1:Func_0():int (FullOpts)
         406 (0.47 % of base) : 413458.dasm - Test_1000w1d.testout1:Func_0():int (FullOpts)
         400 (1.18 % of base) : 317653.dasm - lclfldmul:TestEntryPoint():int (FullOpts)
         380 (0.89 % of base) : 317661.dasm - lclfldrem:TestEntryPoint():int (FullOpts)

Top method improvements (bytes):
       -8246 (-6.15 % of base) : 408303.dasm - u4rem:TestEntryPoint():int (FullOpts)
       -7392 (-4.77 % of base) : 408308.dasm - u8div:TestEntryPoint():int (FullOpts)
       -6296 (-6.56 % of base) : 407899.dasm - r4div:TestEntryPoint():int (FullOpts)
       -6294 (-6.62 % of base) : 407963.dasm - r8div:TestEntryPoint():int (FullOpts)
       -6206 (-4.79 % of base) : 408298.dasm - u4div:TestEntryPoint():int (FullOpts)
       -6072 (-5.39 % of base) : 407995.dasm - r8rem:TestEntryPoint():int (FullOpts)
       -5910 (-5.27 % of base) : 407931.dasm - r4rem:TestEntryPoint():int (FullOpts)
       -5862 (-3.83 % of base) : 407663.dasm - i8div:TestEntryPoint():int (FullOpts)
       -5460 (-3.43 % of base) : 407670.dasm - i8rem:TestEntryPoint():int (FullOpts)
       -5350 (-3.36 % of base) : 408313.dasm - u8rem:TestEntryPoint():int (FullOpts)
       -5174 (-4.30 % of base) : 407649.dasm - i4div:TestEntryPoint():int (FullOpts)
       -5060 (-4.81 % of base) : 407873.dasm - overldrem:TestEntryPoint():int (FullOpts)
       -5058 (-4.81 % of base) : 415908.dasm - overlddiv:TestEntryPoint():int (FullOpts)
       -4458 (-3.59 % of base) : 407656.dasm - i4rem:TestEntryPoint():int (FullOpts)
       -3980 (-1.54 % of base) : 407462.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
       -3794 (-1.46 % of base) : 407467.dasm - decimalrem:TestEntryPoint():int (FullOpts)
       -3452 (-3.28 % of base) : 407859.dasm - overlddiv:TestEntryPoint():int (FullOpts)
       -3326 (-3.16 % of base) : 415910.dasm - overldrem:TestEntryPoint():int (FullOpts)
       -2134 (-12.12 % of base) : 459659.dasm - Generated906:CalliTest() (FullOpts)
       -2108 (-11.71 % of base) : 431806.dasm - Generated1064:CalliTest() (FullOpts)

Top method regressions (percentages):
          82 (110.81 % of base) : 409902.dasm - Test_10w5d.testout1:Func_0_5_3_6_6():double (FullOpts)
          82 (110.81 % of base) : 414713.dasm - Test_10w5d.testout1:Func_0_5_3_6_6():double (FullOpts)
         262 (70.05 % of base) : 415389.dasm - Test_10w5d.testout1:Func_0_2_3_4():double (FullOpts)
         262 (69.31 % of base) : 410579.dasm - Test_10w5d.testout1:Func_0_2_3_4():double (FullOpts)
         128 (65.31 % of base) : 411233.dasm - structinreg.Program4:test2(long,structinreg.Test42,structinreg.Test42,structinreg.Test42,structinreg.Test42):long (FullOpts)
         128 (65.31 % of base) : 411237.dasm - structinreg.Program4:test6(long,structinreg.Test42,structinreg.Test42,structinreg.Test42,structinreg.Test42):long (FullOpts)
          24 (63.16 % of base) : 424200.dasm - foo:TestEntryPoint() (FullOpts)
          24 (63.16 % of base) : 424110.dasm - otherClass+C:.cctor() (FullOpts)
          24 (60.00 % of base) : 416276.dasm - Application:Display(int,System.String,int) (FullOpts)
         122 (54.46 % of base) : 411232.dasm - structinreg.Program4:test1(long,structinreg.Test41,structinreg.Test41,structinreg.Test41,structinreg.Test41):long (FullOpts)
         122 (54.46 % of base) : 411236.dasm - structinreg.Program4:test5(long,structinreg.Test41,structinreg.Test41,structinreg.Test41,structinreg.Test41):long (FullOpts)
          16 (50.00 % of base) : 424202.dasm - foo:div() (FullOpts)
          16 (44.44 % of base) : 422710.dasm - N.C:TestEntryPoint():int (FullOpts)
         114 (43.18 % of base) : 415423.dasm - Test_10w5d.testout1:Func_0_2_2_5():float (FullOpts)
          40 (42.55 % of base) : 416390.dasm - Bug426480:foo() (FullOpts)
         108 (42.19 % of base) : 410125.dasm - Test_10w5d.testout1:Func_0_4_4_4():double (FullOpts)
          26 (41.94 % of base) : 411414.dasm - Test4:.cctor() (FullOpts)
         114 (41.61 % of base) : 410613.dasm - Test_10w5d.testout1:Func_0_2_2_5():float (FullOpts)
         240 (41.52 % of base) : 407609.dasm - Test_FloatOvfToInt2.FloatOvfToInt:TestValuesDoubleInt():int (FullOpts)
         240 (40.96 % of base) : 407611.dasm - Test_FloatOvfToInt2.FloatOvfToInt:TestValuesDoubleIntImport():int (FullOpts)

Top method improvements (percentages):
        -160 (-18.18 % of base) : 399513.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:IsDefault(System.Object):ubyte (FullOpts)
       -1488 (-16.90 % of base) : 462321.dasm - Generated992:MethodCallingTest() (FullOpts)
       -1514 (-16.26 % of base) : 456966.dasm - Generated819:MethodCallingTest() (FullOpts)
       -1332 (-16.23 % of base) : 462179.dasm - Generated987:MethodCallingTest() (FullOpts)
         -58 (-16.20 % of base) : 380293.dasm - Benchstone.BenchI.XposMatrix:Inner(int[][],int) (FullOpts)
         -58 (-16.20 % of base) : 155086.dasm - Benchstone.BenchI.XposMatrix:Inner(int[][],int) (Tier0-FullOpts)
       -1342 (-16.13 % of base) : 462125.dasm - Generated985:MethodCallingTest() (FullOpts)
       -1322 (-16.03 % of base) : 462004.dasm - Generated980:MethodCallingTest() (FullOpts)
          -8 (-16.00 % of base) : 369961.dasm - BringUpTest_Unbox:Unbox(System.Object):int (FullOpts)
          -8 (-16.00 % of base) : 378630.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_DynamicCodeGeneration():ubyte (FullOpts)
          -8 (-16.00 % of base) : 156317.dasm - Program:CastToGenericStruct[int](System.Object):GenericStruct`1[int] (Tier1)
       -1342 (-15.97 % of base) : 443157.dasm - Generated1406:MethodCallingTest() (FullOpts)
       -1220 (-15.93 % of base) : 459883.dasm - Generated914:MethodCallingTest() (FullOpts)
       -1436 (-15.90 % of base) : 429912.dasm - Generated1021:MethodCallingTest() (FullOpts)
       -1406 (-15.89 % of base) : 429544.dasm - Generated1012:MethodCallingTest() (FullOpts)
          -6 (-15.79 % of base) : 479658.dasm - Tracing.Tests.EventListenerThreadPool+<>c:<TestEntryPoint>b__0_0(System.Object,ubyte):this (FullOpts)
       -1412 (-15.76 % of base) : 456939.dasm - Generated818:MethodCallingTest() (FullOpts)
       -1320 (-15.75 % of base) : 458895.dasm - Generated883:MethodCallingTest() (FullOpts)
       -1318 (-15.74 % of base) : 462152.dasm - Generated986:MethodCallingTest() (FullOpts)
       -1046 (-15.64 % of base) : 452320.dasm - Generated659:MethodCallingTest() (FullOpts)


libraries.crossgen2.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 37762784 (overridden on cmd)
Total bytes of diff: 37766522 (overridden on cmd)
Total bytes of delta: 3738 (0.01 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         228 : 16423.dasm (0.19 % of base)
         196 : 162301.dasm (5.28 % of base)
         160 : 161959.dasm (6.57 % of base)
         160 : 177288.dasm (6.57 % of base)
         142 : 162351.dasm (4.80 % of base)
         142 : 162309.dasm (4.80 % of base)
         134 : 88315.dasm (6.71 % of base)
         112 : 146530.dasm (1.61 % of base)
         108 : 65891.dasm (6.24 % of base)
         106 : 162197.dasm (2.74 % of base)
          86 : 89317.dasm (1.54 % of base)
          80 : 36976.dasm (4.69 % of base)
          78 : 146160.dasm (5.36 % of base)
          78 : 161028.dasm (4.77 % of base)
          74 : 113991.dasm (3.34 % of base)
          74 : 1900.dasm (7.52 % of base)
          74 : 190201.dasm (2.48 % of base)
          70 : 120295.dasm (5.15 % of base)
          68 : 34736.dasm (1.19 % of base)
          68 : 79812.dasm (2.86 % of base)

Top file improvements (bytes):
        -240 : 106160.dasm (-15.50 % of base)
        -226 : 161214.dasm (-3.86 % of base)
        -220 : 45276.dasm (-15.13 % of base)
        -178 : 126992.dasm (-7.37 % of base)
        -158 : 161213.dasm (-4.31 % of base)
        -150 : 171265.dasm (-8.40 % of base)
        -150 : 163076.dasm (-9.27 % of base)
        -150 : 199331.dasm (-8.45 % of base)
        -150 : 74600.dasm (-8.38 % of base)
        -136 : 76326.dasm (-4.02 % of base)
        -130 : 160996.dasm (-7.00 % of base)
        -130 : 174500.dasm (-6.96 % of base)
        -130 : 199582.dasm (-5.87 % of base)
        -130 : 201464.dasm (-8.31 % of base)
        -128 : 61136.dasm (-3.25 % of base)
        -122 : 36677.dasm (-2.74 % of base)
        -120 : 77576.dasm (-5.41 % of base)
        -120 : 137686.dasm (-5.88 % of base)
        -104 : 42684.dasm (-2.30 % of base)
        -102 : 137816.dasm (-0.46 % of base)

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

Top method regressions (bytes):
         228 (0.19 % of base) : 16423.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         196 (5.28 % of base) : 162301.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
         160 (6.57 % of base) : 161959.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
         160 (6.57 % of base) : 177288.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
         142 (4.80 % of base) : 162351.dasm - System.Data.RBTree`1[int]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)
         142 (4.80 % of base) : 162309.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)
         134 (6.71 % of base) : 88315.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAttributeData:GetTargetAttributeSignatureIndex(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.AttributeDescription):int:this (FullOpts)
         112 (1.61 % of base) : 146530.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         108 (6.24 % of base) : 65891.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler+DocumentationCommentWalker:GetSubstitutedText(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordPropertySymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.XmlElementSyntax],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode],System.Text.StringBuilder) (FullOpts)
         106 (2.74 % of base) : 162197.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (FullOpts)
          86 (1.54 % of base) : 89317.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberFieldSymbol:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.FieldDeclarationSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag) (FullOpts)
          80 (4.69 % of base) : 36976.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindLocalFunctionStatement(Microsoft.CodeAnalysis.CSharp.Syntax.LocalFunctionStatementSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (FullOpts)
          78 (4.77 % of base) : 161028.dasm - System.Data.SqlTypes.SqlDecimal:MpDiv(System.ReadOnlySpan`1[uint],int,System.Span`1[uint],int,System.Span`1[uint],byref,System.Span`1[uint],byref) (FullOpts)
          78 (5.36 % of base) : 146160.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectReader:ParseArrayMember(System.Runtime.Serialization.Formatters.Binary.ParseRecord):this (FullOpts)
          74 (3.34 % of base) : 113991.dasm - ILCompiler.Reflection.ReadyToRun.R2RSignatureDecoder`3[System.__Canon,System.__Canon,System.__Canon]:ParseType():System.__Canon:this (FullOpts)
          74 (2.48 % of base) : 190201.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):this (FullOpts)
          74 (7.52 % of base) : 1900.dasm - System.Convert:TryFromBase64Chars(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (FullOpts)
          70 (5.15 % of base) : 120295.dasm - System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[uint],System.Span`1[uint]) (FullOpts)
          68 (1.19 % of base) : 34736.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          68 (2.86 % of base) : 79812.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)

Top method improvements (bytes):
        -240 (-15.50 % of base) : 106160.dasm - Microsoft.CodeAnalysis.VisualBasic.ObjectDisplay.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -226 (-3.86 % of base) : 161214.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -220 (-15.13 % of base) : 45276.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
        -178 (-7.37 % of base) : 126992.dasm - Microsoft.CSharp.RuntimeBinder.SymbolTable:SetParameterAttributes(Microsoft.CSharp.RuntimeBinder.Semantics.MethodOrPropertySymbol,System.Reflection.ParameterInfo[],int) (FullOpts)
        -158 (-4.31 % of base) : 161213.dasm - System.Data.Common.SqlConvert:ChangeType2(System.Object,int,System.Type,System.IFormatProvider):System.Object (FullOpts)
        -150 (-9.27 % of base) : 163076.dasm - Newtonsoft.Json.JsonValidatingReader:ValidateInteger(Newtonsoft.Json.Schema.JsonSchemaModel):this (FullOpts)
        -150 (-8.40 % of base) : 171265.dasm - System.Resources.Extensions.PreserializedResourceWriter:WriteValue(int,System.Object,System.IO.BinaryWriter) (FullOpts)
        -150 (-8.45 % of base) : 199331.dasm - System.Resources.ResourceWriter:WriteValue(int,System.Object,System.IO.BinaryWriter) (FullOpts)
        -150 (-8.38 % of base) : 74600.dasm - System.Xml.Schema.XmlUntypedConverter:ToString(System.Object,System.Xml.IXmlNamespaceResolver):System.String:this (FullOpts)
        -136 (-4.02 % of base) : 76326.dasm - System.Xml.Serialization.XmlSerializationWriter:WriteTypedPrimitive(System.String,System.String,System.Object,ubyte):this (FullOpts)
        -130 (-6.96 % of base) : 174500.dasm - Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts)
        -130 (-8.31 % of base) : 201464.dasm - Microsoft.Extensions.Logging.Console.JsonConsoleFormatter:WriteItem(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.KeyValuePair`2[System.String,System.Object]) (FullOpts)
        -130 (-7.00 % of base) : 160996.dasm - System.Data.UnaryNode:EvalUnaryOp(int,System.Object):System.Object:this (FullOpts)
        -130 (-5.87 % of base) : 199582.dasm - System.Runtime.InteropServices.Marshalling.ComVariantMarshaller+RefPropagate:ToUnmanaged():System.Runtime.InteropServices.Marshalling.ComVariant:this (FullOpts)
        -128 (-3.25 % of base) : 61136.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
        -122 (-2.74 % of base) : 36677.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindInterpolatedStringHandlerInMemberCall(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -120 (-5.88 % of base) : 137686.dasm - Microsoft.VisualBasic.CompilerServices.Operators:NegateObject(System.Object):System.Object (FullOpts)
        -120 (-5.41 % of base) : 77576.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -104 (-2.30 % of base) : 42684.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,ubyte,ubyte,ubyte,int,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState],ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitResult]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (FullOpts)
        -102 (-0.46 % of base) : 137816.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)

Top method regressions (percentages):
          12 (28.57 % of base) : 115944.dasm - Internal.TypeSystem.Ecma.EcmaMethod:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
          12 (28.57 % of base) : 115977.dasm - Internal.TypeSystem.Ecma.EcmaType:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
          12 (28.57 % of base) : 87448.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeClass():Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
          12 (28.57 % of base) : 87449.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEAttributeData:get_AttributeConstructor():Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this (FullOpts)
          12 (28.57 % of base) : 114390.dasm - System.Diagnostics.Activity:get_TraceId():System.Diagnostics.ActivityTraceId:this (FullOpts)
          12 (28.57 % of base) : 196697.dasm - System.Diagnostics.TextWriterTraceListener:get_Writer():System.IO.TextWriter:this (FullOpts)
          12 (28.57 % of base) : 173217.dasm - System.Net.Security.SafeCredentialReference:DisposeInternal():this (FullOpts)
          12 (26.09 % of base) : 133046.dasm - System.Reflection.Emit.PropertyBuilderImpl:GetConstantValue():System.Object:this (FullOpts)
          64 (25.00 % of base) : 71128.dasm - System.Xml.XmlUtf8RawTextWriter:WriteCData(System.String):this (FullOpts)
          12 (23.08 % of base) : 114393.dasm - System.Diagnostics.Activity:get_ActivityTraceFlags():int:this (FullOpts)
          12 (21.43 % of base) : 152430.dasm - System.ComponentModel.DataAnnotations.FileExtensionsAttribute:get_Extensions():System.String:this (FullOpts)
          12 (20.69 % of base) : 29074.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ModuleLoadUnloadTraceData:get_NativePdbAge():int:this (FullOpts)
          12 (20.69 % of base) : 23698.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.ProcessTraceData:get_ExitStatus():int:this (FullOpts)
          12 (20.69 % of base) : 24064.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.TcpIpTraceData:get_seqnum():int:this (FullOpts)
          12 (20.69 % of base) : 23444.dasm - Microsoft.Diagnostics.Tracing.Parsers.MicrosoftWindowsTCPIP.TcpTcbStartTimerArgs:get_Processor():int:this (FullOpts)
          24 (20.69 % of base) : 161388.dasm - System.Data.DataColumn:CheckNullable(System.Data.DataRow):this (FullOpts)
          12 (20.69 % of base) : 143038.dasm - System.Diagnostics.Process:Dispose(ubyte):this (FullOpts)
          20 (20.41 % of base) : 14147.dasm - Microsoft.Diagnostics.Tracing.Etlx.TraceLog:GetContainerID(uint):System.String:this (FullOpts)
          12 (20.00 % of base) : 24204.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.ImageLoadTraceData:get_ImageChecksum():int:this (FullOpts)
          12 (20.00 % of base) : 139040.dasm - System.IO.Compression.SubReadStream:get_CanRead():ubyte:this (FullOpts)

Top method improvements (percentages):
         -20 (-20.41 % of base) : 169822.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
         -20 (-20.41 % of base) : 191537.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]) (FullOpts)
         -36 (-18.37 % of base) : 79201.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
         -20 (-16.67 % of base) : 169826.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon],System.Comparison`1[System.__Canon]) (FullOpts)
         -20 (-16.67 % of base) : 191541.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:Sort[System.__Canon](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon],System.Comparison`1[System.__Canon]) (FullOpts)
         -36 (-15.93 % of base) : 585.dasm - System.MathF:ILogB(float):int (FullOpts)
        -240 (-15.50 % of base) : 106160.dasm - Microsoft.CodeAnalysis.VisualBasic.ObjectDisplay.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
         -20 (-15.15 % of base) : 193153.dasm - System.Xml.Linq.XObject:GetSaveOptionsFromAnnotations():int:this (FullOpts)
        -220 (-15.13 % of base) : 45276.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:FormatPrimitive(System.Object,int):System.String (FullOpts)
         -94 (-13.39 % of base) : 161973.dasm - System.Data.RBTree`1[System.__Canon]:LeftRotate(int,int,int):int:this (FullOpts)
         -94 (-13.39 % of base) : 161974.dasm - System.Data.RBTree`1[System.__Canon]:RightRotate(int,int,int):int:this (FullOpts)
         -32 (-13.22 % of base) : 13090.dasm - Diagnostics.Tracing.StackSources.AggregateStackSource:ConvertSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,int):Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample:this (FullOpts)
          -6 (-13.04 % of base) : 80979.dasm - System.Xml.Xsl.XsltOld.PrefixQName:ValidatePrefix(System.String):ubyte (FullOpts)
         -48 (-12.63 % of base) : 179457.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)
         -26 (-11.61 % of base) : 186701.dasm - Microsoft.CodeAnalysis.AnalyzerConfig+SectionNameLexer:Lex():int:this (FullOpts)
         -22 (-11.22 % of base) : 37409.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:<GetInvocationArgumentsForEscape>g__getArgList|24_3(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis+MixableDestination],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis+EscapeArgument]) (FullOpts)
         -24 (-11.21 % of base) : 161239.dasm - System.Data.RBTree`1[System.__Canon]:IndexOf(int,System.__Canon):int:this (FullOpts)
         -26 (-10.92 % of base) : 116084.dasm - Internal.NativeFormat.TypeHashingAlgorithms+HashCodeBuilder:Append(System.String):this (FullOpts)
         -16 (-10.53 % of base) : 84682.dasm - System.Reflection.Internal.ReadOnlyUnmanagedMemoryStream:Read(System.Span`1[ubyte]):int:this (FullOpts)
         -10 (-10.42 % of base) : 113198.dasm - ILCompiler.Reflection.ReadyToRun.NativeReader:DecodeVarLengthUnsigned(ubyte[],int,byref):uint (FullOpts)


libraries.pmi.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 49767906 (overridden on cmd)
Total bytes of diff: 49674496 (overridden on cmd)
Total bytes of delta: -93410 (-0.19 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         562 : 39067.dasm (2.07 % of base)
         490 : 40662.dasm (1.07 % of base)
         434 : 167578.dasm (11.40 % of base)
         324 : 263558.dasm (3.71 % of base)
         278 : 245365.dasm (7.66 % of base)
         270 : 38746.dasm (0.88 % of base)
         250 : 161648.dasm (3.91 % of base)
         242 : 95171.dasm (2.08 % of base)
         236 : 62517.dasm (4.65 % of base)
         232 : 56545.dasm (3.12 % of base)
         224 : 170031.dasm (6.56 % of base)
         224 : 161985.dasm (5.68 % of base)
         208 : 58472.dasm (6.78 % of base)
         170 : 95207.dasm (2.30 % of base)
         166 : 283000.dasm (10.29 % of base)
         160 : 213420.dasm (9.51 % of base)
         148 : 235601.dasm (2.59 % of base)
         146 : 230008.dasm (3.79 % of base)
         138 : 98213.dasm (7.27 % of base)
         136 : 129.dasm (1.73 % of base)

Top file improvements (bytes):
        -370 : 193195.dasm (-1.78 % of base)
        -278 : 258700.dasm (-8.63 % of base)
        -276 : 258611.dasm (-8.22 % of base)
        -234 : 102704.dasm (-3.29 % of base)
        -222 : 161561.dasm (-3.32 % of base)
        -222 : 161545.dasm (-3.32 % of base)
        -220 : 170445.dasm (-2.56 % of base)
        -218 : 161587.dasm (-3.60 % of base)
        -212 : 61379.dasm (-9.71 % of base)
        -206 : 253896.dasm (-11.32 % of base)
        -196 : 86320.dasm (-7.04 % of base)
        -194 : 170444.dasm (-3.62 % of base)
        -194 : 208654.dasm (-7.42 % of base)
        -194 : 227279.dasm (-5.58 % of base)
        -190 : 277890.dasm (-6.99 % of base)
        -176 : 121461.dasm (-5.07 % of base)
        -168 : 54286.dasm (-2.38 % of base)
        -164 : 139415.dasm (-3.91 % of base)
        -164 : 194558.dasm (-5.53 % of base)
        -160 : 224494.dasm (-17.09 % of base)

90 total files with Code Size differences (47 improved, 43 regressed), 20 unchanged.

Top method regressions (bytes):
         562 (2.07 % of base) : 39067.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         490 (1.07 % of base) : 40662.dasm - Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         434 (11.40 % of base) : 167578.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (FullOpts)
         324 (3.71 % of base) : 263558.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (FullOpts)
         278 (7.66 % of base) : 245365.dasm - System.Globalization.FormatProvider+Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
         270 (0.88 % of base) : 38746.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrPrivateTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         250 (3.91 % of base) : 161648.dasm - System.Numerics.Tensors.TensorPrimitives+MinMagnitudeOperator`1[short]:Invoke(System.Runtime.Intrinsics.Vector128`1[short]):short (FullOpts)
         242 (2.08 % of base) : 95171.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindFieldAndPropertyInitializers(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.FieldOrPropertyInitializer]],Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundInitializer] (FullOpts)
         236 (4.65 % of base) : 62517.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalAccess(Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess,byref):this (FullOpts)
         232 (3.12 % of base) : 56545.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
         224 (6.56 % of base) : 170031.dasm - System.Data.Common.DbDataAdapter:Update(System.Data.DataRow[],System.Data.Common.DataTableMapping):int:this (FullOpts)
         224 (5.68 % of base) : 161985.dasm - System.Numerics.Tensors.TensorPrimitives+RoundToEvenOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         208 (6.78 % of base) : 58472.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|199_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (FullOpts)
         170 (2.30 % of base) : 95207.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureAndProduceBoundNode(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.VisualBasic.BoundTypeExpression,Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.Location):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         166 (10.29 % of base) : 283000.dasm - System.Formats.Asn1.AsnDecoder:CopyConstructedOctetString(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ubyte],ubyte,ubyte,byref):int (FullOpts)
         160 (9.51 % of base) : 213420.dasm - System.Linq.Expressions.ExpressionStringBuilder:VisitUnary(System.Linq.Expressions.UnaryExpression):System.Linq.Expressions.Expression:this (FullOpts)
         148 (2.59 % of base) : 235601.dasm - ILCompiler.Reflection.ReadyToRun.SignatureDecoder:ParseSignature(int,System.Text.StringBuilder):ILCompiler.Reflection.ReadyToRun.ReadyToRunSignature:this (FullOpts)
         146 (3.79 % of base) : 230008.dasm - Microsoft.Build.BackEnd.Scheduler:WriteNodeUtilizationGraph(Microsoft.Build.BackEnd.Logging.ILoggingService,Microsoft.Build.Framework.BuildEventContext,ubyte):this (FullOpts)
         138 (7.27 % of base) : 98213.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAttributeData:GetTargetAttributeSignatureIndex(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.AttributeDescription):int:this (FullOpts)
         136 (1.73 % of base) : 129.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)

Top method improvements (bytes):
        -370 (-1.78 % of base) : 193195.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -278 (-8.63 % of base) : 258700.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -276 (-8.22 % of base) : 258611.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -234 (-3.29 % of base) : 102704.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation:FindEntryPoint(System.Threading.CancellationToken,byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol:this (FullOpts)
        -222 (-3.32 % of base) : 161545.dasm - System.Numerics.Tensors.TensorPrimitives+IndexOfMaxOperator`1[ubyte]:Invoke(byref,System.Runtime.Intrinsics.Vector512`1[ubyte],byref,System.Runtime.Intrinsics.Vector512`1[ubyte]) (FullOpts)
        -222 (-3.32 % of base) : 161561.dasm - System.Numerics.Tensors.TensorPrimitives+IndexOfMinOperator`1[ubyte]:Invoke(byref,System.Runtime.Intrinsics.Vector512`1[ubyte],byref,System.Runtime.Intrinsics.Vector512`1[ubyte]) (FullOpts)
        -220 (-2.56 % of base) : 170445.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts)
        -218 (-3.60 % of base) : 161587.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(System.Runtime.Intrinsics.Vector128`1[ubyte]):ubyte (FullOpts)
        -212 (-9.71 % of base) : 61379.dasm - Microsoft.CodeAnalysis.CSharp.ClsComplianceChecker:TryGetCollisionErrorCode(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol,byref):ubyte (FullOpts)
        -206 (-11.32 % of base) : 253896.dasm - System.IO.Packaging.InternalRelationshipCollection:ParseRelationshipPart(System.IO.Packaging.PackagePart):this (FullOpts)
        -196 (-7.04 % of base) : 86320.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedConversionSymbol:.ctor(int,Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.String,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.Syntax.ConversionOperatorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -194 (-5.58 % of base) : 227279.dasm - Microsoft.Build.Graph.GraphBuilder:ExpandSolutionIfPresent(System.Collections.Generic.IReadOnlyCollection`1[Microsoft.Build.Graph.ProjectGraphEntryPoint]):System.ValueTuple`2[System.Collections.Generic.IReadOnlyCollection`1[Microsoft.Build.Graph.ProjectGraphEntryPoint],System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.Collections.Generic.IReadOnlyCollection`1[System.String]]]:this (FullOpts)
        -194 (-7.42 % of base) : 208654.dasm - Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts)
        -194 (-3.62 % of base) : 170444.dasm - System.Data.Common.SqlConvert:ChangeType2(System.Object,int,System.Type,System.IFormatProvider):System.Object (FullOpts)
        -190 (-6.99 % of base) : 277890.dasm - Xunit.Runner.Reporters.JsonExtentions:.cctor() (FullOpts)
        -176 (-5.07 % of base) : 121461.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager+AnonymousTypePublicSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager,Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor):this (FullOpts)
        -168 (-2.38 % of base) : 54286.dasm - Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime:SetupCallbacks(Microsoft.Diagnostics.Tracing.TraceEventDispatcher) (FullOpts)
        -164 (-5.53 % of base) : 194558.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:ForAttributeWithSimpleName(System.String,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Threading.CancellationToken,ubyte]):Microsoft.CodeAnalysis.IncrementalValuesProvider`1[System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode]]]:this (FullOpts)
        -164 (-3.91 % of base) : 139415.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteValue(System.Object):this (FullOpts)
        -160 (-6.18 % of base) : 273109.dasm - ILCompiler.Diagnostics.PdbWriter:WriteFileChecksums():this (FullOpts)

Top method regressions (percentages):
          32 (25.40 % of base) : 220625.dasm - System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
          32 (25.40 % of base) : 148658.dasm - System.Diagnostics.SwitchElement:ResetProperties():this (FullOpts)
          62 (24.80 % of base) : 126751.dasm - System.Xml.XmlUtf8RawTextWriter:WriteCData(System.String):this (FullOpts)
          40 (22.99 % of base) : 33446.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter (FullOpts)
          96 (21.43 % of base) : 24034.dasm - Microsoft.FSharp.Collections.ArrayModule+Parallel:Partition[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,ubyte],System.__Canon[]):System.Tuple`2[System.__Canon,System.__Canon] (FullOpts)
          28 (21.21 % of base) : 135946.dasm - System.Xml.Xsl.Runtime.XmlQueryOutput:WriteStartElementUnchecked(System.String):this (FullOpts)
          24 (21.05 % of base) : 211095.dasm - System.Security.Cryptography.Pkcs.CmsSignature:.cctor() (FullOpts)
          38 (20.65 % of base) : 12123.dasm - System.Net.Http.HttpClientHandler:get_DangerousAcceptAnyServerCertificateValidator():System.Func`5[System.Net.Http.HttpRequestMessage,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Chain,int,ubyte] (FullOpts)
          46 (20.00 % of base) : 284096.dasm - System.IO.IsolatedStorage.Helper:GetRootDirectory(int):System.String (FullOpts)
          32 (19.75 % of base) : 230278.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcTaskHost:GetTaskHostNameFromHostContext(int):System.String (FullOpts)
          28 (19.44 % of base) : 203261.dasm - Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)
          28 (19.44 % of base) : 243702.dasm - System.Xml.Linq.XObjectChangeEventArgs:.cctor() (FullOpts)
          40 (18.69 % of base) : 14434.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
          46 (18.40 % of base) : 48940.dasm - Microsoft.Diagnostics.Tracing.Parsers.GCDynamic.GCDynamicTraceEvent:SelectEventMetadata():this (FullOpts)
          28 (17.95 % of base) : 91130.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:.cctor() (FullOpts)
          28 (17.95 % of base) : 214253.dasm - System.Linq.Expressions.Interpreter.ThrowInstruction:.cctor() (FullOpts)
          26 (17.81 % of base) : 191971.dasm - Microsoft.CodeAnalysis.CachingFactory`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:TryGetValue(System.Numerics.Vector`1[float],byref):ubyte:this (FullOpts)
           6 (17.65 % of base) : 123451.dasm - Microsoft.CodeAnalysis.VisualBasic.IteratorRewriter+IteratorMethodToClassRewriter:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
           6 (17.65 % of base) : 115188.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
           6 (17.65 % of base) : 115207.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

Top method improvements (percentages):
         -36 (-20.00 % of base) : 128225.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
          -8 (-19.05 % of base) : 8515.dasm - System.Runtime.CompilerServices.Unsafe:Unbox[ubyte](System.Object):byref (FullOpts)
          -8 (-18.18 % of base) : 172976.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[int]:<Cast>b__0():int:this (FullOpts)
          -8 (-18.18 % of base) : 172974.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[ubyte]:<Cast>b__0():ubyte:this (FullOpts)
          -8 (-18.18 % of base) : 193302.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
          -8 (-18.18 % of base) : 29646.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[int](System.Object):int (FullOpts)
          -8 (-18.18 % of base) : 29644.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[ubyte](System.Object):ubyte (FullOpts)
          -8 (-18.18 % of base) : 271762.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[int]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):int:this (FullOpts)
          -8 (-18.18 % of base) : 271756.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[ubyte]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):ubyte:this (FullOpts)
          -8 (-18.18 % of base) : 136888.dasm - System.Xml.Xsl.IlGen.StorageDescriptor:get_ParameterLocation():int:this (FullOpts)
          -8 (-18.18 % of base) : 136514.dasm - System.Xml.Xsl.Qil.QilLiteral:op_Implicit(System.Xml.Xsl.Qil.QilLiteral):int (FullOpts)
          -8 (-17.39 % of base) : 172977.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[double]:<Cast>b__0():double:this (FullOpts)
          -8 (-17.39 % of base) : 172975.dasm - CSharpx.Either+<>c__DisplayClass13_0`1[short]:<Cast>b__0():short:this (FullOpts)
          -8 (-17.39 % of base) : 29647.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[double](System.Object):double (FullOpts)
          -8 (-17.39 % of base) : 29645.dasm - Microsoft.FSharp.Core.Operators+Unchecked:Unbox[short](System.Object):short (FullOpts)
          -8 (-17.39 % of base) : 271763.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[double]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):double:this (FullOpts)
          -8 (-17.39 % of base) : 271761.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider+<>c__1`1[short]:<GetMetadataViewProvider>b__1_0(System.Collections.Generic.IDictionary`2[System.String,System.Object]):short:this (FullOpts)
          -8 (-17.39 % of base) : 8426.dasm - System.Runtime.CompilerServices.StrongBox`1[ubyte]:System.Runtime.CompilerServices.IStrongBox.set_Value(System.Object):this (FullOpts)
          -8 (-17.39 % of base) : 136516.dasm - System.Xml.Xsl.Qil.QilLiteral:op_Implicit(System.Xml.Xsl.Qil.QilLiteral):double (FullOpts)
        -160 (-17.09 % of base) : 224494.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:IsDefault(System.Object):ubyte (FullOpts)


libraries_tests.run.linux.arm.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 237219854 (overridden on cmd)
Total bytes of diff: 236977214 (overridden on cmd)
Total bytes of delta: -242640 (-0.10 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         546 : 330640.dasm (5.89 % of base)
         492 : 144566.dasm (4.45 % of base)
         474 : 543063.dasm (5.79 % of base)
         456 : 304044.dasm (4.98 % of base)
         434 : 257268.dasm (11.40 % of base)
         412 : 21262.dasm (5.84 % of base)
         404 : 67294.dasm (4.11 % of base)
         390 : 99470.dasm (3.92 % of base)
         362 : 107719.dasm (3.74 % of base)
         348 : 359797.dasm (3.63 % of base)
         334 : 708457.dasm (3.48 % of base)
         290 : 486756.dasm (8.13 % of base)
         238 : 654058.dasm (2.19 % of base)
         234 : 695238.dasm (17.08 % of base)
         224 : 65476.dasm (2.05 % of base)
         222 : 59544.dasm (13.81 % of base)
         220 : 169803.dasm (8.76 % of base)
         212 : 467321.dasm (3.78 % of base)
         210 : 221588.dasm (1.97 % of base)
         210 : 695608.dasm (8.64 % of base)

Top file improvements (bytes):
       -1604 : 390499.dasm (-10.92 % of base)
        -490 : 677971.dasm (-4.07 % of base)
        -318 : 555808.dasm (-3.01 % of base)
        -304 : 563545.dasm (-3.34 % of base)
        -290 : 16343.dasm (-2.48 % of base)
        -284 : 407104.dasm (-2.93 % of base)
        -282 : 553069.dasm (-2.98 % of base)
        -276 : 159297.dasm (-5.15 % of base)
        -272 : 676611.dasm (-4.52 % of base)
        -262 : 385021.dasm (-3.75 % of base)
        -260 : 138655.dasm (-8.38 % of base)
        -260 : 706364.dasm (-2.58 % of base)
        -244 : 694989.dasm (-3.38 % of base)
        -244 : 279741.dasm (-2.44 % of base)
        -240 : 527545.dasm (-5.96 % of base)
        -238 : 197000.dasm (-2.57 % of base)
        -238 : 199874.dasm (-0.94 % of base)
        -234 : 321737.dasm (-3.30 % of base)
        -226 : 622922.dasm (-2.22 % of base)
        -224 : 444487.dasm (-9.66 % of base)

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

Top method regressions (bytes):
         546 (5.89 % of base) : 330640.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         492 (4.45 % of base) : 144566.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
         474 (5.79 % of base) : 543063.dasm - System.Security.Cryptography.EcDiffieHellman.Tests.ECDiffieHellmanTests:Verify(byref,byref,System.Security.Cryptography.ECCurve,ubyte[]) (Tier1)
         456 (4.98 % of base) : 304044.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         434 (11.40 % of base) : 257268.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (Tier0-FullOpts)
         412 (5.84 % of base) : 21262.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Instrumented Tier1)
         404 (4.11 % of base) : 67294.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         390 (3.92 % of base) : 99470.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         362 (3.74 % of base) : 107719.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         348 (3.63 % of base) : 359797.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         334 (3.48 % of base) : 708457.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         290 (8.13 % of base) : 486756.dasm - System.Globalization.FormatProvider+Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
         238 (2.19 % of base) : 654058.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:InvalidJsonDueToWritingMultipleValues(System.Text.Json.JsonWriterOptions,ubyte):this (Tier1)
         234 (17.08 % of base) : 695238.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax:Update(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.NameEqualsSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax:this (Tier1)
         224 (2.05 % of base) : 65476.dasm - System.IO.Tests.StreamConformanceTests+<ValidateMisuseExceptionsAsync>d__50:MoveNext():this (Tier0-FullOpts)
         222 (13.81 % of base) : 59544.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax:Update(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.NameEqualsSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax:this (Tier1)
         220 (8.76 % of base) : 169803.dasm - Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderFactoryVisitor:VisitTypeDeclarationCore(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):Microsoft.CodeAnalysis.CSharp.Binder:this (Tier1)
         212 (3.78 % of base) : 467321.dasm - System.Reflection.Metadata.Decoding.Tests.SignatureDecoderTests:SimpleSignatureProviderCoverage():this (Tier0-FullOpts)
         210 (8.64 % of base) : 695608.dasm - Microsoft.CodeAnalysis.Options.SolutionOptionSet:GetInternalOptionValue(Microsoft.CodeAnalysis.Options.OptionKey):System.Object:this (Tier1)
         210 (1.97 % of base) : 221588.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)

Top method improvements (bytes):
       -1604 (-10.92 % of base) : 390499.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -490 (-4.07 % of base) : 677971.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitExpressionConditional|13(System.Text.RegularExpressions.RegexNode):this (Tier1)
        -318 (-3.01 % of base) : 555808.dasm - System.Security.Cryptography.Tests.ECKeyFileTests`1[System.__Canon]:ReadWriteKey(System.String,byref,System.Security.Cryptography.Tests.ECKeyFileTests`1+ReadKeyAction[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Security.Cryptography.Tests.ECKeyFileTests`1+WriteKeyToSpanFunc[System.__Canon],ubyte,System.Func`2[System.__Canon,System.__Canon],System.Security.Cryptography.Tests.ECKeyFileTests`1+WriteKeyToSpanFunc[System.__Canon]):this (Tier1)
        -304 (-3.34 % of base) : 563545.dasm - System.Security.Cryptography.Rsa.Tests.RSAKeyFileTests:ReadWriteKey(System.String,byref,System.Security.Cryptography.Rsa.Tests.RSAKeyFileTests+ReadKeyAction,System.Func`2[System.Security.Cryptography.RSA,ubyte[]],System.Security.Cryptography.Rsa.Tests.RSAKeyFileTests+WriteKeyToSpanFunc,ubyte) (Tier1)
        -290 (-2.48 % of base) : 16343.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
        -284 (-2.93 % of base) : 407104.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -282 (-2.98 % of base) : 553069.dasm - System.Security.Cryptography.Dsa.Tests.DSAKeyFileTests:ReadWriteKey(System.String,byref,System.Security.Cryptography.Dsa.Tests.DSAKeyFileTests+ReadKeyAction,System.Func`2[System.Security.Cryptography.DSA,ubyte[]],System.Security.Cryptography.Dsa.Tests.DSAKeyFileTests+WriteKeyToSpanFunc,ubyte) (Tier1)
        -276 (-5.15 % of base) : 159297.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (Tier0-FullOpts)
        -272 (-4.52 % of base) : 676611.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitCapture|14(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode):this (Tier1)
        -262 (-3.75 % of base) : 385021.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (Tier0-FullOpts)
        -260 (-8.38 % of base) : 138655.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (Tier0-FullOpts)
        -260 (-2.58 % of base) : 706364.dasm - System.Threading.Tasks.Dataflow.Tests.DebugAttributeTests:TestDebuggerDisplaysAndTypeProxies():this (Tier0-FullOpts)
        -244 (-3.38 % of base) : 694989.dasm - Microsoft.CodeAnalysis.DiagnosticFormatter:Format(Microsoft.CodeAnalysis.Diagnostic,System.IFormatProvider):System.String:this (Tier1)
        -244 (-2.44 % of base) : 279741.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -240 (-5.96 % of base) : 527545.dasm - System.Tests.TupleTests+TupleTestDriver`10[short,int,long,System.__Canon,ushort,float,double,System.DateTime,System.__Canon,System.TimeSpan]:.ctor(System.Object[]):this (Tier1)
        -238 (-0.94 % of base) : 199874.dasm - System.CodeDom.Compiler.Tests.VBCodeGenerationTests:ProviderSupports():this (Tier0-FullOpts)
        -238 (-2.57 % of base) : 197000.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -234 (-3.30 % of base) : 321737.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str:GetEntriesThenDelete():this (Tier1)
        -226 (-2.22 % of base) : 622922.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -224 (-9.66 % of base) : 444487.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)

Top method regressions (percentages):
          60 (34.88 % of base) : 281993.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          60 (34.88 % of base) : 284730.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.89 % of base) : 99666.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.89 % of base) : 99716.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.89 % of base) : 99626.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.89 % of base) : 99735.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.21 % of base) : 99659.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.21 % of base) : 99724.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.21 % of base) : 99643.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.21 % of base) : 99732.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (27.96 % of base) : 97135.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (27.66 % of base) : 286373.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          34 (25.76 % of base) : 290087.dasm - System.Linq.Expressions.ExpressionVisitor:VisitLoop(System.Linq.Expressions.LoopExpression):System.Linq.Expressions.Expression:this (Tier1)
          52 (25.74 % of base) : 297063.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (25.74 % of base) : 281918.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (25.74 % of base) : 284197.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (25.49 % of base) : 97153.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (25.49 % of base) : 286359.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          32 (25.40 % of base) : 457993.dasm - System.Xml.Tests.TCXMLIntegrityBase:CloseTest():int:this (Tier1)
          28 (24.56 % of base) : 308861.dasm - System.Globalization.CalendricalCalculationsHelper:NormalizeLongitude(double):double (Instrumented Tier1)

Top method improvements (percentages):
         -14 (-30.43 % of base) : 172388.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
         -14 (-30.43 % of base) : 176335.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
         -14 (-30.43 % of base) : 41939.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
         -14 (-30.43 % of base) : 80295.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:EnsureCapacity(int):this (Tier1)
         -84 (-26.09 % of base) : 40959.dasm - Microsoft.CodeAnalysis.NodeStateTable`1[System.__Canon]:GetTotalEntryItemCount():int:this (Tier1)
         -86 (-25.15 % of base) : 41069.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
         -86 (-25.15 % of base) : 161579.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
         -86 (-25.15 % of base) : 71516.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.__Canon,System.__Canon]]:get_IsCached():ubyte:this (Tier1)
         -86 (-25.15 % of base) : 176342.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.__Canon,System.__Canon]]:get_IsCached():ubyte:this (Tier1)
         -86 (-25.15 % of base) : 161723.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]]:get_IsCached():ubyte:this (Tier1)
         -96 (-23.88 % of base) : 57002.dasm - Microsoft.Interop.UnitTests.Verifiers.CSharpSourceGeneratorVerifier`1+Test[System.__Canon]:CreateCompilationWithAnalyzers(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.AnalyzerOptions,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:this (Tier1)
         -18 (-23.08 % of base) : 267518.dasm - System.Data.TypeLimiter:get_IsTypeLimitingDisabled():ubyte (Tier1)
         -18 (-23.08 % of base) : 267519.dasm - System.LocalAppContextSwitches:get_AllowArbitraryTypeInstantiation():ubyte (Tier1)
         -20 (-21.74 % of base) : 720741.dasm - System.Runtime.Serialization.SerializationInfo:GetThreadDeserializationTracker():System.Runtime.Serialization.DeserializationTracker (Tier1)
         -20 (-21.28 % of base) : 456126.dasm - OLEDB.Test.ModuleCore.CError:WriteIgnore(System.String) (Tier1)
          -8 (-20.00 % of base) : 340336.dasm - System.Linq.Parallel.MergeEnumerator`1[int]:Dispose():this (Tier1)
          -8 (-20.00 % of base) : 340601.dasm - System.Linq.Parallel.MergeEnumerator`1[System.__Canon]:Dispose():this (Tier1)
         -36 (-20.00 % of base) : 457451.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (Tier0-FullOpts)
         -42 (-19.09 % of base) : 418842.dasm - System.MathF:ILogB(float):int (Tier1)
          -8 (-19.05 % of base) : 443441.dasm - System.Xml.Xsl.IlGen.StorageDescriptor:get_ParameterLocation():int:this (Tier1)


librariestestsnotieredcompilation.run.linux.arm.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 93098472 (overridden on cmd)
Total bytes of diff: 92708508 (overridden on cmd)
Total bytes of delta: -389964 (-0.42 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        2872 : 249277.dasm (7.74 % of base)
        1870 : 243504.dasm (5.01 % of base)
        1218 : 62518.dasm (1.38 % of base)
        1050 : 253266.dasm (2.80 % of base)
        1026 : 98418.dasm (4.69 % of base)
        1022 : 241553.dasm (2.73 % of base)
        1022 : 244438.dasm (2.66 % of base)
        1022 : 248120.dasm (2.73 % of base)
        1022 : 253588.dasm (2.66 % of base)
        1022 : 242549.dasm (2.66 % of base)
        1022 : 250360.dasm (2.73 % of base)
        1022 : 253703.dasm (2.73 % of base)
        1022 : 253950.dasm (2.73 % of base)
        1022 : 253527.dasm (2.73 % of base)
         950 : 237085.dasm (2.47 % of base)
         434 : 91437.dasm (11.40 % of base)
         410 : 20155.dasm (2.07 % of base)
         366 : 24951.dasm (3.96 % of base)
         360 : 48505.dasm (2.95 % of base)
         292 : 110472.dasm (1.64 % of base)

Top file improvements (bytes):
        -594 : 185254.dasm (-6.15 % of base)
        -410 : 213118.dasm (-9.11 % of base)
        -358 : 306141.dasm (-6.91 % of base)
        -340 : 107448.dasm (-1.72 % of base)
        -310 : 6765.dasm (-2.66 % of base)
        -306 : 179879.dasm (-6.62 % of base)
        -284 : 50695.dasm (-5.42 % of base)
        -282 : 185025.dasm (-2.92 % of base)
        -280 : 87079.dasm (-3.60 % of base)
        -280 : 87083.dasm (-3.60 % of base)
        -268 : 298897.dasm (-2.64 % of base)
        -260 : 41838.dasm (-8.38 % of base)
        -250 : 253673.dasm (-1.20 % of base)
        -250 : 236974.dasm (-1.20 % of base)
        -250 : 249322.dasm (-1.20 % of base)
        -250 : 253213.dasm (-1.20 % of base)
        -250 : 250414.dasm (-1.24 % of base)
        -250 : 243558.dasm (-1.20 % of base)
        -250 : 244386.dasm (-1.20 % of base)
        -250 : 253370.dasm (-1.20 % of base)

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

Top method regressions (bytes):
        2872 (7.74 % of base) : 249277.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1870 (5.01 % of base) : 243504.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Metadata+PropertyVisibilityTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1218 (1.38 % of base) : 62518.dasm - System.CodeDom.Compiler.Tests.CodeValidatorTests+<ValidateIdentifiers_Valid_TestData>d__0:MoveNext():ubyte:this (FullOpts)
        1050 (2.80 % of base) : 253266.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1026 (4.69 % of base) : 98418.dasm - System.Diagnostics.Metrics.Tests.MetricsTests:<ObservableInstrumentMeasurementTest>b__7_0():this (FullOpts)
        1022 (2.73 % of base) : 253950.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1022 (2.66 % of base) : 244438.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1022 (2.66 % of base) : 242549.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Default+ExtensionDataTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1022 (2.73 % of base) : 250360.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Metadata+ExtensionDataTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1022 (2.73 % of base) : 248120.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Metadata+PropertyNameTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1022 (2.73 % of base) : 241553.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Default+PropertyVisibilityTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1022 (2.66 % of base) : 253588.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1022 (2.73 % of base) : 253527.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        1022 (2.73 % of base) : 253703.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestClassWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
         950 (2.47 % of base) : 237085.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
         434 (11.40 % of base) : 91437.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (FullOpts)
         410 (2.07 % of base) : 20155.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
         366 (3.96 % of base) : 24951.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:.cctor() (FullOpts)
         360 (2.95 % of base) : 48505.dasm - Microsoft.CodeAnalysis.CSharp.CodeStyle.CSharpCodeStyleOptions:.cctor() (FullOpts)
         292 (1.64 % of base) : 110472.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004.enum004.Test:MainMethod():int (FullOpts)

Top method improvements (bytes):
        -594 (-6.15 % of base) : 185254.dasm - System.Reflection.Tests.FieldTests:TestLiteralFields1() (FullOpts)
        -410 (-9.11 % of base) : 213118.dasm - System.Tests.TupleTests+TupleTestDriver`10[short,int,long,System.__Canon,ushort,float,double,System.DateTime,System.__Canon,System.TimeSpan]:.ctor(System.Object[]):this (FullOpts)
        -358 (-6.91 % of base) : 306141.dasm - System.Tests.ValueTupleTests+ValueTupleTestDriver`10[short,int,long,System.__Canon,ushort,float,double,System.DateTime,System.ValueTuple`2[ubyte,System.__Canon],System.TimeSpan]:.ctor(System.Object[]):this (FullOpts)
        -340 (-1.72 % of base) : 107448.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.cnst001.cnst001.Test:MainMethod():int (FullOpts)
        -310 (-2.66 % of base) : 6765.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -306 (-6.62 % of base) : 179879.dasm - System.Reflection.Emit.Tests.AssemblySaveTypeBuilderAPIsTests:VerifyPInvokeMethod(System.Type,System.Reflection.MethodInfo,System.Reflection.Emit.Tests.DpmParams,System.Reflection.Assembly) (FullOpts)
        -284 (-5.42 % of base) : 50695.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
        -282 (-2.92 % of base) : 185025.dasm - System.Reflection.Tests.PropertyTests:TestProperties_GetterSetter() (FullOpts)
        -280 (-3.60 % of base) : 87083.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProvider_InvokeObject_RemovesProvider():this (FullOpts)
        -280 (-3.60 % of base) : 87079.dasm - System.ComponentModel.Tests.TypeDescriptorTests:RemoveProviderTransparent_InvokeObject_RemovesProvider():this (FullOpts)
        -268 (-2.64 % of base) : 298897.dasm - System.Threading.Tasks.Dataflow.Tests.DebugAttributeTests:TestDebuggerDisplaysAndTypeProxies():this (FullOpts)
        -260 (-8.38 % of base) : 41838.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -250 (-1.20 % of base) : 236974.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -250 (-1.20 % of base) : 244386.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Metadata+ConstructorTestsContext_Metadata:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -250 (-1.24 % of base) : 250414.dasm - System.Text.Json.SourceGeneration.Tests.ExtensionDataTests_Metadata+ExtensionDataTestsContext_Metadata:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -250 (-1.20 % of base) : 249322.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -250 (-1.20 % of base) : 243558.dasm - System.Text.Json.SourceGeneration.Tests.PropertyVisibilityTests_Metadata+PropertyVisibilityTestsContext_Metadata:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -250 (-1.20 % of base) : 253213.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestStructPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -250 (-1.20 % of base) : 253370.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Default+ReferenceHandlerTestsContext_Default:SimpleTestStructWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)
        -250 (-1.20 % of base) : 253673.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_Metadata+ReferenceHandlerTestsContext_Metadata:SimpleTestStructWithFieldsPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (FullOpts)

Top method regressions (percentages):
          28 (46.67 % of base) : 155966.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FlushStores() (FullOpts)
          60 (34.88 % of base) : 102021.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          60 (34.88 % of base) : 102622.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          24 (33.33 % of base) : 113366.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:.cctor() (FullOpts)
          16 (30.77 % of base) : 163781.dasm - System.Collections.ObjectModel.Tests.ReadOnlyDictionaryTests+<>c:<.cctor>b__17_0():System.Collections.Generic.KeyValuePair`2[int,System.String]:this (FullOpts)
          52 (29.89 % of base) : 27565.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.89 % of base) : 27579.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.89 % of base) : 27555.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.89 % of base) : 27585.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.21 % of base) : 27563.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.21 % of base) : 27580.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.21 % of base) : 27561.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (29.21 % of base) : 27582.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (27.96 % of base) : 26336.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (27.66 % of base) : 102416.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          32 (26.67 % of base) : 21975.dasm - NuGet.Frameworks.NuGetFramework:get_IsSpecificFramework():ubyte:this (FullOpts)
          52 (25.74 % of base) : 106019.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (25.74 % of base) : 109092.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (25.74 % of base) : 106023.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          52 (25.49 % of base) : 102408.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)

Top method improvements (percentages):
          -8 (-26.67 % of base) : 36266.dasm - DryIoc.Container:SetInitialFactoryID():this (FullOpts)
          -8 (-26.67 % of base) : 112244.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using001.using001.MyClass:Dispose():this (FullOpts)
          -8 (-26.67 % of base) : 114408.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using002.using002.MyClass:Dispose():this (FullOpts)
          -8 (-26.67 % of base) : 103086.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.localVariable.blockVariable.using005.using005.MyClass:Dispose():this (FullOpts)
         -36 (-20.00 % of base) : 177499.dasm - System.Xml.XmlSubtreeReader:RemoveNamespace(System.String,System.String):this (FullOpts)
          -8 (-19.05 % of base) : 42597.dasm - Microsoft.CodeAnalysis.Options.Option2`1[int]:get_DefaultValue():int:this (FullOpts)
          -8 (-19.05 % of base) : 48525.dasm - Microsoft.CodeAnalysis.Options.PerLanguageOption2`1[ubyte]:get_DefaultValue():ubyte:this (FullOpts)
          -8 (-19.05 % of base) : 132349.dasm - System.Linq.ParallelQuery`1+<>c__1`1[System.__Canon,int]:<Cast>b__1_0(System.__Canon):int:this (FullOpts)
          -8 (-19.05 % of base) : 140697.dasm - System.Linq.Tests.OrderByTests+<>c:<LastOnOrderedMatchingCases>b__30_0(System.Object):int:this (FullOpts)
          -8 (-19.05 % of base) : 236517.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default+<>c:<Point_2D_With_ExtDataPropInit>b__818_2(System.Object):System.Collections.Generic.Dictionary`2[System.String,System.Text.Json.JsonElement]:this (FullOpts)
          -8 (-19.05 % of base) : 236269.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyICollectionOfInt_BackedBy_ListOfIntPropInit>b__527_0(System.Object):System.Collections.Generic.ICollection`1[int]:this (FullOpts)
          -8 (-19.05 % of base) : 237373.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyICollectionOfInt_BackedBy_ListOfIntWithNumberHandlingWithoutPopulateAttributePropInit>b__549_0(System.Object):System.Collections.Generic.ICollection`1[int]:this (FullOpts)
          -8 (-19.05 % of base) : 236953.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyIListOfInt_BackedBy_ListOfIntPropInit>b__731_0(System.Object):System.Collections.Generic.IList`1[int]:this (FullOpts)
          -8 (-19.05 % of base) : 237145.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyIListOfInt_BackedBy_ListOfIntWithAttributeOnTypePropInit>b__737_0(System.Object):System.Collections.Generic.IList`1[int]:this (FullOpts)
          -8 (-19.05 % of base) : 236809.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyISetOfInt_BackedBy_HashSetOfIntWithNumberHandlingPropInit>b__809_0(System.Object):System.Collections.Generic.ISet`1[int]:this (FullOpts)
          -8 (-19.05 % of base) : 236693.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyListOfIntWithNumberHandlingWithoutPopulateAttributePropInit>b__885_0(System.Object):System.Collections.Generic.List`1[int]:this (FullOpts)
          -8 (-19.05 % of base) : 236781.dasm - System.Text.Json.SourceGeneration.Tests.CreationHandlingTestContext+<>c:<ClassWithReadOnlyPropertyStackWithoutPopulateAttributePropInit>b__1025_0(System.Object):System.Collections.Stack:this (FullOpts)
          -8 (-19.05 % of base) : 233537.dasm - System.Text.Json.SourceGeneration.Tests.MetadataWithPerTypeAttributeContext+<>c:<PersonStructPropInit>b__195_0(System.Object):System.String:this (FullOpts)
          -8 (-19.05 % of base) : 234173.dasm - System.Text.Json.SourceGeneration.Tests.MetadataWithPerTypeAttributeContext+<>c:<StructWithCustomConverterPropertyPropInit>b__294_0(System.Object):System.Text.Json.SourceGeneration.Tests.ClassWithCustomConverterProperty+NestedPoco:this (FullOpts)
          -8 (-19.05 % of base) : 235753.dasm - System.Text.Json.SourceGeneration.Tests.ReferenceHandlerTests_IgnoreCycles_Default+ReferenceHandlerTests_IgnoreCyclesContext_Default+<>c:<ValueNodeWithIValueNodePropertyPropInit>b__222_0(System.Object):System.Text.Json.Serialization.Tests.ReferenceHandlerTests_IgnoreCycles+IValueNodeWithIValueNodeProperty:this (FullOpts)


realworld.run.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13575744 (overridden on cmd)
Total bytes of diff: 13554656 (overridden on cmd)
Total bytes of delta: -21088 (-0.16 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        3938 : 35420.dasm (2.87 % of base)
        1144 : 7556.dasm (1.32 % of base)
         588 : 17444.dasm (5.42 % of base)
         292 : 3875.dasm (3.12 % of base)
         242 : 29461.dasm (4.91 % of base)
         234 : 2602.dasm (2.55 % of base)
         232 : 17442.dasm (5.14 % of base)
         210 : 2115.dasm (2.48 % of base)
         208 : 26442.dasm (2.86 % of base)
         192 : 14654.dasm (2.56 % of base)
         190 : 29985.dasm (4.21 % of base)
         162 : 9798.dasm (3.39 % of base)
         148 : 24438.dasm (5.02 % of base)
         144 : 25068.dasm (2.44 % of base)
         142 : 16532.dasm (11.45 % of base)
         140 : 1561.dasm (1.83 % of base)
         136 : 14196.dasm (6.31 % of base)
         136 : 34544.dasm (1.74 % of base)
         128 : 6838.dasm (3.40 % of base)
         126 : 3012.dasm (5.10 % of base)

Top file improvements (bytes):
        -504 : 17605.dasm (-3.70 % of base)
        -352 : 1562.dasm (-4.44 % of base)
        -344 : 2368.dasm (-2.16 % of base)
        -340 : 1990.dasm (-5.15 % of base)
        -326 : 2167.dasm (-1.97 % of base)
        -320 : 2210.dasm (-1.86 % of base)
        -314 : 2162.dasm (-1.72 % of base)
        -264 : 25128.dasm (-2.28 % of base)
        -242 : 1341.dasm (-5.56 % of base)
        -230 : 2148.dasm (-1.24 % of base)
        -228 : 8582.dasm (-7.40 % of base)
        -224 : 2636.dasm (-2.53 % of base)
        -222 : 2434.dasm (-2.80 % of base)
        -214 : 1845.dasm (-2.62 % of base)
        -210 : 2226.dasm (-2.13 % of base)
        -206 : 2408.dasm (-2.70 % of base)
        -194 : 1588.dasm (-2.31 % of base)
        -192 : 2082.dasm (-1.56 % of base)
        -192 : 2216.dasm (-0.90 % of base)
        -190 : 2401.dasm (-2.23 % of base)

93 total files with Code Size differences (52 improved, 41 regressed), 20 unchanged.

Top method regressions (bytes):
        3938 (2.87 % of base) : 35420.dasm - System.Management.Automation.Runspaces.TypeTable:Process_Types_Ps1Xml(System.String,System.Collections.Concurrent.ConcurrentBag`1[System.String]):this (FullOpts)
        1144 (1.32 % of base) : 7556.dasm - FSharp.Compiler.TcGlobals+TcGlobals:.ctor(ubyte,FSharp.Compiler.AbstractIL.IL+ILGlobals,FSharp.Compiler.TypedTree+CcuThunk,System.String,ubyte,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+CcuThunk]]],ubyte,ubyte,Internal.Utilities.PathMap,FSharp.Compiler.Features+LanguageVersion):this (FullOpts)
         588 (5.42 % of base) : 17444.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Bottom(byref,int,System.ReadOnlySpan`1[SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32]]):SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32] (FullOpts)
         292 (3.12 % of base) : 3875.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
         242 (4.91 % of base) : 29461.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalAccess(Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess,byref):this (FullOpts)
         234 (2.55 % of base) : 2602.dasm - DemoBenchmarks.RagdollTubeBenchmark:AddRagdoll(System.Numerics.Vector3,System.Numerics.Quaternion,int,BepuPhysics.CollidableProperty`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupCollisionFilter],BepuPhysics.Simulation):DemoBenchmarks.RagdollTubeBenchmark+RagdollHandles (FullOpts)
         232 (5.14 % of base) : 17442.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Volume(byref,System.ReadOnlySpan`1[SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32]]):SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1+Moment[SixLabors.ImageSharp.PixelFormats.Rgba32] (FullOpts)
         210 (2.48 % of base) : 2115.dasm - BepuPhysics.CollisionDetection.CollisionTasks.ConvexCompoundOverlapFinder`3[BepuPhysics.Collidables.Capsule,BepuPhysics.Collidables.CapsuleWide,BepuPhysics.Collidables.Mesh]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
         208 (2.86 % of base) : 26442.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
         192 (2.56 % of base) : 14654.dasm - FSharp.Compiler.CheckFormatStrings:parseLoop@185(FSharp.Compiler.Text.Range,FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.NameResolution+FormatStringCheckContext],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType,int,System.Collections.Generic.List`1[System.Tuple`2[FSharp.Compiler.Text.Range,int]],System.Text.StringBuilder,System.Collections.Generic.List`1[FSharp.Compiler.TypedTree+TType],Microsoft.FSharp.Core.FSharpRef`1[int],Microsoft.FSharp.Core.FSharpRef`1[System.String],Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[int],FSharp.Compiler.TypedTree+TType]],int,int,int,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[int,int,FSharp.Compiler.Text.Range]]):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType] (FullOpts)
         190 (4.21 % of base) : 29985.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructionConversion(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable],byref):ubyte:this (FullOpts)
         162 (3.39 % of base) : 9798.dasm - FSharp.Compiler.TypedTreeOps:remarkExpr(FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr (FullOpts)
         148 (5.02 % of base) : 24438.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|199_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (FullOpts)
         144 (2.44 % of base) : 25068.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
         142 (11.45 % of base) : 16532.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
         140 (1.83 % of base) : 1561.dasm - BepuPhysics.Constraints.Contact.TangentFriction:WarmStart(byref,byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
         136 (6.31 % of base) : 14196.dasm - FSharp.Compiler.CheckExpressions:checkAndRewrite@3647(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr (FullOpts)
         136 (1.74 % of base) : 34544.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         128 (3.40 % of base) : 6838.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:sigptrGetTy(FSharp.Compiler.AbstractIL.ILBinaryReader+ILMetadataReader,int,ubyte[],int):System.Tuple`2[FSharp.Compiler.AbstractIL.IL+ILType,int] (FullOpts)
         126 (5.10 % of base) : 3012.dasm - MS.Internal.Xml.XPath.QueryBuilder:ProcessAxis(MS.Internal.Xml.XPath.Axis,int,byref):MS.Internal.Xml.XPath.Query:this (FullOpts)

Top method improvements (bytes):
        -504 (-3.70 % of base) : 17605.dasm - Microsoft.ML.Data.Conversion.Conversions:.ctor():this (FullOpts)
        -352 (-4.44 % of base) : 1562.dasm - BepuPhysics.Constraints.Contact.TangentFriction:ApplyImpulse(byref,byref,byref,byref,byref,byref) (FullOpts)
        -344 (-2.16 % of base) : 2368.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TrianglePairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -340 (-5.15 % of base) : 1990.dasm - BepuPhysics.Collidables.ConvexHullSupportFinder:ComputeLocalSupport(byref,byref,byref,byref):this (FullOpts)
        -326 (-1.97 % of base) : 2167.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxTriangleTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -320 (-1.86 % of base) : 2210.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CapsuleBoxTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -314 (-1.72 % of base) : 2162.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CapsuleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -264 (-2.28 % of base) : 25128.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -242 (-5.56 % of base) : 1341.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
        -230 (-1.24 % of base) : 2148.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -228 (-7.40 % of base) : 8582.dasm - FSharp.Compiler.ParseAndCheckInputs:CheckSimulateException(FSharp.Compiler.CompilerConfig+TcConfig) (FullOpts)
        -224 (-2.53 % of base) : 2636.dasm - BepuPhysics.Constraints.AngularMotorFunctions:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
        -222 (-2.80 % of base) : 2434.dasm - BepuPhysics.Constraints.AngularServoFunctions:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
        -214 (-2.62 % of base) : 1845.dasm - BepuPhysics.Constraints.LinearAxisServoFunctions:ComputeEffectiveMass(byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
        -210 (-2.13 % of base) : 2226.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxPairTester:CreateEdgeContacts(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,int,byref) (FullOpts)
        -206 (-2.70 % of base) : 2408.dasm - BepuPhysics.CollisionDetection.CollisionTasks.SphereCylinderTester:ComputeSphereToClosest(byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
        -194 (-2.31 % of base) : 1588.dasm - BepuPhysics.Constraints.Contact.TwistFriction:Solve(byref,byref,byref,byref,byref,byref,byref) (FullOpts)
        -192 (-0.90 % of base) : 2216.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -192 (-1.56 % of base) : 2082.dasm - BepuPhysics.Constraints.TypeProcessor`3[BepuPhysics.Constraints.TwoBodyReferences,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses]:GatherAndIntegrate[DemoBenchmarks.ShapePileBenchmark+DemoPoseIntegratorCallbacks,BepuPhysics.Constraints.BatchShouldAlwaysIntegrate,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.DisallowPoseIntegration](BepuPhysics.Bodies,byref,byref,int,float,int,int,byref,byref,byref,byref,byref) (FullOpts)
        -190 (-2.23 % of base) : 2401.dasm - BepuPhysics.CollisionDetection.SweepTasks.SphereBoxDistanceTester:Test(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref):this (FullOpts)

Top method regressions (percentages):
          24 (42.86 % of base) : 37249.dasm - Microsoft.ApplicationInsights.ActivityExtensions:TryRun(System.Action):ubyte (FullOpts)
          20 (28.57 % of base) : 1165.dasm - System.Diagnostics.Stopwatch:.cctor() (FullOpts)
          30 (27.78 % of base) : 377.dasm - BenchmarkDotNet.Portability.RuntimeInformation:.cctor() (FullOpts)
          28 (19.44 % of base) : 7104.dasm - FSharp.Compiler.AbstractIL.IL+ILAlignment:.cctor() (FullOpts)
          28 (19.44 % of base) : 3440.dasm - FSharp.Compiler.CompilerConfig+CompilerTarget:.cctor() (FullOpts)
          28 (19.44 % of base) : 5594.dasm - FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity:.cctor() (FullOpts)
          28 (19.44 % of base) : 10006.dasm - FSharp.Compiler.Infos+CallerInfo:.cctor() (FullOpts)
          28 (19.44 % of base) : 14005.dasm - FSharp.Compiler.Infos+OptionalArgCallerSideValue:.cctor() (FullOpts)
          28 (19.44 % of base) : 12200.dasm - FSharp.Compiler.MethodOverrides+OverrideCanImplement:.cctor() (FullOpts)
          28 (19.44 % of base) : 12523.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefExpr:.cctor() (FullOpts)
          28 (19.44 % of base) : 12470.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefType:.cctor() (FullOpts)
          28 (19.44 % of base) : 6160.dasm - FSharp.Compiler.Syntax.DebugPointAtBinding:.cctor() (FullOpts)
          28 (19.44 % of base) : 6309.dasm - FSharp.Compiler.Syntax.DebugPointAtSequential:.cctor() (FullOpts)
          28 (19.44 % of base) : 10592.dasm - FSharp.Compiler.TypedTree+TOp:.cctor() (FullOpts)
          28 (19.44 % of base) : 7405.dasm - FSharp.Compiler.TypedTree+TyconFSharpObjModelKind:.cctor() (FullOpts)
          28 (19.44 % of base) : 9160.dasm - FSharp.Compiler.TypedTree+ValBaseOrThisInfo:.cctor() (FullOpts)
          28 (19.44 % of base) : 7425.dasm - FSharp.Compiler.TypedTree+ValUseFlag:.cctor() (FullOpts)
          28 (19.44 % of base) : 9728.dasm - FSharp.Compiler.TypedTreeOps+Mutates:.cctor() (FullOpts)
          28 (19.44 % of base) : 33195.dasm - Microsoft.CodeAnalysis.CodeGen.ArrayMethodParameterInfo:.cctor() (FullOpts)
          28 (17.95 % of base) : 36632.dasm - System.Management.Automation.Interpreter.ThrowInstruction:.cctor() (FullOpts)

Top method improvements (percentages):
         -90 (-15.00 % of base) : 35412.dasm - System.Enum:ToUInt64(System.Object):ulong (FullOpts)
        -122 (-14.84 % of base) : 1207.dasm - System.Sha1ForNonSecretPurposes:Finish(System.Span`1[ubyte]):this (FullOpts)
         -48 (-13.71 % of base) : 33716.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericTypeInstanceReference):this (FullOpts)
          -6 (-13.64 % of base) : 57.dasm - System.Diagnostics.Debug:Assert(ubyte) (FullOpts)
         -46 (-13.37 % of base) : 26887.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitNameOfOperator(Microsoft.CodeAnalysis.CSharp.BoundNameOfOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          -6 (-13.04 % of base) : 16661.dasm - System.Runtime.InteropServices.MemoryMarshal:CreateReadOnlySpan[System.__Canon](byref,int):System.ReadOnlySpan`1[System.__Canon] (FullOpts)
          -6 (-13.04 % of base) : 16642.dasm - System.Runtime.InteropServices.MemoryMarshal:CreateSpan[System.__Canon](byref,int):System.Span`1[System.__Canon] (FullOpts)
         -28 (-12.96 % of base) : 33896.dasm - Microsoft.Cci.MetadataWriter:GetFieldHandle(Microsoft.Cci.IFieldReference):System.Reflection.Metadata.EntityHandle:this (FullOpts)
         -28 (-12.96 % of base) : 33926.dasm - Microsoft.Cci.MetadataWriter:GetMethodDefinitionOrReferenceHandle(Microsoft.Cci.IMethodReference):System.Reflection.Metadata.EntityHandle:this (FullOpts)
         -10 (-12.82 % of base) : 23938.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:GetNullableContextValue():System.Nullable`1[ubyte]:this (FullOpts)
        -132 (-12.24 % of base) : 25924.dasm - Microsoft.CodeAnalysis.SymbolDisplayFormat:.cctor() (FullOpts)
         -26 (-11.82 % of base) : 21316.dasm - Microsoft.CodeAnalysis.AnalyzerConfig+SectionNameLexer:Lex():int:this (FullOpts)
          -8 (-11.76 % of base) : 27176.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
         -34 (-11.41 % of base) : 33710.dasm - Microsoft.Cci.MetadataVisitor:Visit(Microsoft.Cci.IParameterDefinition):this (FullOpts)
          -8 (-10.53 % of base) : 35460.dasm - System.Collections.Specialized.OrderedDictionary:get_Item(int):System.Object:this (FullOpts)
         -10 (-10.42 % of base) : 19813.dasm - System.StringComparer:Equals(System.Object,System.Object):ubyte:this (FullOpts)
         -28 (-10.37 % of base) : 29091.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon]:TryGetValue(System.ValueTuple`2[System.__Canon,System.__Canon],System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon],byref):ubyte:this (FullOpts)
         -18 (-10.00 % of base) : 17166.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.ExifShort:TrySetValue(System.Object):ubyte:this (FullOpts)
          -6 (-9.68 % of base) : 952.dasm - System.ReadOnlySpan`1[ushort]:ToString():System.String:this (FullOpts)
          -6 (-9.68 % of base) : 301.dasm - System.Span`1[ushort]:ToString():System.String:this (FullOpts)



windows x86

Diffs are based on 2,339,430 contexts (847,225 MinOpts, 1,492,205 FullOpts).

MISSED contexts: base: 1 (0.00%), diff: 8,833 (0.38%)

Overall (+1,228,297 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x86.checked.mch 6,969,637 +20,893 -1.24%
benchmarks.run_pgo.windows.x86.checked.mch 47,456,230 +36,835 -2.52%
benchmarks.run_tiered.windows.x86.checked.mch 9,351,120 +18,029 -1.12%
coreclr_tests.run.windows.x86.checked.mch 315,999,892 +454,403 -1.69%
libraries.crossgen2.windows.x86.checked.mch 35,570,616 +11,739 -0.68%
libraries.pmi.windows.x86.checked.mch 48,824,461 +165,393 -1.49%
libraries_tests.run.windows.x86.Release.mch 181,401,826 +408,071 -1.33%
librariestestsnotieredcompilation.run.windows.x86.Release.mch 102,225,812 +81,602 -1.34%
realworld.run.windows.x86.checked.mch 11,028,236 +31,332 -1.07%

FullOpts (+1,228,297 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x86.checked.mch 6,969,356 +20,893 -1.24%
benchmarks.run_pgo.windows.x86.checked.mch 40,784,255 +36,835 -2.52%
benchmarks.run_tiered.windows.x86.checked.mch 5,043,353 +18,029 -1.12%
coreclr_tests.run.windows.x86.checked.mch 108,989,043 +454,403 -1.69%
libraries.crossgen2.windows.x86.checked.mch 35,569,556 +11,739 -0.68%
libraries.pmi.windows.x86.checked.mch 48,729,231 +165,393 -1.49%
libraries_tests.run.windows.x86.Release.mch 83,337,517 +408,071 -1.33%
librariestestsnotieredcompilation.run.windows.x86.Release.mch 93,550,744 +81,602 -1.34%
realworld.run.windows.x86.checked.mch 10,732,966 +31,332 -1.07%

Example diffs

benchmarks.run.windows.x86.checked.mch

-22 (-18.33%) : 17193.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)

@@ -8,8 +8,8 @@ ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T03] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> -; V01 arg1 [V01,T04] ( 3, 6 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 this [V00,T04] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> +; V01 arg1 [V01,T03] ( 3, 6 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 loc0 [V02,T07] ( 2, 5 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <<unknown class>> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> @@ -17,18 +17,19 @@ ;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V09 tmp4 [V09,T02] ( 4, 13 ) int -> edx "Inline stloc first use temp" -; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> [ebp-0x18] spill-single-def "field V03._array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T02] ( 4, 13 ) int -> eax "Inline stloc first use temp" +; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> ebx single-def "field V03._array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T01] ( 4, 13 ) int -> [ebp-0x10] "field V03._index (fldOffset=0x4)" P-INDEP ; V12 tmp7 [V12,T09] ( 3, 3 ) ref -> eax "field V04.array (fldOffset=0x0)" P-INDEP ;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.array (fldOffset=0x0)" P-INDEP
-; V14 tmp9 [V14,T10] ( 2, 2 ) ref -> eax single-def "field V07._array (fldOffset=0x0)" P-INDEP -;* V15 tmp10 [V15,T11] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
+; V14 tmp9 [V14,T11] ( 2, 2 ) ref -> ebx single-def "field V07._array (fldOffset=0x0)" P-INDEP +;* V15 tmp10 [V15,T12] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
; V16 tmp11 [V16,T05] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
-; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> [ebp-0x1C] spill-single-def "argument with side effect" -; V18 cse0 [V18,T06] ( 3, 6 ) int -> esi "CSE - aggressive"
+; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> ecx "argument with side effect" +; V18 cse0 [V18,T06] ( 3, 6 ) int -> edi "CSE - unknown" +; V19 cse1 [V19,T10] ( 3, 3 ) int -> ebx "CSE - unknown"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -36,17 +37,17 @@ G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 16 - mov esi, ecx - ; gcrRegs +[esi] - mov edi, edx
+ sub esp, 8 + mov edi, ecx
; gcrRegs +[edi]
+ mov esi, edx + ; gcrRegs +[esi]
;; size=13 bbWeight=1 PerfScore 5.00 G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x34]
+ mov ebx, dword ptr [edi] + mov eax, dword ptr [ebx+0x34]
call [eax+0x10]<unknown method> ; gcrRegs -[ecx] +[eax] mov ecx, gword ptr [eax+0x08] @@ -56,54 +57,43 @@ G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 mov eax, dword ptr [eax+0x54] call [eax+0x0C]<unknown method> ; gcrRegs -[ecx] +[eax]
+ mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V02} + mov ecx, edi + ; gcrRegs +[ecx] + mov edx, dword ptr [ebx+0x54] + call [edx+0x10]<unknown method> + ; gcrRegs -[ecx edi] + mov edi, dword ptr [eax+0x04]
mov ebx, eax ; gcrRegs +[ebx]
- mov gword ptr [ebp-0x14], ebx - ; GC ptr vars +{V02} - mov ecx, esi - ; gcrRegs +[ecx] - mov eax, dword ptr [esi]
+ xor eax, eax
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x54] - call [eax+0x10]<unknown method> - ; gcrRegs -[ecx esi] +[eax] - mov esi, dword ptr [eax+0x04] - mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V10}
xor edx, edx
- xor ecx, ecx - mov dword ptr [ebp-0x10], ecx - test esi, esi
+ mov dword ptr [ebp-0x10], edx + test edi, edi
jle SHORT G_M33036_IG04
- ;; size=53 bbWeight=1 PerfScore 30.50 -G_M33036_IG03: ; bbWeight=4, gcVars=00000180 {V02 V10}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz - mov edx, gword ptr [eax+4*edx+0x08] - ; gcrRegs +[edx] - mov gword ptr [ebp-0x1C], edx - ; GC ptr vars +{V17} - push edi - mov ecx, edx
+ ;; size=48 bbWeight=1 PerfScore 27.50 +G_M33036_IG03: ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov ecx, gword ptr [ebx+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, ebx - mov ebx, gword ptr [ebp-0x1C] - mov ebx, dword ptr [ebx] - ; gcrRegs -[ebx] - mov ebx, dword ptr [ebx+0x44] - ; GC ptr vars -{V17} - call [ebx+0x08]<unknown method> - ; gcrRegs -[eax ecx edx] - mov ebx, dword ptr [ebp-0x10] - lea edx, [ebx+0x01] - mov ebx, edx - cmp esi, ebx - mov dword ptr [ebp-0x10], ebx - mov eax, gword ptr [ebp-0x18] - ; gcrRegs +[eax] - jg SHORT G_M33036_IG05 - ;; size=41 bbWeight=4 PerfScore 70.00
+ push esi + mov edx, gword ptr [ebp-0x14] + ; gcrRegs +[edx] + mov eax, dword ptr [ecx] + mov eax, dword ptr [eax+0x44] + call [eax+0x08]<unknown method> + ; gcrRegs -[ecx edx] + mov eax, dword ptr [ebp-0x10] + inc eax + mov edx, eax + cmp edi, edx + mov dword ptr [ebp-0x10], edx + jg SHORT G_M33036_IG03 + ;; size=29 bbWeight=4 PerfScore 59.00
G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
- ; gcrRegs -[eax edi] - ; GC ptr vars -{V02 V10}
+ ; gcrRegs -[ebx esi] + ; GC ptr vars -{V02}
lea esp, [ebp-0x0C] pop ebx pop esi @@ -111,14 +101,7 @@ G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b pop ebp ret ;; size=8 bbWeight=1 PerfScore 3.50
-G_M33036_IG05: ; bbWeight=2, gcVars=00000180 {V02 V10}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz - ; gcrRegs +[eax edi] - ; GC ptr vars +{V02 V10} - mov ebx, gword ptr [ebp-0x14] - ; gcrRegs +[ebx] - jmp SHORT G_M33036_IG03 - ;; size=5 bbWeight=2 PerfScore 6.00
-; Total bytes of code 120, prolog size 9, PerfScore 115.00, instruction count 53, allocated bytes for code 120 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
+; Total bytes of code 98, prolog size 9, PerfScore 95.00, instruction count 45, allocated bytes for code 98 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
; ============================================================

-18 (-12.50%) : 15148.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)

@@ -9,19 +9,18 @@ ; Final local variable assignments ; ; V00 this [V00,T04] ( 6, 14.50) ref -> edi this class-hnd single-def <Benchstone.BenchI.Permutate>
-; V01 arg1 [V01,T03] ( 10, 27.50) int -> esi single-def -; V02 loc0 [V02,T02] ( 11, 37 ) int -> [ebp-0x10]
+; V01 arg1 [V01,T03] ( 12, 32 ) int -> esi single-def +; V02 loc0 [V02,T02] ( 11, 37 ) int -> ebx
; V03 tmp0 [V03,T00] ( 6, 48 ) ref -> edx class-hnd "Inlining Arg" <int[]>
-; V04 tmp1 [V04,T09] ( 2, 8 ) int -> ebx "Inline stloc first use temp"
+; V04 tmp1 [V04,T09] ( 2, 8 ) int -> eax "Inline stloc first use temp"
; V05 tmp2 [V05,T05] ( 2, 16 ) int -> ecx "Strict ordering of exceptions for Array store" ; V06 tmp3 [V06,T01] ( 6, 48 ) ref -> eax class-hnd "Inlining Arg" <int[]> ; V07 tmp4 [V07,T10] ( 2, 8 ) int -> ecx "Inline stloc first use temp" ; V08 tmp5 [V08,T06] ( 2, 16 ) int -> edx "Strict ordering of exceptions for Array store"
-; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - aggressive" -; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - aggressive" -; V11 cse2 [V11,T11] ( 4, 5.50) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - unknown" +; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -29,42 +28,38 @@ G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 8
mov edi, ecx ; gcrRegs +[edi] mov esi, edx
- ;; size=13 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 4.75
G_M46152_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz inc dword ptr [D1FFAB1EH] cmp esi, 1 je SHORT G_M46152_IG05 ;; size=11 bbWeight=1 PerfScore 4.25 G_M46152_IG03: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
- lea ebx, [esi-0x01] - mov dword ptr [ebp-0x14], ebx - mov edx, ebx
+ lea edx, [esi-0x01]
mov ecx, edi ; gcrRegs +[ecx] call [Benchstone.BenchI.Permutate:PermuteArray(int):this] ; gcrRegs -[ecx]
- mov eax, ebx - test eax, eax
+ lea ebx, [esi-0x01] + test ebx, ebx
jle SHORT G_M46152_IG05
- ;; size=22 bbWeight=0.50 PerfScore 3.25
+ ;; size=18 bbWeight=0.50 PerfScore 2.75
G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz mov edx, gword ptr [edi+0x04] ; gcrRegs +[edx] mov ecx, dword ptr [edx+0x04] cmp esi, ecx jae SHORT G_M46152_IG06
- mov ebx, dword ptr [edx+4*esi+0x08] - cmp eax, ecx
+ mov eax, dword ptr [edx+4*esi+0x08] + cmp ebx, ecx
jae SHORT G_M46152_IG06
- mov ecx, dword ptr [edx+4*eax+0x08]
+ mov ecx, dword ptr [edx+4*ebx+0x08]
mov dword ptr [edx+4*esi+0x08], ecx
- mov dword ptr [ebp-0x10], eax - mov dword ptr [edx+4*eax+0x08], ebx - mov edx, dword ptr [ebp-0x14]
+ mov dword ptr [edx+4*ebx+0x08], eax + lea edx, [esi-0x01]
; gcrRegs -[edx] mov ecx, edi ; gcrRegs +[ecx] @@ -76,7 +71,6 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 cmp esi, edx jae SHORT G_M46152_IG06 mov ecx, dword ptr [eax+4*esi+0x08]
- mov ebx, dword ptr [ebp-0x10]
cmp ebx, edx jae SHORT G_M46152_IG06 mov edx, dword ptr [eax+4*ebx+0x08] @@ -84,24 +78,21 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 mov dword ptr [eax+4*ebx+0x08], ecx dec ebx test ebx, ebx
- mov eax, ebx - ; gcrRegs -[eax]
jg SHORT G_M46152_IG04
- ;; size=84 bbWeight=4 PerfScore 132.00
+ ;; size=76 bbWeight=4 PerfScore 121.00
G_M46152_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
- ; gcrRegs -[edi] - lea esp, [ebp-0x0C]
+ ; gcrRegs -[eax edi]
pop ebx pop esi pop edi pop ebp ret
- ;; size=8 bbWeight=1 PerfScore 3.50
+ ;; size=5 bbWeight=1 PerfScore 3.00
G_M46152_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 9, PerfScore 148.00, instruction count 56, allocated bytes for code 144 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
+; Total bytes of code 126, prolog size 6, PerfScore 135.75, instruction count 49, allocated bytes for code 126 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
; ============================================================

-25 (-11.90%) : 10733.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)

@@ -9,19 +9,19 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 7, 5 ) byref -> esi this single-def
-; V01 arg1 [V01,T06] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
+; V01 arg1 [V01,T05] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivitySpanId> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivityTraceId> ;* V04 tmp0 [V04 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivitySpanId> ;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivityTraceId> ;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V07 tmp3 [V07,T01] ( 6, 6 ) ref -> edx class-hnd exact single-def "impAppendStmt" <System.String>
+; V07 tmp3 [V07,T01] ( 5, 5 ) ref -> ecx class-hnd exact single-def "impAppendStmt" <System.String>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String> ;* V10 tmp6 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V11 tmp7 [V11,T08] ( 2, 1 ) ubyte -> eax "Inline return value spill temp" ;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V14 tmp10 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V15 tmp11 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" @@ -31,27 +31,30 @@ ;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V21 tmp17 [V21,T09] ( 2, 1 ) ubyte -> eax "Inline return value spill temp" ;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V25 tmp21 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V26 tmp22 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V27 tmp23 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V28 tmp24 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.String>
+; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> edx class-hnd exact single-def "Inlining Arg" <System.String>
; V30 tmp26 [V30,T10] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
-; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V32 tmp28 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V33 tmp29 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V34 tmp30 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V35 tmp31 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V36 tmp32 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V37 tmp33 [V37,T03] ( 6, 4 ) ref -> edx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP -; V38 tmp34 [V38,T05] ( 6, 3 ) ref -> edx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP -; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> ecx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP -; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> ecx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP -; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> ecx single-def "argument with side effect" -; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> ecx single-def "argument with side effect" -; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
+; V37 tmp33 [V37,T03] ( 5, 3.50) ref -> ecx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP +; V38 tmp34 [V38,T06] ( 5, 2.50) ref -> ecx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP +; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> edx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP +; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> edx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP +; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V44 cse0 [V44,T17] ( 3, 1.50) int -> eax "CSE - unknown" +; V45 cse1 [V45,T18] ( 3, 1.50) int -> eax "CSE - unknown" +; V46 cse2 [V46,T19] ( 3, 1.50) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 @@ -63,103 +66,91 @@ G_M43911_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b ; byrRegs +[esi] ;; size=6 bbWeight=1 PerfScore 2.50 G_M43911_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
- mov edx, gword ptr [esi+0x10] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x18]
+ mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x18] + ; gcrRegs +[edx] + cmp ecx, edx
je SHORT G_M43911_IG04 ;; size=10 bbWeight=1 PerfScore 4.25
-G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref - test edx, edx - je G_M43911_IG08
+G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref, isz
test ecx, ecx je G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
- je G_M43911_IG08 - ;; size=58 bbWeight=0.50 PerfScore 8.62 -G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz - mov edx, gword ptr [esi+0x0C] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x14] - ; gcrRegs +[ecx] - cmp edx, ecx - je SHORT G_M43911_IG05 - test edx, edx
je SHORT G_M43911_IG08
+ ;; size=47 bbWeight=0.50 PerfScore 7.25 +G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz + mov ecx, gword ptr [esi+0x0C] + ; gcrRegs +[ecx] + mov edx, gword ptr [ebp+0x14] + ; gcrRegs +[edx] + cmp ecx, edx + je SHORT G_M43911_IG05
test ecx, ecx je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je SHORT G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax je SHORT G_M43911_IG08
- ;; size=52 bbWeight=0.50 PerfScore 10.75
+ ;; size=45 bbWeight=0.50 PerfScore 9.38
G_M43911_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz mov edx, dword ptr [esi+0x04] cmp edx, dword ptr [ebp+0x0C] jne SHORT G_M43911_IG08
- mov edx, gword ptr [esi] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x08]
+ mov ecx, gword ptr [esi]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x08] + ; gcrRegs +[edx] + cmp ecx, edx
je SHORT G_M43911_IG06
- test edx, edx - je SHORT G_M43911_IG08
test ecx, ecx je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je SHORT G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax je SHORT G_M43911_IG08
- ;; size=59 bbWeight=0.50 PerfScore 13.25
+ ;; size=52 bbWeight=0.50 PerfScore 11.88
G_M43911_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref movzx eax, byte ptr [esi+0x08] cmp al, byte ptr [ebp+0x10] @@ -181,6 +172,6 @@ G_M43911_IG09: ; bbWeight=0.50, epilog, nogc, extend ret 20 ;; size=5 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 210, prolog size 4, PerfScore 45.12, instruction count 81, allocated bytes for code 210 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
+; Total bytes of code 185, prolog size 4, PerfScore 41.00, instruction count 72, allocated bytes for code 185 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
; ============================================================

+41 (+21.13%) : 19464.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon

@@ -11,19 +11,22 @@ ;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]> ; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def ; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx -; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14] +; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]> ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>> -; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>> +; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup" -; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup" +; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x24] +; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 12
+ sub esp, 28 + xor eax, eax + mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx mov esi, gword ptr [ebp+0x08] ; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz mov edx, dword ptr [ecx+0x20] mov edx, dword ptr [edx+0x08] @@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000 call CORINFO_HELP_RUNTIMEHANDLE_METHOD mov edx, eax ;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx call CORINFO_HELP_NEWSFAST ; gcrRegs +[eax] @@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this] ; gcrRegs -[eax ecx] mov ebx, dword ptr [esi+0x04]
- dec ebx - js SHORT G_M23436_IG10 - ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M23436_IG10 + ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ mov dword ptr [ebp-0x14], eax + mov ebx, gword ptr [esi+4*eax+0x08] + ; gcrRegs +[ebx] + mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax - ; GC ptr vars +{V04} - mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30] call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09} mov edx, eax ; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20] + push ebx
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[esi] jmp SHORT G_M23436_IG10 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M23436_IG12 - mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ cmp eax, ebx + jae SHORT G_M23436_IG13 + mov dword ptr [ebp-0x14], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx + ; gcrRegs +[edx] + mov ecx, edx + mov gword ptr [ebp-0x24], ecx + mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x30] - call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30] + mov dword ptr [ebp-0x28], ecx + mov ecx, gword ptr [ebp-0x24] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x28] + call [ebx+0x14]<unknown method> + ; gcrRegs -[ecx edx] +[eax] + mov ebx, eax + ; gcrRegs +[ebx]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V09} - mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push ebx + push gword ptr [ebp-0x1C]
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09 - ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx + jns SHORT G_M23436_IG12 + ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[esi] mov eax, edi @@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend pop ebp ret 4 ;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov ebx, dword ptr [ebp-0x18] + jmp SHORT G_M23436_IG09 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================

+28 (+23.73%) : 15445.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M36141_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M36141_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M36141_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M36141_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M36141_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M36141_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M36141_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M36141_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M36141_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M36141_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M36141_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M36141_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M36141_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M36141_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
; ============================================================

+28 (+23.73%) : 8831.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:g_GetParameterTypes|220(System.Reflection.ParameterInfo[]):System.Type

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.Type[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.Type[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd "Strict ordering of exceptions for Array store" <System.Type> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M57380_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.Type[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M57380_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M57380_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M57380_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M57380_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M57380_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M57380_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M57380_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M57380_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M57380_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M57380_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M57380_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M57380_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M57380_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
; ============================================================

benchmarks.run_pgo.windows.x86.checked.mch

-5 (-29.41%) : 11837.dasm - System.Math:Min(short,short):short (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 3 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M25012_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M25012_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx movsx edx, dx
- movsx ecx, cx
cmp eax, edx
- mov eax, edx - cmovle eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M25012_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
; ============================================================

-5 (-29.41%) : 24261.dasm - System.Math:Min(short,short):short (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 6 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M25012_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M25012_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx movsx edx, dx
- movsx ecx, cx
cmp eax, edx
- mov eax, edx - cmovle eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M25012_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
; ============================================================

-5 (-29.41%) : 103821.dasm - System.Math:Min(short,short):short (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 11 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M25012_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M25012_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx movsx edx, dx
- movsx ecx, cx
cmp eax, edx
- mov eax, edx - cmovle eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M25012_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
; ============================================================

+41 (+21.13%) : 87125.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon

@@ -11,19 +11,22 @@ ;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]> ; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def ; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx -; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14] +; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]> ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>> -; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>> +; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup" -; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup" +; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x24] +; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 12
+ sub esp, 28 + xor eax, eax + mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx mov esi, gword ptr [ebp+0x08] ; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz mov edx, dword ptr [ecx+0x20] mov edx, dword ptr [edx+0x08] @@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000 call CORINFO_HELP_RUNTIMEHANDLE_METHOD mov edx, eax ;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx call CORINFO_HELP_NEWSFAST ; gcrRegs +[eax] @@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this] ; gcrRegs -[eax ecx] mov ebx, dword ptr [esi+0x04]
- dec ebx - js SHORT G_M23436_IG10 - ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M23436_IG10 + ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ mov dword ptr [ebp-0x14], eax + mov ebx, gword ptr [esi+4*eax+0x08] + ; gcrRegs +[ebx] + mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax - ; GC ptr vars +{V04} - mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30] call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09} mov edx, eax ; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20] + push ebx
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[esi] jmp SHORT G_M23436_IG10 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M23436_IG12 - mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ cmp eax, ebx + jae SHORT G_M23436_IG13 + mov dword ptr [ebp-0x14], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx + ; gcrRegs +[edx] + mov ecx, edx + mov gword ptr [ebp-0x24], ecx + mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x30] - call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30] + mov dword ptr [ebp-0x28], ecx + mov ecx, gword ptr [ebp-0x24] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x28] + call [ebx+0x14]<unknown method> + ; gcrRegs -[ecx edx] +[eax] + mov ebx, eax + ; gcrRegs +[ebx]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V09} - mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push ebx + push gword ptr [ebp-0x1C]
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09 - ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx + jns SHORT G_M23436_IG12 + ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[esi] mov eax, edi @@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend pop ebp ret 4 ;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov ebx, dword ptr [ebp-0x18] + jmp SHORT G_M23436_IG09 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
; ============================================================

+28 (+23.73%) : 30178.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:g_GetParameterTypes|220(System.Reflection.ParameterInfo[]):System.Type

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.Type[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.Type[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd "Strict ordering of exceptions for Array store" <System.Type> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M57380_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.Type[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M57380_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M57380_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M57380_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M57380_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M57380_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M57380_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M57380_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M57380_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M57380_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M57380_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M57380_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M57380_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M57380_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
; ============================================================

+28 (+23.73%) : 70115.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M36141_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M36141_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M36141_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M36141_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M36141_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M36141_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M36141_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M36141_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M36141_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M36141_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M36141_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M36141_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M36141_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M36141_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
; ============================================================

benchmarks.run_tiered.windows.x86.checked.mch

-22 (-18.33%) : 35423.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)

@@ -8,8 +8,8 @@ ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T03] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> -; V01 arg1 [V01,T04] ( 3, 6 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 this [V00,T04] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> +; V01 arg1 [V01,T03] ( 3, 6 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 loc0 [V02,T07] ( 2, 5 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <<unknown class>> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> @@ -17,18 +17,19 @@ ;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V09 tmp4 [V09,T02] ( 4, 13 ) int -> edx "Inline stloc first use temp" -; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> [ebp-0x18] spill-single-def "field V03._array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T02] ( 4, 13 ) int -> eax "Inline stloc first use temp" +; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> ebx single-def "field V03._array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T01] ( 4, 13 ) int -> [ebp-0x10] "field V03._index (fldOffset=0x4)" P-INDEP ; V12 tmp7 [V12,T09] ( 3, 3 ) ref -> eax "field V04.array (fldOffset=0x0)" P-INDEP ;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.array (fldOffset=0x0)" P-INDEP
-; V14 tmp9 [V14,T10] ( 2, 2 ) ref -> eax single-def "field V07._array (fldOffset=0x0)" P-INDEP -;* V15 tmp10 [V15,T11] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
+; V14 tmp9 [V14,T11] ( 2, 2 ) ref -> ebx single-def "field V07._array (fldOffset=0x0)" P-INDEP +;* V15 tmp10 [V15,T12] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
; V16 tmp11 [V16,T05] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
-; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> [ebp-0x1C] spill-single-def "argument with side effect" -; V18 cse0 [V18,T06] ( 3, 6 ) int -> esi "CSE - aggressive"
+; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> ecx "argument with side effect" +; V18 cse0 [V18,T06] ( 3, 6 ) int -> edi "CSE - unknown" +; V19 cse1 [V19,T10] ( 3, 3 ) int -> ebx "CSE - unknown"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -36,17 +37,17 @@ G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 16 - mov esi, ecx - ; gcrRegs +[esi] - mov edi, edx
+ sub esp, 8 + mov edi, ecx
; gcrRegs +[edi]
+ mov esi, edx + ; gcrRegs +[esi]
;; size=13 bbWeight=1 PerfScore 5.00 G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x34]
+ mov ebx, dword ptr [edi] + mov eax, dword ptr [ebx+0x34]
call [eax+0x10]<unknown method> ; gcrRegs -[ecx] +[eax] mov ecx, gword ptr [eax+0x08] @@ -56,54 +57,43 @@ G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 mov eax, dword ptr [eax+0x54] call [eax+0x0C]<unknown method> ; gcrRegs -[ecx] +[eax]
+ mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V02} + mov ecx, edi + ; gcrRegs +[ecx] + mov edx, dword ptr [ebx+0x54] + call [edx+0x10]<unknown method> + ; gcrRegs -[ecx edi] + mov edi, dword ptr [eax+0x04]
mov ebx, eax ; gcrRegs +[ebx]
- mov gword ptr [ebp-0x14], ebx - ; GC ptr vars +{V02} - mov ecx, esi - ; gcrRegs +[ecx] - mov eax, dword ptr [esi]
+ xor eax, eax
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x54] - call [eax+0x10]<unknown method> - ; gcrRegs -[ecx esi] +[eax] - mov esi, dword ptr [eax+0x04] - mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V10}
xor edx, edx
- xor ecx, ecx - mov dword ptr [ebp-0x10], ecx - test esi, esi
+ mov dword ptr [ebp-0x10], edx + test edi, edi
jle SHORT G_M33036_IG04
- ;; size=53 bbWeight=1 PerfScore 30.50 -G_M33036_IG03: ; bbWeight=4, gcVars=00000180 {V02 V10}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz - mov edx, gword ptr [eax+4*edx+0x08] - ; gcrRegs +[edx] - mov gword ptr [ebp-0x1C], edx - ; GC ptr vars +{V17} - push edi - mov ecx, edx
+ ;; size=48 bbWeight=1 PerfScore 27.50 +G_M33036_IG03: ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov ecx, gword ptr [ebx+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, ebx - mov ebx, gword ptr [ebp-0x1C] - mov ebx, dword ptr [ebx] - ; gcrRegs -[ebx] - mov ebx, dword ptr [ebx+0x44] - ; GC ptr vars -{V17} - call [ebx+0x08]<unknown method> - ; gcrRegs -[eax ecx edx] - mov ebx, dword ptr [ebp-0x10] - lea edx, [ebx+0x01] - mov ebx, edx - cmp esi, ebx - mov dword ptr [ebp-0x10], ebx - mov eax, gword ptr [ebp-0x18] - ; gcrRegs +[eax] - jg SHORT G_M33036_IG05 - ;; size=41 bbWeight=4 PerfScore 70.00
+ push esi + mov edx, gword ptr [ebp-0x14] + ; gcrRegs +[edx] + mov eax, dword ptr [ecx] + mov eax, dword ptr [eax+0x44] + call [eax+0x08]<unknown method> + ; gcrRegs -[ecx edx] + mov eax, dword ptr [ebp-0x10] + inc eax + mov edx, eax + cmp edi, edx + mov dword ptr [ebp-0x10], edx + jg SHORT G_M33036_IG03 + ;; size=29 bbWeight=4 PerfScore 59.00
G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
- ; gcrRegs -[eax edi] - ; GC ptr vars -{V02 V10}
+ ; gcrRegs -[ebx esi] + ; GC ptr vars -{V02}
lea esp, [ebp-0x0C] pop ebx pop esi @@ -111,14 +101,7 @@ G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b pop ebp ret ;; size=8 bbWeight=1 PerfScore 3.50
-G_M33036_IG05: ; bbWeight=2, gcVars=00000180 {V02 V10}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz - ; gcrRegs +[eax edi] - ; GC ptr vars +{V02 V10} - mov ebx, gword ptr [ebp-0x14] - ; gcrRegs +[ebx] - jmp SHORT G_M33036_IG03 - ;; size=5 bbWeight=2 PerfScore 6.00
-; Total bytes of code 120, prolog size 9, PerfScore 115.00, instruction count 53, allocated bytes for code 120 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
+; Total bytes of code 98, prolog size 9, PerfScore 95.00, instruction count 45, allocated bytes for code 98 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
; ============================================================

-18 (-12.50%) : 30662.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)

@@ -9,19 +9,18 @@ ; Final local variable assignments ; ; V00 this [V00,T04] ( 6, 14.50) ref -> edi this class-hnd single-def <Benchstone.BenchI.Permutate>
-; V01 arg1 [V01,T03] ( 10, 27.50) int -> esi single-def -; V02 loc0 [V02,T02] ( 11, 37 ) int -> [ebp-0x10]
+; V01 arg1 [V01,T03] ( 12, 32 ) int -> esi single-def +; V02 loc0 [V02,T02] ( 11, 37 ) int -> ebx
; V03 tmp0 [V03,T00] ( 6, 48 ) ref -> edx class-hnd "Inlining Arg" <int[]>
-; V04 tmp1 [V04,T09] ( 2, 8 ) int -> ebx "Inline stloc first use temp"
+; V04 tmp1 [V04,T09] ( 2, 8 ) int -> eax "Inline stloc first use temp"
; V05 tmp2 [V05,T05] ( 2, 16 ) int -> ecx "Strict ordering of exceptions for Array store" ; V06 tmp3 [V06,T01] ( 6, 48 ) ref -> eax class-hnd "Inlining Arg" <int[]> ; V07 tmp4 [V07,T10] ( 2, 8 ) int -> ecx "Inline stloc first use temp" ; V08 tmp5 [V08,T06] ( 2, 16 ) int -> edx "Strict ordering of exceptions for Array store"
-; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - aggressive" -; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - aggressive" -; V11 cse2 [V11,T11] ( 4, 5.50) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - unknown" +; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -29,42 +28,38 @@ G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 8
mov edi, ecx ; gcrRegs +[edi] mov esi, edx
- ;; size=13 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 4.75
G_M46152_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz inc dword ptr [D1FFAB1EH] cmp esi, 1 je SHORT G_M46152_IG05 ;; size=11 bbWeight=1 PerfScore 4.25 G_M46152_IG03: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
- lea ebx, [esi-0x01] - mov dword ptr [ebp-0x14], ebx - mov edx, ebx
+ lea edx, [esi-0x01]
mov ecx, edi ; gcrRegs +[ecx] call [Benchstone.BenchI.Permutate:PermuteArray(int):this] ; gcrRegs -[ecx]
- mov eax, ebx - test eax, eax
+ lea ebx, [esi-0x01] + test ebx, ebx
jle SHORT G_M46152_IG05
- ;; size=22 bbWeight=0.50 PerfScore 3.25
+ ;; size=18 bbWeight=0.50 PerfScore 2.75
G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz mov edx, gword ptr [edi+0x04] ; gcrRegs +[edx] mov ecx, dword ptr [edx+0x04] cmp esi, ecx jae SHORT G_M46152_IG06
- mov ebx, dword ptr [edx+4*esi+0x08] - cmp eax, ecx
+ mov eax, dword ptr [edx+4*esi+0x08] + cmp ebx, ecx
jae SHORT G_M46152_IG06
- mov ecx, dword ptr [edx+4*eax+0x08]
+ mov ecx, dword ptr [edx+4*ebx+0x08]
mov dword ptr [edx+4*esi+0x08], ecx
- mov dword ptr [ebp-0x10], eax - mov dword ptr [edx+4*eax+0x08], ebx - mov edx, dword ptr [ebp-0x14]
+ mov dword ptr [edx+4*ebx+0x08], eax + lea edx, [esi-0x01]
; gcrRegs -[edx] mov ecx, edi ; gcrRegs +[ecx] @@ -76,7 +71,6 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 cmp esi, edx jae SHORT G_M46152_IG06 mov ecx, dword ptr [eax+4*esi+0x08]
- mov ebx, dword ptr [ebp-0x10]
cmp ebx, edx jae SHORT G_M46152_IG06 mov edx, dword ptr [eax+4*ebx+0x08] @@ -84,24 +78,21 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 mov dword ptr [eax+4*ebx+0x08], ecx dec ebx test ebx, ebx
- mov eax, ebx - ; gcrRegs -[eax]
jg SHORT G_M46152_IG04
- ;; size=84 bbWeight=4 PerfScore 132.00
+ ;; size=76 bbWeight=4 PerfScore 121.00
G_M46152_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
- ; gcrRegs -[edi] - lea esp, [ebp-0x0C]
+ ; gcrRegs -[eax edi]
pop ebx pop esi pop edi pop ebp ret
- ;; size=8 bbWeight=1 PerfScore 3.50
+ ;; size=5 bbWeight=1 PerfScore 3.00
G_M46152_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 9, PerfScore 148.00, instruction count 56, allocated bytes for code 144 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
+; Total bytes of code 126, prolog size 6, PerfScore 135.75, instruction count 49, allocated bytes for code 126 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
; ============================================================

-25 (-11.90%) : 22685.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)

@@ -9,19 +9,19 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 7, 5 ) byref -> esi this single-def
-; V01 arg1 [V01,T06] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
+; V01 arg1 [V01,T05] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivitySpanId> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivityTraceId> ;* V04 tmp0 [V04 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivitySpanId> ;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivityTraceId> ;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V07 tmp3 [V07,T01] ( 6, 6 ) ref -> edx class-hnd exact single-def "impAppendStmt" <System.String>
+; V07 tmp3 [V07,T01] ( 5, 5 ) ref -> ecx class-hnd exact single-def "impAppendStmt" <System.String>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String> ;* V10 tmp6 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V11 tmp7 [V11,T08] ( 2, 1 ) ubyte -> eax "Inline return value spill temp" ;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V14 tmp10 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V15 tmp11 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" @@ -31,27 +31,30 @@ ;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V21 tmp17 [V21,T09] ( 2, 1 ) ubyte -> eax "Inline return value spill temp" ;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V25 tmp21 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V26 tmp22 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V27 tmp23 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V28 tmp24 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.String>
+; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> edx class-hnd exact single-def "Inlining Arg" <System.String>
; V30 tmp26 [V30,T10] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
-; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V32 tmp28 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V33 tmp29 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V34 tmp30 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V35 tmp31 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V36 tmp32 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V37 tmp33 [V37,T03] ( 6, 4 ) ref -> edx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP -; V38 tmp34 [V38,T05] ( 6, 3 ) ref -> edx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP -; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> ecx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP -; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> ecx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP -; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> ecx single-def "argument with side effect" -; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> ecx single-def "argument with side effect" -; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
+; V37 tmp33 [V37,T03] ( 5, 3.50) ref -> ecx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP +; V38 tmp34 [V38,T06] ( 5, 2.50) ref -> ecx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP +; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> edx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP +; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> edx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP +; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V44 cse0 [V44,T17] ( 3, 1.50) int -> eax "CSE - unknown" +; V45 cse1 [V45,T18] ( 3, 1.50) int -> eax "CSE - unknown" +; V46 cse2 [V46,T19] ( 3, 1.50) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 @@ -63,103 +66,91 @@ G_M43911_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b ; byrRegs +[esi] ;; size=6 bbWeight=1 PerfScore 2.50 G_M43911_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
- mov edx, gword ptr [esi+0x10] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x18]
+ mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x18] + ; gcrRegs +[edx] + cmp ecx, edx
je SHORT G_M43911_IG04 ;; size=10 bbWeight=1 PerfScore 4.25
-G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref - test edx, edx - je G_M43911_IG08
+G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref, isz
test ecx, ecx je G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
- je G_M43911_IG08 - ;; size=58 bbWeight=0.50 PerfScore 8.62 -G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz - mov edx, gword ptr [esi+0x0C] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x14] - ; gcrRegs +[ecx] - cmp edx, ecx - je SHORT G_M43911_IG05 - test edx, edx
je SHORT G_M43911_IG08
+ ;; size=47 bbWeight=0.50 PerfScore 7.25 +G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz + mov ecx, gword ptr [esi+0x0C] + ; gcrRegs +[ecx] + mov edx, gword ptr [ebp+0x14] + ; gcrRegs +[edx] + cmp ecx, edx + je SHORT G_M43911_IG05
test ecx, ecx je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je SHORT G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax je SHORT G_M43911_IG08
- ;; size=52 bbWeight=0.50 PerfScore 10.75
+ ;; size=45 bbWeight=0.50 PerfScore 9.38
G_M43911_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz mov edx, dword ptr [esi+0x04] cmp edx, dword ptr [ebp+0x0C] jne SHORT G_M43911_IG08
- mov edx, gword ptr [esi] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x08]
+ mov ecx, gword ptr [esi]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x08] + ; gcrRegs +[edx] + cmp ecx, edx
je SHORT G_M43911_IG06
- test edx, edx - je SHORT G_M43911_IG08
test ecx, ecx je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je SHORT G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax je SHORT G_M43911_IG08
- ;; size=59 bbWeight=0.50 PerfScore 13.25
+ ;; size=52 bbWeight=0.50 PerfScore 11.88
G_M43911_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref movzx eax, byte ptr [esi+0x08] cmp al, byte ptr [ebp+0x10] @@ -181,6 +172,6 @@ G_M43911_IG09: ; bbWeight=0.50, epilog, nogc, extend ret 20 ;; size=5 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 210, prolog size 4, PerfScore 45.12, instruction count 81, allocated bytes for code 210 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
+; Total bytes of code 185, prolog size 4, PerfScore 41.00, instruction count 72, allocated bytes for code 185 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
; ============================================================

+41 (+21.13%) : 40330.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon

@@ -11,19 +11,22 @@ ;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]> ; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def ; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx -; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14] +; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]> ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>> -; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>> +; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup" -; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup" +; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x24] +; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 12
+ sub esp, 28 + xor eax, eax + mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx mov esi, gword ptr [ebp+0x08] ; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz mov edx, dword ptr [ecx+0x20] mov edx, dword ptr [edx+0x08] @@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000 call CORINFO_HELP_RUNTIMEHANDLE_METHOD mov edx, eax ;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx call CORINFO_HELP_NEWSFAST ; gcrRegs +[eax] @@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this] ; gcrRegs -[eax ecx] mov ebx, dword ptr [esi+0x04]
- dec ebx - js SHORT G_M23436_IG10 - ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M23436_IG10 + ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ mov dword ptr [ebp-0x14], eax + mov ebx, gword ptr [esi+4*eax+0x08] + ; gcrRegs +[ebx] + mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax - ; GC ptr vars +{V04} - mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30] call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09} mov edx, eax ; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20] + push ebx
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[esi] jmp SHORT G_M23436_IG10 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M23436_IG12 - mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ cmp eax, ebx + jae SHORT G_M23436_IG13 + mov dword ptr [ebp-0x14], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx + ; gcrRegs +[edx] + mov ecx, edx + mov gword ptr [ebp-0x24], ecx + mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x30] - call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30] + mov dword ptr [ebp-0x28], ecx + mov ecx, gword ptr [ebp-0x24] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x28] + call [ebx+0x14]<unknown method> + ; gcrRegs -[ecx edx] +[eax] + mov ebx, eax + ; gcrRegs +[ebx]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V09} - mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push ebx + push gword ptr [ebp-0x1C]
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09 - ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx + jns SHORT G_M23436_IG12 + ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[esi] mov eax, edi @@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend pop ebp ret 4 ;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov ebx, dword ptr [ebp-0x18] + jmp SHORT G_M23436_IG09 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
; ============================================================

+28 (+23.73%) : 31293.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M36141_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M36141_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M36141_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M36141_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M36141_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M36141_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M36141_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M36141_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M36141_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M36141_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M36141_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M36141_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M36141_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M36141_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
; ============================================================

+28 (+23.73%) : 18168.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:g_GetParameterTypes|220(System.Reflection.ParameterInfo[]):System.Type

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.Type[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.Type[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd "Strict ordering of exceptions for Array store" <System.Type> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M57380_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.Type[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M57380_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M57380_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M57380_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M57380_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M57380_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M57380_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M57380_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M57380_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M57380_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M57380_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M57380_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M57380_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M57380_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
; ============================================================

coreclr_tests.run.windows.x86.checked.mch

-5 (-29.41%) : 49992.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 224 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M34407_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M34407_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl movzx edx, dl
- movzx ecx, cl
cmp eax, edx
- mov eax, edx - cmovge eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M34407_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
; ============================================================

-5 (-29.41%) : 50004.dasm - System.Math:Max(byte,byte):byte (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 224 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) byte -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) byte -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) byte -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M42290_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M42290_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cl movsx edx, dl
- movsx ecx, cl
cmp eax, edx
- mov eax, edx - cmovge eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M42290_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
; ============================================================

-3 (-20.00%) : 231000.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 393 ; Final local variable assignments ;
-; V00 arg0 [V00,T01] ( 3, 3 ) ubyte -> ecx single-def -; V01 arg1 [V01,T00] ( 4, 4 ) ubyte -> edx single-def -; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - aggressive"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 @@ -18,15 +19,14 @@ G_M34407_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} ;; size=0 bbWeight=1 PerfScore 0.00 G_M34407_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ecx, dl
movzx edx, dl
- cmp eax, ecx
+ cmp eax, edx
cmovl eax, edx
- ;; size=14 bbWeight=1 PerfScore 1.25
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M34407_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 15, prolog size 0, PerfScore 2.25, instruction count 6, allocated bytes for code 15 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
; ============================================================

+6 (+24.00%) : 477513.dasm - Point:DistanceSquared(Point):int:this (FullOpts)

@@ -9,31 +9,40 @@ ; ; V00 this [V00,T00] ( 4, 4 ) ref -> ecx this class-hnd single-def <Point> ; V01 arg1 [V01,T01] ( 4, 4 ) ref -> edx class-hnd single-def <Point>
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - aggressive" -; V03 cse1 [V03,T03] ( 3, 3 ) int -> ecx "CSE - aggressive"
+; V02 cse0 [V02,T04] ( 2, 2 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T05] ( 2, 2 ) int -> esi "CSE - unknown" +; V04 cse2 [V04,T06] ( 2, 2 ) int -> ecx "CSE - unknown" +; V05 cse3 [V05,T07] ( 2, 2 ) int -> edx "CSE - unknown" +; V06 cse4 [V06,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V07 cse5 [V07,T03] ( 3, 3 ) int -> ecx "CSE - unknown"
; ; Lcl frame size = 0 G_M50994_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ push esi + ;; size=4 bbWeight=1 PerfScore 2.25
G_M50994_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref ; gcrRegs +[ecx edx] mov eax, dword ptr [ecx+0x04]
- sub eax, dword ptr [edx+0x04]
+ mov esi, dword ptr [edx+0x04] + sub eax, esi
imul eax, eax mov ecx, dword ptr [ecx+0x08] ; gcrRegs -[ecx]
- sub ecx, dword ptr [edx+0x08]
+ mov edx, dword ptr [edx+0x08] + ; gcrRegs -[edx] + sub ecx, edx
imul ecx, ecx add eax, ecx
- ;; size=20 bbWeight=1 PerfScore 14.25
+ ;; size=24 bbWeight=1 PerfScore 12.75
G_M50994_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop esi
pop ebp ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
-; Total bytes of code 25, prolog size 3, PerfScore 17.00, instruction count 11, allocated bytes for code 25 (MethodHash=7b1838cd) for method Point:DistanceSquared(Point):int:this (FullOpts)
+; Total bytes of code 31, prolog size 4, PerfScore 17.00, instruction count 15, allocated bytes for code 31 (MethodHash=7b1838cd) for method Point:DistanceSquared(Point):int:this (FullOpts)
; ============================================================

+32 (+27.59%) : 513573.dasm - Test10w5d.testout1:Func04421():double (FullOpts)

@@ -8,12 +8,11 @@ ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 loc0 [V00,T01] ( 4, 3.50) double -> mm0 single-def
+; V00 loc0 [V00,T00] ( 8, 5.50) double -> [ebp-0x08] spill-single-def
;* V01 loc1 [V01 ] ( 0, 0 ) double -> zero-ref ;* V02 tmp0 [V02 ] ( 0, 0 ) double -> zero-ref "Inlining Arg" ;* V03 tmp1 [V03 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
-; V04 cse0 [V04,T00] ( 6, 4 ) double -> [ebp-0x08] spill-single-def "CSE - aggressive" -; V05 cse1 [V05,T02] ( 3, 3 ) double -> mm0 "CSE - aggressive"
+; V04 cse0 [V04,T01] ( 3, 3 ) double -> mm0 "CSE - unknown"
; TEMP_01 double -> [ebp-0x10] ; ; Lcl frame size = 16 @@ -30,20 +29,23 @@ G_M12661_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} ; gcrRegs +[ecx] vdivsd xmm0, xmm0, qword ptr [ecx+0x04] vaddsd xmm0, xmm0, qword ptr [@RWD08]
+ vmovsd qword ptr [ebp-0x08], xmm0
vaddsd xmm1, xmm0, qword ptr [@RWD16]
- vmovsd qword ptr [ebp-0x08], xmm1
vucomisd xmm0, xmm1 jbe SHORT G_M12661_IG06 ;; size=54 bbWeight=1 PerfScore 36.00 G_M12661_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[ecx]
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, xmm0 jbe SHORT G_M12661_IG06
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, qword ptr [@RWD24] jb SHORT G_M12661_IG05
- vmovsd qword ptr [ebp-0x08], xmm1 - fld qword ptr [ebp-0x08] - ;; size=24 bbWeight=0.50 PerfScore 4.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16] + vmovsd qword ptr [ebp-0x10], xmm0 + fld qword ptr [ebp-0x10] + ;; size=48 bbWeight=0.50 PerfScore 12.25
G_M12661_IG04: ; bbWeight=0.50, epilog, nogc, extend mov esp, ebp pop ebp @@ -54,12 +56,13 @@ G_M12661_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {} ; gcrRegs +[ecx] call [<unknown method>] ; gcrRegs -[ecx]
- vmovsd xmm1, qword ptr [ebp-0x08]
+ vmovsd xmm0, qword ptr [ebp-0x08]
;; size=16 bbWeight=0.50 PerfScore 3.12 G_M12661_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- vmovsd qword ptr [ebp-0x08], xmm1 - fld qword ptr [ebp-0x08] - ;; size=8 bbWeight=0.50 PerfScore 0.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16] + vmovsd qword ptr [ebp-0x10], xmm0 + fld qword ptr [ebp-0x10] + ;; size=16 bbWeight=0.50 PerfScore 3.25
G_M12661_IG07: ; bbWeight=0.50, epilog, nogc, extend mov esp, ebp pop ebp @@ -71,6 +74,6 @@ RWD16 dq C14F000004000000h ; -4063232.03 RWD24 dq C060000000000000h ; -128
-; Total bytes of code 116, prolog size 6, PerfScore 47.88, instruction count 29, allocated bytes for code 116 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
+; Total bytes of code 148, prolog size 6, PerfScore 57.88, instruction count 33, allocated bytes for code 148 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
; ============================================================

+32 (+27.59%) : 519759.dasm - Test10w5d.testout1:Func04421():double (FullOpts)

@@ -8,11 +8,10 @@ ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 loc0 [V00,T01] ( 4, 3.50) double -> mm0 single-def
+; V00 loc0 [V00,T00] ( 8, 5.50) double -> [ebp-0x08] spill-single-def
;* V01 tmp0 [V01 ] ( 0, 0 ) double -> zero-ref "Inlining Arg" ;* V02 tmp1 [V02 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
-; V03 cse0 [V03,T00] ( 6, 4 ) double -> [ebp-0x08] spill-single-def "CSE - aggressive" -; V04 cse1 [V04,T02] ( 3, 3 ) double -> mm0 "CSE - aggressive"
+; V03 cse0 [V03,T01] ( 3, 3 ) double -> mm0 "CSE - unknown"
; TEMP_01 double -> [ebp-0x10] ; ; Lcl frame size = 16 @@ -29,20 +28,23 @@ G_M12661_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} ; gcrRegs +[ecx] vdivsd xmm0, xmm0, qword ptr [ecx+0x04] vaddsd xmm0, xmm0, qword ptr [@RWD08]
+ vmovsd qword ptr [ebp-0x08], xmm0
vaddsd xmm1, xmm0, qword ptr [@RWD16]
- vmovsd qword ptr [ebp-0x08], xmm1
vucomisd xmm0, xmm1 jbe SHORT G_M12661_IG06 ;; size=54 bbWeight=1 PerfScore 36.00 G_M12661_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[ecx]
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, xmm0 jbe SHORT G_M12661_IG06
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, qword ptr [@RWD24] jb SHORT G_M12661_IG05
- vmovsd qword ptr [ebp-0x08], xmm1 - fld qword ptr [ebp-0x08] - ;; size=24 bbWeight=0.50 PerfScore 4.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16] + vmovsd qword ptr [ebp-0x10], xmm0 + fld qword ptr [ebp-0x10] + ;; size=48 bbWeight=0.50 PerfScore 12.25
G_M12661_IG04: ; bbWeight=0.50, epilog, nogc, extend mov esp, ebp pop ebp @@ -53,12 +55,13 @@ G_M12661_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {} ; gcrRegs +[ecx] call [<unknown method>] ; gcrRegs -[ecx]
- vmovsd xmm1, qword ptr [ebp-0x08]
+ vmovsd xmm0, qword ptr [ebp-0x08]
;; size=16 bbWeight=0.50 PerfScore 3.12 G_M12661_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- vmovsd qword ptr [ebp-0x08], xmm1 - fld qword ptr [ebp-0x08] - ;; size=8 bbWeight=0.50 PerfScore 0.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16] + vmovsd qword ptr [ebp-0x10], xmm0 + fld qword ptr [ebp-0x10] + ;; size=16 bbWeight=0.50 PerfScore 3.25
G_M12661_IG07: ; bbWeight=0.50, epilog, nogc, extend mov esp, ebp pop ebp @@ -70,6 +73,6 @@ RWD16 dq C14F000004000000h ; -4063232.03 RWD24 dq C060000000000000h ; -128
-; Total bytes of code 116, prolog size 6, PerfScore 47.88, instruction count 29, allocated bytes for code 116 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
+; Total bytes of code 148, prolog size 6, PerfScore 57.88, instruction count 33, allocated bytes for code 148 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
; ============================================================

libraries.crossgen2.windows.x86.checked.mch

-7 (-21.88%) : 242109.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)

@@ -9,47 +9,35 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> esi this class-hnd single-def <System.Dynamic.DynamicMetaObject>
+; V00 this [V00,T00] ( 3, 3 ) ref -> ecx this class-hnd single-def <System.Dynamic.DynamicMetaObject> +; V01 cse0 [V01,T01] ( 3, 3 ) ref -> esi "CSE - unknown"
; ; Lcl frame size = 0
-G_M17334_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG - push edi
+G_M17334_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push esi
- mov esi, ecx
+ ;; size=1 bbWeight=1 PerfScore 1.00 +G_M17334_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref + ; gcrRegs +[ecx] + mov esi, gword ptr [ecx+0x04]
; gcrRegs +[esi]
- ;; size=4 bbWeight=1 PerfScore 2.25 -G_M17334_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz - mov edi, gword ptr [esi+0x04] - ; gcrRegs +[edi]
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
+ ; gcrRegs -[ecx]
; byrRegs +[eax] ; gcr arg pop 0
- cmp edi, gword ptr [eax+0x0724] - jne SHORT G_M17334_IG05 - ;; size=17 bbWeight=1 PerfScore 9.00 -G_M17334_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref - ; gcrRegs -[esi edi]
+ xor edx, edx + ; gcrRegs +[edx] + cmp esi, gword ptr [eax+0x0724] + mov eax, edx + ; gcrRegs +[eax]
; byrRegs -[eax]
- xor eax, eax - ; gcrRegs +[eax] - ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M17334_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ cmovne eax, esi + ;; size=22 bbWeight=1 PerfScore 8.75 +G_M17334_IG03: ; bbWeight=1, epilog, nogc, extend
pop esi
- pop edi
ret
- ;; size=3 bbWeight=0.50 PerfScore 1.00 -G_M17334_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax] +[esi] - mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - ;; size=3 bbWeight=0.50 PerfScore 1.00 -G_M17334_IG06: ; bbWeight=0.50, epilog, nogc, extend - pop esi - pop edi - ret - ;; size=3 bbWeight=0.50 PerfScore 1.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 2, PerfScore 14.38, instruction count 15, allocated bytes for code 32 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
+; Total bytes of code 25, prolog size 1, PerfScore 11.25, instruction count 9, allocated bytes for code 25 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
; ============================================================

-6 (-18.75%) : 226061.dasm - System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)

@@ -10,6 +10,7 @@ ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Management.MarshalWbemObject> ; V01 arg1 [V01,T00] ( 5, 4.25) ref -> esi class-hnd single-def <System.Object>
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> ecx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +20,17 @@ G_M52331_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} ; gcrRegs +[esi] ;; size=3 bbWeight=1 PerfScore 1.25 G_M52331_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, dword ptr [esi] - cmp ecx, dword ptr [(reloc)] ; <unknown class>
+ mov ecx, dword ptr [(reloc)] ; <unknown class> + cmp dword ptr [esi], ecx
je SHORT G_M52331_IG04 ;; size=10 bbWeight=1 PerfScore 6.00 G_M52331_IG03: ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [(reloc)] ; <unknown class>
mov edx, esi ; gcrRegs +[edx] call [CORINFO_HELP_UNBOX] ; gcrRegs -[edx] ; gcr arg pop 0
- ;; size=14 bbWeight=0.25 PerfScore 1.31
+ ;; size=8 bbWeight=0.25 PerfScore 0.81
G_M52331_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref mov eax, dword ptr [esi+0x04] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -39,6 +39,6 @@ G_M52331_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 1, PerfScore 12.06, instruction count 11, allocated bytes for code 32 (MethodHash=ae8c3394) for method System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 11.56, instruction count 10, allocated bytes for code 26 (MethodHash=ae8c3394) for method System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
; ============================================================

-6 (-18.18%) : 135342.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)

@@ -11,6 +11,7 @@ ; ; V00 this [V00,T01] ( 3, 3 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticDescriptor> ; V01 tmp0 [V01,T00] ( 4, 6.50) ref -> esi single-def "inline UNBOX clone1"
+; V02 cse0 [V02,T02] ( 3, 2.25) int -> ecx "CSE - unknown"
; ; Lcl frame size = 0 @@ -21,19 +22,18 @@ G_M37087_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 ; gcrRegs +[ecx] mov esi, gword ptr [ecx+0x1C] ; gcrRegs +[esi]
- mov ecx, dword ptr [esi]
+ mov ecx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[System.String]
; gcrRegs -[ecx]
- cmp ecx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[System.String]
+ cmp dword ptr [esi], ecx
je SHORT G_M37087_IG04 ;; size=13 bbWeight=1 PerfScore 8.00 G_M37087_IG03: ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[System.String]
mov edx, esi ; gcrRegs +[edx] call [CORINFO_HELP_UNBOX] ; gcrRegs -[edx] ; gcr arg pop 0
- ;; size=14 bbWeight=0.25 PerfScore 1.31
+ ;; size=8 bbWeight=0.25 PerfScore 0.81
G_M37087_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref mov eax, gword ptr [esi+0x04] ; gcrRegs +[eax] @@ -43,6 +43,6 @@ G_M37087_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 1, PerfScore 13.81, instruction count 11, allocated bytes for code 33 (MethodHash=2b986f20) for method Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
+; Total bytes of code 27, prolog size 1, PerfScore 13.31, instruction count 10, allocated bytes for code 27 (MethodHash=2b986f20) for method Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
; ============================================================

+11 (+44.00%) : 165351.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,41 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref
-; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> eax single-def "dup spill"
+; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> ecx single-def "dup spill"
; V04 tmp1 [V04,T02] ( 3, 6 ) byref -> esi single-def "dup spill" ; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> eax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V06 cse0 [V06,T05] ( 3, 3 ) byref -> esi "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 3 ) int -> edi "CSE - unknown"
; ; Lcl frame size = 0 G_M36355_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push edi
push esi
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M36355_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref - ; gcrRegs +[ecx edx] - cmp byte ptr [ecx], cl
+ push ebx
mov esi, ecx ; gcrRegs +[esi]
- add esi, bword ptr [(reloc)] ; const ptr
+ ;; size=5 bbWeight=1 PerfScore 3.25 +G_M36355_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref + ; gcrRegs +[edx] + mov ebx, esi + ; gcrRegs +[ebx] + cmp byte ptr [ebx], bl + mov edi, dword ptr [(reloc)] ; const ptr + lea ecx, bword ptr [esi+edi] + ; byrRegs +[ecx] + dec dword ptr [ecx] + mov ecx, esi + ; gcrRegs +[ecx] + ; byrRegs -[ecx] + call [<unknown method>] + ; gcrRegs -[ecx edx ebx] +[eax] + ; gcr arg pop 0 + add esi, edi
; gcrRegs -[esi] ; byrRegs +[esi]
- mov eax, esi - ; byrRegs +[eax] - dec dword ptr [eax] - call [<unknown method>] - ; gcrRegs -[ecx edx] +[eax] - ; byrRegs -[eax] - ; gcr arg pop 0
inc dword ptr [esi]
- ;; size=22 bbWeight=1 PerfScore 15.50
+ ;; size=27 bbWeight=1 PerfScore 15.25
G_M36355_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
+ pop edi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 25, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 25 (MethodHash=3e3871fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 21.00, instruction count 17, allocated bytes for code 36 (MethodHash=3e3871fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================

+11 (+44.00%) : 165332.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,41 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref
-; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> eax single-def "dup spill"
+; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> ecx single-def "dup spill"
; V04 tmp1 [V04,T02] ( 3, 6 ) byref -> esi single-def "dup spill" ; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> eax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V06 cse0 [V06,T05] ( 3, 3 ) byref -> esi "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 3 ) int -> edi "CSE - unknown"
; ; Lcl frame size = 0 G_M28163_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push edi
push esi
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M28163_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref - ; gcrRegs +[ecx edx] - cmp byte ptr [ecx], cl
+ push ebx
mov esi, ecx ; gcrRegs +[esi]
- add esi, bword ptr [(reloc)] ; const ptr
+ ;; size=5 bbWeight=1 PerfScore 3.25 +G_M28163_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref + ; gcrRegs +[edx] + mov ebx, esi + ; gcrRegs +[ebx] + cmp byte ptr [ebx], bl + mov edi, dword ptr [(reloc)] ; const ptr + lea ecx, bword ptr [esi+edi] + ; byrRegs +[ecx] + dec dword ptr [ecx] + mov ecx, esi + ; gcrRegs +[ecx] + ; byrRegs -[ecx] + call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] + ; gcrRegs -[ecx edx ebx] +[eax] + ; gcr arg pop 0 + add esi, edi
; gcrRegs -[esi] ; byrRegs +[esi]
- mov eax, esi - ; byrRegs +[eax] - dec dword ptr [eax] - call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] - ; gcrRegs -[ecx edx] +[eax] - ; byrRegs -[eax] - ; gcr arg pop 0
inc dword ptr [esi]
- ;; size=22 bbWeight=1 PerfScore 15.50
+ ;; size=27 bbWeight=1 PerfScore 15.25
G_M28163_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
+ pop edi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 25, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 25 (MethodHash=ce8b91fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 21.00, instruction count 17, allocated bytes for code 36 (MethodHash=ce8b91fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================

+11 (+44.00%) : 165352.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,41 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref
-; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> eax single-def "dup spill"
+; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> ecx single-def "dup spill"
; V04 tmp1 [V04,T02] ( 3, 6 ) byref -> esi single-def "dup spill" ; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> eax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V06 cse0 [V06,T05] ( 3, 3 ) byref -> esi "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 3 ) int -> edi "CSE - unknown"
; ; Lcl frame size = 0 G_M26883_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push edi
push esi
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M26883_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref - ; gcrRegs +[ecx edx] - cmp byte ptr [ecx], cl
+ push ebx
mov esi, ecx ; gcrRegs +[esi]
- add esi, bword ptr [(reloc)] ; const ptr
+ ;; size=5 bbWeight=1 PerfScore 3.25 +G_M26883_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref + ; gcrRegs +[edx] + mov ebx, esi + ; gcrRegs +[ebx] + cmp byte ptr [ebx], bl + mov edi, dword ptr [(reloc)] ; const ptr + lea ecx, bword ptr [esi+edi] + ; byrRegs +[ecx] + dec dword ptr [ecx] + mov ecx, esi + ; gcrRegs +[ecx] + ; byrRegs -[ecx] + call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] + ; gcrRegs -[ecx edx ebx] +[eax] + ; gcr arg pop 0 + add esi, edi
; gcrRegs -[esi] ; byrRegs +[esi]
- mov eax, esi - ; byrRegs +[eax] - dec dword ptr [eax] - call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] - ; gcrRegs -[ecx edx] +[eax] - ; byrRegs -[eax] - ; gcr arg pop 0
inc dword ptr [esi]
- ;; size=22 bbWeight=1 PerfScore 15.50
+ ;; size=27 bbWeight=1 PerfScore 15.25
G_M26883_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
+ pop edi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 25, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 25 (MethodHash=71d896fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 21.00, instruction count 17, allocated bytes for code 36 (MethodHash=71d896fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================

libraries.pmi.windows.x86.checked.mch

-10 (-45.45%) : 74157.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M18857_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M18857_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx
- movsx esi, dx - movsx ecx, cx
movsx edx, dx
- cmp eax, esi - mov eax, edx - cmovle eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M18857_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=2809b656) for method System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=2809b656) for method System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================

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

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M13207_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M13207_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ebx, dl - movzx ecx, cl
movzx edx, dl
- cmp eax, ebx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M13207_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=6935cc68) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=6935cc68) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================

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

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> edx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 G_M47351_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M47351_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx
- movsx esi, dx - movsx ecx, cx
movsx edx, dx
- cmp eax, esi - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M47351_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=8d024708) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=8d024708) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================

+22 (+24.44%) : 204129.dasm - Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)

@@ -9,11 +9,13 @@ ; Final local variable assignments ; ; V00 this [V00,T01] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.Build.Framework.ProjectFinishedEventArgs>
-; V01 arg1 [V01,T00] ( 10, 7 ) ref -> esi class-hnd single-def <System.IO.BinaryWriter>
+; V01 arg1 [V01,T00] ( 9, 6.50) ref -> esi class-hnd single-def <System.IO.BinaryWriter>
; V02 tmp0 [V02,T02] ( 3, 5 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <System.String>
-; V03 cse0 [V03,T03] ( 5, 3 ) int -> [ebp-0x10] multi-def "CSE - aggressive"
+; V03 cse0 [V03,T04] ( 5, 2.50) int -> [ebp-0x10] multi-def "CSE - unknown" +; V04 cse1 [V04,T03] ( 5, 3 ) int -> [ebp-0x14] multi-def "CSE - unknown" +; TEMP_01 ref -> [ebp-0x18]
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M13784_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -21,12 +23,14 @@ G_M13784_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12 + xor eax, eax + mov dword ptr [ebp-0x18], eax
mov edi, ecx ; gcrRegs +[edi] mov esi, edx ; gcrRegs +[esi]
- ;; size=11 bbWeight=1 PerfScore 5.75
+ ;; size=18 bbWeight=1 PerfScore 6.25
G_M13784_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz mov ecx, edi ; gcrRegs +[ecx] @@ -44,8 +48,8 @@ G_M13784_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0 mov ecx, esi ; gcrRegs +[ecx] xor edx, edx
- mov eax, dword ptr [esi] - mov ebx, dword ptr [eax+0x30]
+ mov ebx, dword ptr [esi] + mov ebx, dword ptr [ebx+0x30]
call [ebx+0x10]<unknown method> ; gcrRegs -[ecx] jmp SHORT G_M13784_IG05 @@ -54,22 +58,29 @@ G_M13784_IG04: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe ; gcrRegs +[ebx] mov ecx, esi ; gcrRegs +[ecx]
+ mov gword ptr [ebp-0x18], ecx
mov edx, 1 mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0x30]
mov dword ptr [ebp-0x10], eax
+ mov ecx, dword ptr [eax+0x30] + ; gcrRegs -[ecx] + mov dword ptr [ebp-0x14], ecx + mov ecx, gword ptr [ebp-0x18] + ; gcrRegs +[ecx] + mov eax, dword ptr [ebp-0x14]
call [eax+0x10]<unknown method> ; gcrRegs -[ecx] mov ecx, esi ; gcrRegs +[ecx] mov edx, ebx ; gcrRegs +[edx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x38] - call [eax+0x14]<unknown method> - ; gcrRegs -[ecx edx ebx]
mov ebx, dword ptr [ebp-0x10]
- ;; size=33 bbWeight=0.50 PerfScore 8.50
+ ; gcrRegs -[ebx] + mov eax, dword ptr [ebx+0x38] + call [eax+0x14]<unknown method> + ; gcrRegs -[ecx edx] + mov ebx, dword ptr [ebp-0x14] + ;; size=46 bbWeight=0.50 PerfScore 10.00
G_M13784_IG05: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref movzx edx, byte ptr [edi+0x34] mov ecx, esi @@ -78,14 +89,14 @@ G_M13784_IG05: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 ; gcrRegs -[ecx esi edi] ;; size=9 bbWeight=1 PerfScore 5.25 G_M13784_IG06: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 90, prolog size 7, PerfScore 34.50, instruction count 41, allocated bytes for code 90 (MethodHash=44adca27) for method Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
+; Total bytes of code 112, prolog size 14, PerfScore 36.50, instruction count 47, allocated bytes for code 112 (MethodHash=44adca27) for method Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
; ============================================================

+29 (+24.58%) : 249769.dasm - System.Linq.Enumerable+ListPartition`1[System.Canon]:TryGetLast(byref):System.Canon:this (FullOpts)

@@ -8,7 +8,7 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 8, 6.50) ref -> esi this class-hnd single-def <System.Linq.Enumerable+ListPartition`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6 ) ref -> esi this class-hnd single-def <System.Linq.Enumerable+ListPartition`1[System.__Canon]>
; V01 arg1 [V01,T02] ( 4, 3 ) byref -> edi single-def ; V02 loc0 [V02,T05] ( 4, 3 ) int -> eax ;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon> @@ -16,15 +16,15 @@ ; V05 tmp1 [V05,T04] ( 3, 4 ) int -> eax "VirtualCall with runtime lookup" ; V06 tmp2 [V06,T10] ( 2, 2 ) ref -> edi class-hnd single-def "impAppendStmt" <<unknown class>> ;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V08 tmp4 [V08,T09] ( 3, 2 ) int -> eax "VirtualCall with runtime lookup" -; V09 tmp5 [V09,T11] ( 2, 1 ) int -> ebx "Inline return value spill temp"
+; V08 tmp4 [V08,T09] ( 3, 2 ) int -> [ebp-0x10] "VirtualCall with runtime lookup" +; V09 tmp5 [V09,T11] ( 2, 1 ) int -> [ebp-0x14] spill-single-def "Inline return value spill temp"
; V10 tmp6 [V10,T06] ( 3, 3 ) int -> ecx "Inlining Arg"
-; V11 rat0 [V11,T03] ( 3, 4.40) int -> ecx "Spilling to split statement for tree" -; V12 rat1 [V12,T01] ( 3, 5.60) int -> eax "fgMakeTemp is creating a new local variable" -; V13 rat2 [V13,T08] ( 3, 2.20) int -> ecx "Spilling to split statement for tree" -; V14 rat3 [V14,T07] ( 3, 2.80) int -> eax "fgMakeTemp is creating a new local variable"
+; V11 cse0 [V11,T08] ( 4, 2.60) int -> ebx "CSE - unknown" +; V12 rat0 [V12,T03] ( 3, 4.40) int -> ecx "Spilling to split statement for tree" +; V13 rat1 [V13,T01] ( 3, 5.60) int -> eax "fgMakeTemp is creating a new local variable" +; V14 rat2 [V14,T07] ( 3, 2.80) int -> ecx "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M14467_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push ebp @@ -32,19 +32,21 @@ G_M14467_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b push edi push esi push ebx
+ sub esp, 8
mov esi, ecx ; gcrRegs +[esi] mov edi, edx ; byrRegs +[edi]
- ;; size=10 bbWeight=1 PerfScore 4.75
+ ;; size=13 bbWeight=1 PerfScore 5.00
G_M14467_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
- mov ecx, dword ptr [esi]
+ mov ebx, dword ptr [esi] + mov ecx, ebx
mov edx, dword ptr [ecx+0x24] mov edx, dword ptr [edx+0x04] mov eax, dword ptr [edx+0x08] test eax, eax je SHORT G_M14467_IG04
- ;; size=15 bbWeight=1 PerfScore 9.25
+ ;; size=17 bbWeight=1 PerfScore 9.50
G_M14467_IG03: ; bbWeight=0.80, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz jmp SHORT G_M14467_IG05 ;; size=2 bbWeight=0.80 PerfScore 1.60 @@ -69,37 +71,44 @@ G_M14467_IG06: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000 ; byrRegs -[edi] mov ecx, dword ptr [esi+0x18] cmp eax, ecx
- mov ebx, ecx - cmovle ebx, eax - mov ecx, dword ptr [esi] - mov edx, dword ptr [ecx+0x24] - mov edx, dword ptr [edx+0x04] - mov eax, dword ptr [edx+0x0C] - test eax, eax
+ cmovg eax, ecx + mov dword ptr [ebp-0x14], eax + mov ecx, dword ptr [ebx+0x24] + mov ecx, dword ptr [ecx+0x04] + mov ecx, dword ptr [ecx+0x0C] + test ecx, ecx
je SHORT G_M14467_IG08
- ;; size=31 bbWeight=0.50 PerfScore 7.50
+ ;; size=30 bbWeight=0.50 PerfScore 6.88
G_M14467_IG07: ; bbWeight=0.40, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov eax, dword ptr [ebp-0x14] + mov edx, ecx + mov dword ptr [ebp-0x10], edx
jmp SHORT G_M14467_IG09
- ;; size=2 bbWeight=0.40 PerfScore 0.80
+ ;; size=10 bbWeight=0.40 PerfScore 1.70
G_M14467_IG08: ; bbWeight=0.10, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ mov ecx, ebx
mov edx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- ;; size=10 bbWeight=0.10 PerfScore 0.12
+ mov dword ptr [ebp-0x10], eax + mov eax, dword ptr [ebp-0x14] + ;; size=18 bbWeight=0.10 PerfScore 0.35
G_M14467_IG09: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref mov ecx, edi ; gcrRegs +[ecx]
- mov edx, ebx
+ mov edx, eax + mov eax, dword ptr [ebp-0x10]
nop call [eax] ; gcrRegs -[ecx edi] +[eax]
- ;; size=9 bbWeight=0.50 PerfScore 1.88
+ ;; size=12 bbWeight=0.50 PerfScore 2.38
G_M14467_IG10: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.50
+ ;; size=8 bbWeight=0.50 PerfScore 1.75
G_M14467_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref ; gcrRegs -[eax] ; byrRegs +[edi] @@ -108,13 +117,14 @@ G_M14467_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {e ; gcrRegs +[eax] ;; size=5 bbWeight=0.50 PerfScore 0.62 G_M14467_IG12: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.50
+ ;; size=8 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 118, prolog size 6, PerfScore 39.27, instruction count 53, allocated bytes for code 118 (MethodHash=6fbdc77c) for method System.Linq.Enumerable+ListPartition`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
+; Total bytes of code 147, prolog size 9, PerfScore 41.27, instruction count 63, allocated bytes for code 147 (MethodHash=6fbdc77c) for method System.Linq.Enumerable+ListPartition`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
; ============================================================

+46 (+29.30%) : 171467.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)

@@ -10,20 +10,21 @@ ; ; V00 this [V00,T05] ( 8, 13.96) ref -> esi this class-hnd single-def <System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension> ;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.Xsl.XsltContext>
-; V02 arg2 [V02,T07] ( 8, 11.52) ref -> edi class-hnd single-def <System.Object[]>
+; V02 arg2 [V02,T07] ( 6, 10.98) ref -> edi class-hnd single-def <System.Object[]>
;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.XPath.XPathNavigator>
-; V04 loc0 [V04,T00] ( 22, 38.54) int -> ebx
+; V04 loc0 [V04,T00] ( 22, 38.54) int -> [ebp-0x10]
;* V05 tmp0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Object> ;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.MethodInfo> ;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
-; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> eax "arr expr" -; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> eax "arr expr"
+; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> edx "arr expr" +; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> ebx "arr expr"
; V10 tmp5 [V10,T03] ( 4, 16 ) ref -> ecx "argument with side effect" ; V11 tmp6 [V11,T04] ( 4, 16 ) int -> edx "argument with side effect" ; V12 tmp7 [V12,T06] ( 3, 11.88) ref -> ecx single-def "argument with side effect" ; V13 tmp8 [V13,T08] ( 2, 7.92) ref -> edx single-def "argument with side effect"
+; V14 cse0 [V14,T09] ( 4, 2.54) int -> [ebp-0x14] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,71 +32,84 @@ G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
+ sub esp, 8
mov esi, ecx ; gcrRegs +[esi] mov edi, gword ptr [ebp+0x0C] ; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.50 -G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=14 bbWeight=1 PerfScore 5.75 +G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ebx, dword ptr [edi+0x04]
- dec ebx - js SHORT G_M50779_IG07 - ;; size=6 bbWeight=1 PerfScore 3.25
+ mov dword ptr [ebp-0x14], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M50779_IG07 + ;; size=17 bbWeight=1 PerfScore 4.75
G_M50779_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [edi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M50779_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M50779_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [edi+4*ebx+0x08]
+ mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - mov edx, dword ptr [eax+4*ebx+0x08] - mov eax, gword ptr [esi+0x1C] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04] + ; gcrRegs +[edx] + cmp eax, dword ptr [edx+0x04] + jae G_M50779_IG10 + mov edx, dword ptr [edx+4*eax+0x08] + ; gcrRegs -[edx] + mov ebx, gword ptr [esi+0x1C] + ; gcrRegs +[ebx] + cmp eax, dword ptr [ebx+0x04] + jae G_M50779_IG10 + mov dword ptr [ebp-0x10], eax + push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi ; gcrRegs +[ecx] call CORINFO_HELP_ARRADDR_ST ; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
+ mov eax, ebx
jns SHORT G_M50779_IG04
- ;; size=47 bbWeight=3.96 PerfScore 98.01
+ ;; size=64 bbWeight=3.96 PerfScore 109.89
G_M50779_IG05: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz jmp SHORT G_M50779_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M50779_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp ebx, dword ptr [edi+0x04] - jae SHORT G_M50779_IG09 - mov ecx, gword ptr [edi+4*ebx+0x08]
+ cmp eax, ebx + jae SHORT G_M50779_IG10 + mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - mov edx, dword ptr [eax+4*ebx+0x08] - mov eax, gword ptr [esi+0x1C] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04] + ; gcrRegs +[edx] + cmp eax, dword ptr [edx+0x04] + jae SHORT G_M50779_IG10 + mov edx, dword ptr [edx+4*eax+0x08] + ; gcrRegs -[edx] + mov ebx, gword ptr [esi+0x1C] + ; gcrRegs +[ebx] + cmp eax, dword ptr [ebx+0x04] + jae SHORT G_M50779_IG10 + mov dword ptr [ebp-0x10], eax + push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi ; gcrRegs +[ecx] call CORINFO_HELP_ARRADDR_ST ; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
- jns SHORT G_M50779_IG06 - ;; size=52 bbWeight=0.04 PerfScore 1.15
+ mov eax, ebx + jns SHORT G_M50779_IG09 + ;; size=60 bbWeight=0.04 PerfScore 1.16
G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref mov ecx, gword ptr [esi+0x18] ; gcrRegs +[ecx] @@ -111,18 +125,24 @@ G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=0 ; gcrRegs -[ecx edx esi edi] +[eax] ;; size=21 bbWeight=1.98 PerfScore 29.70 G_M50779_IG08: ; bbWeight=1.98, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 8
- ;; size=7 bbWeight=1.98 PerfScore 7.92 -G_M50779_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax]
+ ;; size=10 bbWeight=1.98 PerfScore 8.91 +G_M50779_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi edi] + mov ebx, dword ptr [ebp-0x14] + jmp SHORT G_M50779_IG06 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M50779_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 157, prolog size 6, PerfScore 151.49, instruction count 63, allocated bytes for code 157 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
+; Total bytes of code 203, prolog size 9, PerfScore 164.81, instruction count 75, allocated bytes for code 203 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
; ============================================================

libraries_tests.run.windows.x86.Release.mch

-10 (-45.45%) : 363713.dasm - System.Byte:System.Numerics.INumberBase.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M14398_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M14398_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ebx, dl - movzx ecx, cl
movzx edx, dl
- cmp eax, ebx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M14398_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
; ============================================================

-10 (-45.45%) : 363945.dasm - System.Byte:System.Numerics.INumberBase.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M14398_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M14398_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ebx, dl - movzx ecx, cl
movzx edx, dl
- cmp eax, ebx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M14398_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
; ============================================================

-10 (-45.45%) : 365189.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M43536_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M43536_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx
- movsx esi, dx - movsx ecx, cx
movsx edx, dx
- cmp eax, esi - mov eax, edx - cmovle eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M43536_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Instrumented Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Instrumented Tier1)
; ============================================================

+38 (+32.48%) : 386783.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)

@@ -11,15 +11,18 @@ ; ; V00 arg0 [V00,T01] ( 4, 3 ) ref -> esi class-hnd single-def <System.String> ;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
-; V02 loc1 [V02,T02] ( 4, 4 ) ref -> edi class-hnd single-def <<unknown class>> -; V03 loc2 [V03,T00] ( 5, 5 ) int -> ebx -; V04 loc3 [V04,T03] ( 5, 3 ) ref -> [ebp-0x10] class-hnd spill-single-def <System.Text.EncodingProvider>
+; V02 loc1 [V02,T04] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> +; V03 loc2 [V03,T00] ( 5, 5 ) int -> [ebp-0x10] +; V04 loc3 [V04,T02] ( 5, 3 ) ref -> [ebp-0x18] class-hnd spill-single-def <System.Text.EncodingProvider>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.Encoding>
-; V06 tmp0 [V06,T04] ( 5, 3 ) ref -> eax "guarded devirt return temp"
+; V06 tmp0 [V06,T03] ( 5, 3 ) ref -> eax "guarded devirt return temp"
;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.CodePagesEncodingProvider> ; V08 tmp2 [V08,T05] ( 3, 3 ) int -> eax "Inline stloc first use temp"
+; V09 cse0 [V09,T06] ( 3, 3 ) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; TEMP_02 ref -> [ebp-0x1C] +; TEMP_01 int -> [ebp-0x20]
;
-; Lcl frame size = 4
+; Lcl frame size = 20
G_M49734_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -27,30 +30,34 @@ G_M49734_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 20 + xor eax, eax + mov dword ptr [ebp-0x1C], eax
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=16 bbWeight=1 PerfScore 6.00
G_M49734_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz cmp gword ptr [D1FFAB1EH], 0 ; data for <unknown class>:<unknown field> je SHORT G_M49734_IG07 mov edi, gword ptr [D1FFAB1EH] ; static handle ; gcrRegs +[edi] xor ebx, ebx
- cmp dword ptr [edi+0x04], 0
+ mov eax, dword ptr [edi+0x04] + mov dword ptr [ebp-0x14], eax + test eax, eax
jle SHORT G_M49734_IG07
- ;; size=23 bbWeight=1 PerfScore 10.25
+ ;; size=27 bbWeight=1 PerfScore 10.50
G_M49734_IG03: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [edi+4*ebx+0x08] - ; gcrRegs +[eax] - mov gword ptr [ebp-0x10], eax
+ mov edx, gword ptr [edi+4*ebx+0x08] + ; gcrRegs +[edx] + mov gword ptr [ebp-0x18], edx
; GC ptr vars +{V04}
- cmp dword ptr [eax], 0xD1FFAB1E
+ cmp dword ptr [edx], 0xD1FFAB1E
jne SHORT G_M49734_IG09 mov ecx, esi ; gcrRegs +[ecx] call [<unknown method>]
- ; gcrRegs -[eax ecx]
+ ; gcrRegs -[ecx edx]
test eax, eax jne SHORT G_M49734_IG04 xor eax, eax @@ -59,7 +66,7 @@ G_M49734_IG03: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 ;; size=31 bbWeight=1 PerfScore 13.75 G_M49734_IG04: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[eax]
- mov ecx, gword ptr [ebp-0x10]
+ mov ecx, gword ptr [ebp-0x18]
; gcrRegs +[ecx] mov edx, eax ; GC ptr vars -{V04} @@ -70,50 +77,58 @@ G_M49734_IG05: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs= test eax, eax jne SHORT G_M49734_IG06 inc ebx
- cmp dword ptr [edi+0x04], ebx
+ mov edx, dword ptr [ebp-0x14] + cmp edx, ebx
jg SHORT G_M49734_IG03 jmp SHORT G_M49734_IG07
- ;; size=12 bbWeight=1 PerfScore 7.50
+ ;; size=14 bbWeight=1 PerfScore 5.75
G_M49734_IG06: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc ; gcrRegs -[esi edi]
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M49734_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax] xor eax, eax ; gcrRegs +[eax] ;; size=2 bbWeight=0 PerfScore 0.00 G_M49734_IG08: ; bbWeight=0, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=0 PerfScore 0.00 -G_M49734_IG09: ; bbWeight=0, gcVars=00000008 {V04}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ;; size=8 bbWeight=0 PerfScore 0.00 +G_M49734_IG09: ; bbWeight=0, gcVars=00000004 {V04}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[esi edi]
- ; GC ptr vars +{V03 V04} - mov eax, gword ptr [ebp-0x10] - ; gcrRegs +[eax] - mov ecx, eax - ; gcrRegs +[ecx] - mov edx, esi
+ ; GC ptr vars +{V02 V04} + mov dword ptr [ebp-0x10], ebx + mov edx, gword ptr [ebp-0x18]
; gcrRegs +[edx]
- mov eax, dword ptr [eax] - ; gcrRegs -[eax] - mov eax, dword ptr [eax+0x2C] - ; GC ptr vars -{V03 V04} - call [eax+0x10]<unknown method>
+ mov ecx, edx + ; gcrRegs +[ecx] + mov gword ptr [ebp-0x1C], ecx + mov edx, esi + mov ecx, gword ptr [ebp-0x18] + mov ecx, dword ptr [ecx] + ; gcrRegs -[ecx] + mov ecx, dword ptr [ecx+0x2C] + mov dword ptr [ebp-0x20], ecx + mov ecx, gword ptr [ebp-0x1C] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x20] + ; GC ptr vars -{V02 V04} + call [ebx+0x10]<unknown method>
; gcrRegs -[ecx edx] +[eax]
+ mov ebx, dword ptr [ebp-0x10]
jmp SHORT G_M49734_IG05
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=38 bbWeight=0 PerfScore 0.00
-; Total bytes of code 117, prolog size 7, PerfScore 41.25, instruction count 52, allocated bytes for code 117 (MethodHash=7d0f3db9) for method System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
+; Total bytes of code 155, prolog size 14, PerfScore 40.25, instruction count 64, allocated bytes for code 155 (MethodHash=7d0f3db9) for method System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
; ============================================================

+47 (+32.87%) : 459707.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)

@@ -9,21 +9,24 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T04] ( 4, 3 ) int -> esi single-def -; V01 loc0 [V01,T08] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> -; V02 loc1 [V02,T05] ( 4, 4 ) ref -> edi class-hnd single-def <<unknown class>> -; V03 loc2 [V03,T03] ( 5, 5 ) int -> ebx -; V04 loc3 [V04,T09] ( 4, 2 ) ref -> ecx class-hnd <System.Text.EncodingProvider>
+; V00 arg0 [V00,T04] ( 4, 3 ) int -> [ebp-0x10] single-def +; V01 loc0 [V01,T07] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> +; V02 loc1 [V02,T08] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> +; V03 loc2 [V03,T03] ( 5, 5 ) int -> [ebp-0x14] +; V04 loc3 [V04,T10] ( 4, 2 ) ref -> ecx class-hnd <System.Text.EncodingProvider>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.Encoding>
-; V06 tmp0 [V06,T07] ( 5, 3 ) ref -> eax "guarded devirt return temp"
+; V06 tmp0 [V06,T06] ( 5, 3 ) ref -> edx "guarded devirt return temp"
;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.Tests.EncodingTests+ThreadStaticEncodingProvider> ; V08 tmp2 [V08,T00] ( 4, 8 ) ref -> ecx class-hnd "dup spill" <System.Text.EncodingProvider> ;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 rat0 [V10,T06] ( 3, 4 ) byref -> eax "TLS field access" -; V11 rat1 [V11,T01] ( 3, 6 ) int -> ecx "TLS access" -; V12 rat2 [V12,T02] ( 3, 6 ) int -> ecx "ThreadStaticBlockBase access"
+; V10 cse0 [V10,T09] ( 3, 3 ) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V11 rat0 [V11,T05] ( 3, 4 ) byref -> edx "TLS field access" +; V12 rat1 [V12,T01] ( 3, 6 ) int -> ecx "TLS access" +; V13 rat2 [V13,T02] ( 3, 6 ) int -> ecx "ThreadStaticBlockBase access" +; TEMP_02 int -> [ebp-0x1C] +; TEMP_01 int -> [ebp-0x20]
;
-; Lcl frame size = 0
+; Lcl frame size = 20
G_M39147_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,99 +34,124 @@ G_M39147_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
+ sub esp, 20
mov esi, ecx
- ;; size=8 bbWeight=1 PerfScore 4.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M39147_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov edi, gword ptr [D1FFAB1EH] ; static handle ; gcrRegs +[edi] test edi, edi
- je SHORT G_M39147_IG08
+ je SHORT G_M39147_IG09
xor ebx, ebx
- cmp dword ptr [edi+0x04], 0 - jle SHORT G_M39147_IG08 - ;; size=18 bbWeight=1 PerfScore 7.50
+ mov eax, dword ptr [edi+0x04] + mov dword ptr [ebp-0x18], eax + test eax, eax + jle SHORT G_M39147_IG09 + ;; size=22 bbWeight=1 PerfScore 7.75
G_M39147_IG03: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz mov ecx, gword ptr [edi+4*ebx+0x08] ; gcrRegs +[ecx] cmp dword ptr [ecx], 0xD1FFAB1E
- jne SHORT G_M39147_IG11
+ jne SHORT G_M39147_IG12
mov ecx, dword ptr FS:[0x002C] ; gcrRegs -[ecx] mov ecx, dword ptr [ecx+0x0C] cmp dword ptr [ecx+0x80], 6
- jl SHORT G_M39147_IG10
+ jl SHORT G_M39147_IG11
mov ecx, dword ptr [ecx+0x84] mov ecx, dword ptr [ecx+0x18] test ecx, ecx
- je SHORT G_M39147_IG10 - mov eax, bword ptr [ecx] - ; byrRegs +[eax] - add eax, 8
+ je SHORT G_M39147_IG11 + mov edx, bword ptr [ecx] + ; byrRegs +[edx] + add edx, 8
;; size=49 bbWeight=1 PerfScore 20.50
-G_M39147_IG04: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000001 {eax}, byref, isz - mov ecx, gword ptr [eax]
+G_M39147_IG04: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000004 {edx}, byref, isz + mov ecx, gword ptr [edx]
; gcrRegs +[ecx] test ecx, ecx jne SHORT G_M39147_IG05
- xor eax, eax - ; gcrRegs +[eax] - ; byrRegs -[eax]
+ xor edx, edx + ; gcrRegs +[edx] + ; byrRegs -[edx]
jmp SHORT G_M39147_IG06 ;; size=10 bbWeight=1 PerfScore 5.50 G_M39147_IG05: ; bbWeight=1, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
+ ; gcrRegs -[edx] + mov dword ptr [ebp-0x10], esi
mov edx, esi
- mov eax, dword ptr [ecx] - mov eax, dword ptr [eax+0x2C] - call [eax+0x14]<unknown method>
+ mov esi, dword ptr [ecx] + mov esi, dword ptr [esi+0x2C] + call [esi+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
- ;; size=10 bbWeight=1 PerfScore 7.25 -G_M39147_IG06: ; bbWeight=1, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz - test eax, eax
+ mov edx, eax + ; gcrRegs +[edx] + mov esi, dword ptr [ebp-0x10] + ;; size=18 bbWeight=1 PerfScore 9.50 +G_M39147_IG06: ; bbWeight=1, gcrefRegs=00000084 {edx edi}, byrefRegs=00000000 {}, byref, isz + ; gcrRegs -[eax] + test edx, edx
jne SHORT G_M39147_IG07 inc ebx
- cmp dword ptr [edi+0x04], ebx
+ mov eax, dword ptr [ebp-0x18] + cmp eax, ebx
jg SHORT G_M39147_IG03
- jmp SHORT G_M39147_IG08 - ;; size=12 bbWeight=1 PerfScore 7.50 -G_M39147_IG07: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
+ jmp SHORT G_M39147_IG09 + ;; size=14 bbWeight=1 PerfScore 5.75 +G_M39147_IG07: ; bbWeight=0, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
; gcrRegs -[edi]
+ mov eax, edx + ; gcrRegs +[eax] + ;; size=2 bbWeight=0 PerfScore 0.00 +G_M39147_IG08: ; bbWeight=0, epilog, nogc, extend + lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0 PerfScore 0.00 -G_M39147_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax]
+ ;; size=8 bbWeight=0 PerfScore 0.00 +G_M39147_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref + ; gcrRegs -[eax edx]
xor eax, eax ; gcrRegs +[eax] ;; size=2 bbWeight=0 PerfScore 0.00
-G_M39147_IG09: ; bbWeight=0, epilog, nogc, extend
+G_M39147_IG10: ; bbWeight=0, epilog, nogc, extend + lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0 PerfScore 0.00 -G_M39147_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ;; size=8 bbWeight=0 PerfScore 0.00 +G_M39147_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[edi] mov ecx, 6 call CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED ; byrRegs +[eax]
+ mov edx, eax + ; byrRegs +[edx]
jmp SHORT G_M39147_IG04
- ;; size=12 bbWeight=0 PerfScore 0.00 -G_M39147_IG11: ; bbWeight=0, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=14 bbWeight=0 PerfScore 0.00 +G_M39147_IG12: ; bbWeight=0, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx]
- ; byrRegs -[eax]
+ ; byrRegs -[eax edx] + mov dword ptr [ebp-0x14], ebx
mov edx, esi
- mov eax, dword ptr [ecx] - mov eax, dword ptr [eax+0x2C] - call [eax+0x14]<unknown method>
+ mov dword ptr [ebp-0x1C], edx + mov edx, dword ptr [ecx] + mov edx, dword ptr [edx+0x2C] + mov dword ptr [ebp-0x20], edx + mov edx, dword ptr [ebp-0x1C] + mov ebx, dword ptr [ebp-0x20] + call [ebx+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
+ mov edx, eax + ; gcrRegs +[edx] + mov ebx, dword ptr [ebp-0x14]
jmp SHORT G_M39147_IG06
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 143, prolog size 8, PerfScore 52.75, instruction count 59, allocated bytes for code 143 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
+; Total bytes of code 190, prolog size 11, PerfScore 53.75, instruction count 77, allocated bytes for code 190 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
; ============================================================

+23 (+35.94%) : 386787.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)

@@ -8,15 +8,16 @@ ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2 ; Final local variable assignments ;
-; V00 arg0 [V00,T02] ( 3, 3 ) int -> esi single-def -; V01 loc0 [V01,T04] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> -; V02 loc1 [V02,T03] ( 4, 4 ) ref -> edi class-hnd single-def <<unknown class>>
+; V00 arg0 [V00,T02] ( 3, 3 ) int -> [ebp-0x10] single-def +; V01 loc0 [V01,T03] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> +; V02 loc1 [V02,T04] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T01] ( 5, 5 ) int -> ebx ;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.EncodingProvider>
-; V05 loc4 [V05,T05] ( 3, 2 ) ref -> eax class-hnd <System.Text.Encoding>
+; V05 loc4 [V05,T06] ( 3, 2 ) ref -> eax class-hnd <System.Text.Encoding>
; V06 tmp0 [V06,T00] ( 3, 6 ) ref -> ecx "argument with side effect"
+; V07 cse0 [V07,T05] ( 3, 3 ) int -> [ebp-0x14] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M39147_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push ebp @@ -24,53 +25,65 @@ G_M39147_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b push edi push esi push ebx
+ sub esp, 8
mov esi, ecx
- ;; size=8 bbWeight=1 PerfScore 4.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M39147_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov edi, gword ptr [D1FFAB1EH] ; static handle ; gcrRegs +[edi] test edi, edi
- je SHORT G_M39147_IG05
+ je SHORT G_M39147_IG06
xor ebx, ebx
- cmp dword ptr [edi+0x04], 0 - jle SHORT G_M39147_IG05 - ;; size=18 bbWeight=1 PerfScore 7.50
+ mov eax, dword ptr [edi+0x04] + mov dword ptr [ebp-0x14], eax + test eax, eax + jle SHORT G_M39147_IG06 + ;; size=22 bbWeight=1 PerfScore 7.75
G_M39147_IG03: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz mov ecx, gword ptr [edi+4*ebx+0x08] ; gcrRegs +[ecx]
+ mov dword ptr [ebp-0x10], esi
mov edx, esi
- mov eax, dword ptr [ecx] - mov eax, dword ptr [eax+0x2C] - call [eax+0x14]<unknown method>
+ mov esi, dword ptr [ecx] + mov esi, dword ptr [esi+0x2C] + call [esi+0x14]<unknown method>
; gcrRegs -[ecx] +[eax] test eax, eax
- jne SHORT G_M39147_IG04
+ jne SHORT G_M39147_IG05
inc ebx
- cmp dword ptr [edi+0x04], ebx - jg SHORT G_M39147_IG03 - jmp SHORT G_M39147_IG05 - ;; size=26 bbWeight=1 PerfScore 16.75 -G_M39147_IG04: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc - ; gcrRegs -[edi]
+ mov esi, dword ptr [ebp-0x14] + cmp esi, ebx + jg SHORT G_M39147_IG04 + jmp SHORT G_M39147_IG06 + ;; size=31 bbWeight=1 PerfScore 16.00 +G_M39147_IG04: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz + ; gcrRegs -[eax] + mov esi, dword ptr [ebp-0x10] + jmp SHORT G_M39147_IG03 + ;; size=5 bbWeight=0.50 PerfScore 1.50 +G_M39147_IG05: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc + ; gcrRegs -[edi] +[eax] + lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0 PerfScore 0.00 -G_M39147_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ;; size=8 bbWeight=0 PerfScore 0.00 +G_M39147_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax] xor eax, eax ; gcrRegs +[eax] ;; size=2 bbWeight=0 PerfScore 0.00
-G_M39147_IG06: ; bbWeight=0, epilog, nogc, extend
+G_M39147_IG07: ; bbWeight=0, epilog, nogc, extend + lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 64, prolog size 6, PerfScore 28.75, instruction count 34, allocated bytes for code 64 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
+; Total bytes of code 87, prolog size 9, PerfScore 30.00, instruction count 43, allocated bytes for code 87 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
; ============================================================

librariestestsnotieredcompilation.run.windows.x86.Release.mch

-10 (-38.46%) : 165761.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)

@@ -9,29 +9,26 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]>
-; V01 arg1 [V01,T00] ( 4, 4 ) ubyte -> edx single-def -; V02 arg2 [V02,T01] ( 2, 2 ) ubyte -> eax single-def -; V03 tmp0 [V03,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V01 arg1 [V01,T00] ( 3, 3 ) ubyte -> edx single-def +; V02 arg2 [V02,T04] ( 1, 1 ) ubyte -> [esp+0x04] single-def +; V03 tmp0 [V03,T03] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V04 cse0 [V04,T01] ( 3, 3 ) int -> eax "CSE - unknown" +; V05 cse1 [V05,T02] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M46726_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx - mov eax, dword ptr [esp+0x08] - ;; size=5 bbWeight=1 PerfScore 2.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M46726_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- movzx ecx, dl - movzx ebx, al - movzx edx, dl - movzx eax, al - cmp ecx, ebx - cmovge eax, edx - ;; size=17 bbWeight=1 PerfScore 1.50
+ movzx eax, dl + movzx edx, byte ptr [esp+0x04] + cmp eax, edx + cmovl eax, edx + ;; size=13 bbWeight=1 PerfScore 1.75
G_M46726_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret 4
- ;; size=4 bbWeight=1 PerfScore 2.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
-; Total bytes of code 26, prolog size 1, PerfScore 6.00, instruction count 10, allocated bytes for code 26 (MethodHash=888f4979) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 16, prolog size 0, PerfScore 3.75, instruction count 5, allocated bytes for code 16 (MethodHash=888f4979) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
; ============================================================

-10 (-38.46%) : 167197.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)

@@ -8,32 +8,29 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> edx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 G_M45949_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp mov ebp, esp
- push esi - ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M45949_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx
- movsx esi, dx - movsx ecx, cx
movsx edx, dx
- cmp eax, esi - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M45949_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
pop ebp ret
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 26, prolog size 4, PerfScore 6.00, instruction count 13, allocated bytes for code 26 (MethodHash=0a454c82) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 16, prolog size 3, PerfScore 3.75, instruction count 8, allocated bytes for code 16 (MethodHash=0a454c82) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================

-10 (-38.46%) : 166222.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)

@@ -8,32 +8,29 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M9245_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp mov ebp, esp
- push ebx - ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M9245_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ebx, dl - movzx ecx, cl
movzx edx, dl
- cmp eax, ebx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M9245_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
pop ebp ret
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 26, prolog size 4, PerfScore 6.00, instruction count 13, allocated bytes for code 26 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 16, prolog size 3, PerfScore 3.75, instruction count 8, allocated bytes for code 16 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================

+33 (+22.92%) : 71682.dasm - System.Collections.Immutable.ImmutableSortedDictionary2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair2[int,System.Canon],System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer1[System.Canon]):ubyte:this (FullOpts)

@@ -8,30 +8,29 @@ ; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 4.50) ref -> esi this class-hnd single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]> -; V01 arg1 [V01,T14] ( 2, 1.50) struct ( 8) [ebp+0x0C] do-not-enreg[SF] ld-addr-op single-def <System.Collections.Generic.KeyValuePair`2[int,System.__Canon]>
+; V00 this [V00,T00] ( 4, 4 ) ref -> esi this class-hnd single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]> +; V01 arg1 [V01,T13] ( 2, 1.50) struct ( 8) [ebp+0x0C] do-not-enreg[SF] ld-addr-op single-def <System.Collections.Generic.KeyValuePair`2[int,System.__Canon]>
; V02 arg2 [V02,T01] ( 4, 4 ) ref -> edx class-hnd single-def <System.Collections.Generic.IComparer`1[int]>
-; V03 arg3 [V03,T13] ( 2, 1.50) ref -> edi class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.__Canon]>
+; V03 arg3 [V03,T12] ( 2, 1.50) ref -> edi class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.__Canon]>
; V04 loc0 [V04,T08] ( 3, 2.50) ref -> eax class-hnd exact single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]> ;* V05 tmp0 [V05 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T11] ( 2, 2 ) ref -> ebx class-hnd single-def "impAppendStmt" <System.__Canon>
+; V09 tmp4 [V09,T10] ( 2, 2 ) ref -> [ebp-0x14] class-hnd spill-single-def "impAppendStmt" <System.__Canon>
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V11 tmp6 [V11,T10] ( 3, 2 ) int -> eax "VirtualCall with runtime lookup"
+; V11 tmp6 [V11,T09] ( 3, 2 ) int -> [ebp-0x10] "VirtualCall with runtime lookup"
;* V12 tmp7 [V12 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V13 cse0 [V13,T15] ( 0, 0 ) int -> zero-ref "CSE - aggressive" -;* V14 rat0 [V14,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" -;* V15 rat1 [V15,T06] ( 0, 0 ) int -> zero-ref "runtime lookup" -;* V16 rat2 [V16,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" -;* V17 rat3 [V17,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" -;* V18 rat4 [V18,T12] ( 0, 0 ) int -> zero-ref "runtime lookup" -;* V19 rat5 [V19,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" -; V20 rat6 [V20,T09] ( 3, 2.20) int -> ecx "Spilling to split statement for tree" -; V21 rat7 [V21,T07] ( 3, 2.80) int -> eax "fgMakeTemp is creating a new local variable"
+;* V13 cse0 [V13,T14] ( 0, 0 ) int -> zero-ref "CSE - unknown" +; V14 cse1 [V14,T06] ( 3, 1.60) int -> ebx "CSE - unknown" +;* V15 rat0 [V15,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" +;* V16 rat1 [V16,T05] ( 0, 0 ) int -> zero-ref "runtime lookup" +;* V17 rat2 [V17,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" +;* V18 rat3 [V18,T11] ( 0, 0 ) int -> zero-ref "runtime lookup" +;* V19 rat4 [V19,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" +; V20 rat5 [V20,T07] ( 3, 2.80) int -> ecx "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M9385_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -39,18 +38,19 @@ G_M9385_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, push edi push esi push ebx
+ sub esp, 8
mov esi, ecx ; gcrRegs +[esi] mov edi, gword ptr [ebp+0x08] ; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.50
+ ;; size=14 bbWeight=1 PerfScore 5.75
G_M9385_IG02: ; bbWeight=1, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[edx]
- cmp dword ptr [esi], esi
+ mov ebx, dword ptr [esi]
test edx, edx je SHORT G_M9385_IG10 test edi, edi
- je SHORT G_M9385_IG11
+ je G_M9385_IG11
push edx mov ecx, esi ; gcrRegs +[ecx] @@ -60,54 +60,68 @@ G_M9385_IG02: ; bbWeight=1, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=0 ; gcrRegs -[ecx] +[eax] cmp gword ptr [eax+0x08], 0 jne SHORT G_M9385_IG05
- ;; size=28 bbWeight=1 PerfScore 14.75
+ ;; size=32 bbWeight=1 PerfScore 13.75
G_M9385_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref ; gcrRegs -[eax edi] xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M9385_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 12
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M9385_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz ; gcrRegs +[eax edi]
- mov ebx, gword ptr [eax+0x04] - ; gcrRegs +[ebx] - mov ecx, dword ptr [esi] - mov edx, dword ptr [ecx+0x24] - mov edx, dword ptr [edx] - mov eax, dword ptr [edx+0x2C] - ; gcrRegs -[eax] - test eax, eax
+ mov eax, gword ptr [eax+0x04] + mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V09} + mov ecx, dword ptr [ebx+0x24] + mov ecx, dword ptr [ecx] + mov ecx, dword ptr [ecx+0x2C] + test ecx, ecx
je SHORT G_M9385_IG07
- ;; size=17 bbWeight=0.50 PerfScore 5.62 -G_M9385_IG06: ; bbWeight=0.40, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=18 bbWeight=0.50 PerfScore 5.12 +G_M9385_IG06: ; bbWeight=0.40, gcVars=00000400 {V09}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] + mov eax, gword ptr [ebp-0x14] + ; gcrRegs +[eax] + mov edx, ecx + mov dword ptr [ebp-0x10], edx
jmp SHORT G_M9385_IG08
- ;; size=2 bbWeight=0.40 PerfScore 0.80 -G_M9385_IG07: ; bbWeight=0.10, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=10 bbWeight=0.40 PerfScore 1.70 +G_M9385_IG07: ; bbWeight=0.10, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref + ; gcrRegs -[eax] + mov ecx, ebx
mov edx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- ;; size=10 bbWeight=0.10 PerfScore 0.12 -G_M9385_IG08: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ mov dword ptr [ebp-0x10], eax + mov eax, gword ptr [ebp-0x14] + ; gcrRegs +[eax] + ;; size=18 bbWeight=0.10 PerfScore 0.35 +G_M9385_IG08: ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
push gword ptr [ebp+0x0C] mov ecx, edi ; gcrRegs +[ecx]
- mov edx, ebx
+ mov edx, eax
; gcrRegs +[edx]
+ mov eax, dword ptr [ebp-0x10] + ; gcrRegs -[eax]
nop
+ ; GC ptr vars -{V09}
call [eax]
- ; gcrRegs -[ecx edx ebx edi] - ;; size=12 bbWeight=0.50 PerfScore 2.38
+ ; gcrRegs -[ecx edx edi] + ;; size=15 bbWeight=0.50 PerfScore 2.88
G_M9385_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 12
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M9385_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref mov ecx, 0x6D3 mov edx, 0xD1FFAB1E @@ -131,6 +145,6 @@ G_M9385_IG11: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 int3 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 6, PerfScore 33.30, instruction count 56, allocated bytes for code 144 (MethodHash=8b4ddb56) for method System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair`2[int,System.__Canon],System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
+; Total bytes of code 177, prolog size 9, PerfScore 34.17, instruction count 66, allocated bytes for code 177 (MethodHash=8b4ddb56) for method System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair`2[int,System.__Canon],System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
; ============================================================

+28 (+23.73%) : 54191.dasm - Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Type[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Type[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M43234_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M43234_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M43234_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M43234_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M43234_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M43234_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M43234_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M43234_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M43234_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M43234_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M43234_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M43234_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M43234_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M43234_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M43234_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M43234_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M43234_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M43234_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M43234_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M43234_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M43234_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M43234_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M43234_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M43234_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M43234_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M43234_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=391d571d) for method Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=391d571d) for method Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (FullOpts)
; ============================================================

+46 (+29.30%) : 175685.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)

@@ -10,20 +10,21 @@ ; ; V00 this [V00,T05] ( 8, 13.96) ref -> esi this class-hnd single-def <System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension> ;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.Xsl.XsltContext>
-; V02 arg2 [V02,T07] ( 8, 11.52) ref -> edi class-hnd single-def <System.Object[]>
+; V02 arg2 [V02,T07] ( 6, 10.98) ref -> edi class-hnd single-def <System.Object[]>
;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.XPath.XPathNavigator>
-; V04 loc0 [V04,T00] ( 22, 38.54) int -> ebx
+; V04 loc0 [V04,T00] ( 22, 38.54) int -> [ebp-0x10]
;* V05 tmp0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Object> ;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.MethodInfo> ;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
-; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> eax "arr expr" -; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> eax "arr expr"
+; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> edx "arr expr" +; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> ebx "arr expr"
; V10 tmp5 [V10,T03] ( 4, 16 ) ref -> ecx "argument with side effect" ; V11 tmp6 [V11,T04] ( 4, 16 ) int -> edx "argument with side effect" ; V12 tmp7 [V12,T06] ( 3, 11.88) ref -> ecx single-def "argument with side effect" ; V13 tmp8 [V13,T08] ( 2, 7.92) ref -> edx single-def "argument with side effect"
+; V14 cse0 [V14,T09] ( 4, 2.54) int -> [ebp-0x14] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,71 +32,84 @@ G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
+ sub esp, 8
mov esi, ecx ; gcrRegs +[esi] mov edi, gword ptr [ebp+0x0C] ; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.50 -G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=14 bbWeight=1 PerfScore 5.75 +G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ebx, dword ptr [edi+0x04]
- dec ebx - js SHORT G_M50779_IG07 - ;; size=6 bbWeight=1 PerfScore 3.25
+ mov dword ptr [ebp-0x14], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M50779_IG07 + ;; size=17 bbWeight=1 PerfScore 4.75
G_M50779_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [edi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M50779_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M50779_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [edi+4*ebx+0x08]
+ mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - mov edx, dword ptr [eax+4*ebx+0x08] - mov eax, gword ptr [esi+0x1C] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04] + ; gcrRegs +[edx] + cmp eax, dword ptr [edx+0x04] + jae G_M50779_IG10 + mov edx, dword ptr [edx+4*eax+0x08] + ; gcrRegs -[edx] + mov ebx, gword ptr [esi+0x1C] + ; gcrRegs +[ebx] + cmp eax, dword ptr [ebx+0x04] + jae G_M50779_IG10 + mov dword ptr [ebp-0x10], eax + push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi ; gcrRegs +[ecx] call CORINFO_HELP_ARRADDR_ST ; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
+ mov eax, ebx
jns SHORT G_M50779_IG04
- ;; size=47 bbWeight=3.96 PerfScore 98.01
+ ;; size=64 bbWeight=3.96 PerfScore 109.89
G_M50779_IG05: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz jmp SHORT G_M50779_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M50779_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp ebx, dword ptr [edi+0x04] - jae SHORT G_M50779_IG09 - mov ecx, gword ptr [edi+4*ebx+0x08]
+ cmp eax, ebx + jae SHORT G_M50779_IG10 + mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - mov edx, dword ptr [eax+4*ebx+0x08] - mov eax, gword ptr [esi+0x1C] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04] + ; gcrRegs +[edx] + cmp eax, dword ptr [edx+0x04] + jae SHORT G_M50779_IG10 + mov edx, dword ptr [edx+4*eax+0x08] + ; gcrRegs -[edx] + mov ebx, gword ptr [esi+0x1C] + ; gcrRegs +[ebx] + cmp eax, dword ptr [ebx+0x04] + jae SHORT G_M50779_IG10 + mov dword ptr [ebp-0x10], eax + push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi ; gcrRegs +[ecx] call CORINFO_HELP_ARRADDR_ST ; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
- jns SHORT G_M50779_IG06 - ;; size=52 bbWeight=0.04 PerfScore 1.15
+ mov eax, ebx + jns SHORT G_M50779_IG09 + ;; size=60 bbWeight=0.04 PerfScore 1.16
G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref mov ecx, gword ptr [esi+0x18] ; gcrRegs +[ecx] @@ -111,18 +125,24 @@ G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=0 ; gcrRegs -[ecx edx esi edi] +[eax] ;; size=21 bbWeight=1.98 PerfScore 29.70 G_M50779_IG08: ; bbWeight=1.98, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 8
- ;; size=7 bbWeight=1.98 PerfScore 7.92 -G_M50779_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax]
+ ;; size=10 bbWeight=1.98 PerfScore 8.91 +G_M50779_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi edi] + mov ebx, dword ptr [ebp-0x14] + jmp SHORT G_M50779_IG06 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M50779_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 157, prolog size 6, PerfScore 151.49, instruction count 63, allocated bytes for code 157 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
+; Total bytes of code 203, prolog size 9, PerfScore 164.81, instruction count 75, allocated bytes for code 203 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
; ============================================================

realworld.run.windows.x86.checked.mch

-22 (-18.33%) : 22824.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)

@@ -8,8 +8,8 @@ ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T03] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> -; V01 arg1 [V01,T04] ( 3, 6 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 this [V00,T04] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> +; V01 arg1 [V01,T03] ( 3, 6 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 loc0 [V02,T07] ( 2, 5 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <<unknown class>> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> @@ -17,18 +17,19 @@ ;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V09 tmp4 [V09,T02] ( 4, 13 ) int -> edx "Inline stloc first use temp" -; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> [ebp-0x18] spill-single-def "field V03._array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T02] ( 4, 13 ) int -> eax "Inline stloc first use temp" +; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> ebx single-def "field V03._array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T01] ( 4, 13 ) int -> [ebp-0x10] "field V03._index (fldOffset=0x4)" P-INDEP ; V12 tmp7 [V12,T09] ( 3, 3 ) ref -> eax "field V04.array (fldOffset=0x0)" P-INDEP ;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.array (fldOffset=0x0)" P-INDEP
-; V14 tmp9 [V14,T10] ( 2, 2 ) ref -> eax single-def "field V07._array (fldOffset=0x0)" P-INDEP -;* V15 tmp10 [V15,T11] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
+; V14 tmp9 [V14,T11] ( 2, 2 ) ref -> ebx single-def "field V07._array (fldOffset=0x0)" P-INDEP +;* V15 tmp10 [V15,T12] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
; V16 tmp11 [V16,T05] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
-; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> [ebp-0x1C] spill-single-def "argument with side effect" -; V18 cse0 [V18,T06] ( 3, 6 ) int -> esi "CSE - aggressive"
+; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> ecx "argument with side effect" +; V18 cse0 [V18,T06] ( 3, 6 ) int -> edi "CSE - unknown" +; V19 cse1 [V19,T10] ( 3, 3 ) int -> ebx "CSE - unknown"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -36,17 +37,17 @@ G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 16 - mov esi, ecx - ; gcrRegs +[esi] - mov edi, edx
+ sub esp, 8 + mov edi, ecx
; gcrRegs +[edi]
+ mov esi, edx + ; gcrRegs +[esi]
;; size=13 bbWeight=1 PerfScore 5.00 G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x34]
+ mov ebx, dword ptr [edi] + mov eax, dword ptr [ebx+0x34]
call [eax+0x10]<unknown method> ; gcrRegs -[ecx] +[eax] mov ecx, gword ptr [eax+0x08] @@ -56,54 +57,43 @@ G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 mov eax, dword ptr [eax+0x54] call [eax+0x0C]<unknown method> ; gcrRegs -[ecx] +[eax]
+ mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V02} + mov ecx, edi + ; gcrRegs +[ecx] + mov edx, dword ptr [ebx+0x54] + call [edx+0x10]<unknown method> + ; gcrRegs -[ecx edi] + mov edi, dword ptr [eax+0x04]
mov ebx, eax ; gcrRegs +[ebx]
- mov gword ptr [ebp-0x14], ebx - ; GC ptr vars +{V02} - mov ecx, esi - ; gcrRegs +[ecx] - mov eax, dword ptr [esi]
+ xor eax, eax
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x54] - call [eax+0x10]<unknown method> - ; gcrRegs -[ecx esi] +[eax] - mov esi, dword ptr [eax+0x04] - mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V10}
xor edx, edx
- xor ecx, ecx - mov dword ptr [ebp-0x10], ecx - test esi, esi
+ mov dword ptr [ebp-0x10], edx + test edi, edi
jle SHORT G_M33036_IG04
- ;; size=53 bbWeight=1 PerfScore 30.50 -G_M33036_IG03: ; bbWeight=4, gcVars=00000180 {V02 V10}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz - mov edx, gword ptr [eax+4*edx+0x08] - ; gcrRegs +[edx] - mov gword ptr [ebp-0x1C], edx - ; GC ptr vars +{V17} - push edi - mov ecx, edx
+ ;; size=48 bbWeight=1 PerfScore 27.50 +G_M33036_IG03: ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov ecx, gword ptr [ebx+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, ebx - mov ebx, gword ptr [ebp-0x1C] - mov ebx, dword ptr [ebx] - ; gcrRegs -[ebx] - mov ebx, dword ptr [ebx+0x44] - ; GC ptr vars -{V17} - call [ebx+0x08]<unknown method> - ; gcrRegs -[eax ecx edx] - mov ebx, dword ptr [ebp-0x10] - lea edx, [ebx+0x01] - mov ebx, edx - cmp esi, ebx - mov dword ptr [ebp-0x10], ebx - mov eax, gword ptr [ebp-0x18] - ; gcrRegs +[eax] - jg SHORT G_M33036_IG05 - ;; size=41 bbWeight=4 PerfScore 70.00
+ push esi + mov edx, gword ptr [ebp-0x14] + ; gcrRegs +[edx] + mov eax, dword ptr [ecx] + mov eax, dword ptr [eax+0x44] + call [eax+0x08]<unknown method> + ; gcrRegs -[ecx edx] + mov eax, dword ptr [ebp-0x10] + inc eax + mov edx, eax + cmp edi, edx + mov dword ptr [ebp-0x10], edx + jg SHORT G_M33036_IG03 + ;; size=29 bbWeight=4 PerfScore 59.00
G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
- ; gcrRegs -[eax edi] - ; GC ptr vars -{V02 V10}
+ ; gcrRegs -[ebx esi] + ; GC ptr vars -{V02}
lea esp, [ebp-0x0C] pop ebx pop esi @@ -111,14 +101,7 @@ G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b pop ebp ret ;; size=8 bbWeight=1 PerfScore 3.50
-G_M33036_IG05: ; bbWeight=2, gcVars=00000180 {V02 V10}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz - ; gcrRegs +[eax edi] - ; GC ptr vars +{V02 V10} - mov ebx, gword ptr [ebp-0x14] - ; gcrRegs +[ebx] - jmp SHORT G_M33036_IG03 - ;; size=5 bbWeight=2 PerfScore 6.00
-; Total bytes of code 120, prolog size 9, PerfScore 115.00, instruction count 53, allocated bytes for code 120 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
+; Total bytes of code 98, prolog size 9, PerfScore 95.00, instruction count 45, allocated bytes for code 98 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
; ============================================================

-30 (-16.04%) : 14055.dasm - SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)

@@ -9,75 +9,68 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 19, 19 ) byref -> ecx this single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) ushort -> edx single-def -; V02 arg2 [V02,T06] ( 2, 2 ) ushort -> eax single-def -; V03 arg3 [V03,T07] ( 2, 2 ) ushort -> esi single-def -; V04 arg4 [V04,T08] ( 2, 2 ) ushort -> [ebp+0x08] single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ushort -> edx single-def +; V02 arg2 [V02,T18] ( 1, 1 ) ushort -> [ebp+0x10] single-def +; V03 arg3 [V03,T19] ( 1, 1 ) ushort -> [ebp+0x0C] single-def +; V04 arg4 [V04,T20] ( 1, 1 ) ushort -> [ebp+0x08] single-def
; V05 tmp0 [V05,T02] ( 2, 4 ) int -> eax "impAppendStmt" ;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref single-def ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref single-def ;* V08 tmp3 [V08 ] ( 0, 0 ) byref -> zero-ref single-def ;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref single-def
-; V10 tmp5 [V10,T09] ( 2, 2 ) int -> edx
+; V10 tmp5 [V10,T10] ( 2, 2 ) int -> edx
; V11 tmp6 [V11,T03] ( 2, 4 ) int -> eax "impAppendStmt" ;* V12 tmp7 [V12 ] ( 0, 0 ) byref -> zero-ref single-def ;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref single-def ;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref single-def ;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref single-def
-; V16 tmp11 [V16,T10] ( 2, 2 ) int -> edx
+; V16 tmp11 [V16,T11] ( 2, 2 ) int -> edx
; V17 tmp12 [V17,T04] ( 2, 4 ) int -> eax "impAppendStmt" ;* V18 tmp13 [V18 ] ( 0, 0 ) byref -> zero-ref single-def ;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref single-def ;* V20 tmp15 [V20 ] ( 0, 0 ) byref -> zero-ref single-def ;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref single-def
-; V22 tmp17 [V22,T11] ( 2, 2 ) int -> edx
+; V22 tmp17 [V22,T12] ( 2, 2 ) int -> edx
; V23 tmp18 [V23,T05] ( 2, 4 ) int -> eax "impAppendStmt" ;* V24 tmp19 [V24 ] ( 0, 0 ) byref -> zero-ref single-def ;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref single-def ;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref single-def ;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref single-def
-; V28 tmp23 [V28,T12] ( 2, 2 ) int -> edx -; V29 tmp24 [V29,T13] ( 2, 2 ) int -> edx "Inline return value spill temp" -; V30 tmp25 [V30,T14] ( 2, 2 ) int -> eax "Inline return value spill temp" -; V31 tmp26 [V31,T15] ( 2, 2 ) int -> edx "Inline return value spill temp" -; V32 tmp27 [V32,T16] ( 2, 2 ) int -> edx "Inline return value spill temp"
+; V28 tmp23 [V28,T13] ( 2, 2 ) int -> edx +; V29 tmp24 [V29,T14] ( 2, 2 ) int -> eax "Inline return value spill temp" +; V30 tmp25 [V30,T15] ( 2, 2 ) int -> eax "Inline return value spill temp" +; V31 tmp26 [V31,T16] ( 2, 2 ) int -> eax "Inline return value spill temp" +; V32 tmp27 [V32,T17] ( 2, 2 ) int -> eax "Inline return value spill temp" +; V33 cse0 [V33,T06] ( 3, 3 ) int -> eax "CSE - unknown" +; V34 cse1 [V34,T07] ( 3, 3 ) int -> eax "CSE - unknown" +; V35 cse2 [V35,T08] ( 3, 3 ) int -> eax "CSE - unknown" +; V36 cse3 [V36,T09] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 G_M18004_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp mov ebp, esp
- push edi - push esi - push ebx - mov eax, dword ptr [ebp+0x10] - mov esi, dword ptr [ebp+0x0C] - ;; size=12 bbWeight=1 PerfScore 6.25
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M18004_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref ; byrRegs +[ecx]
- movzx ebx, dx - movzx edx, dx - mov edi, 32 - cmp ebx, 32 - cmovg edx, edi - mov word ptr [ecx], dx - movzx edx, ax - movzx eax, ax - cmp edx, 32 - cmovg eax, edi
+ movzx eax, dx + mov edx, 32 + cmp eax, 32 + cmovg eax, edx + mov word ptr [ecx], ax + movzx eax, word ptr [ebp+0x10] + cmp eax, 32 + cmovg eax, edx
mov word ptr [ecx+0x02], ax
- movzx eax, si - movzx edx, si
+ movzx eax, word ptr [ebp+0x0C]
cmp eax, 32
- cmovg edx, edi - mov word ptr [ecx+0x04], dx - movzx edi, word ptr [ebp+0x08] - movzx eax, di - movzx edx, di - mov esi, 32
+ cmovg eax, edx + mov word ptr [ecx+0x04], ax + movzx eax, word ptr [ebp+0x08]
cmp eax, 32
- cmovg edx, esi - mov word ptr [ecx+0x06], dx
+ cmovg eax, edx + mov word ptr [ecx+0x06], ax
mov byte ptr [ecx+0x08], 0 movzx eax, byte ptr [ecx+0x08] xor edx, edx @@ -107,15 +100,12 @@ G_M18004_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {e movzx edx, dl add eax, edx mov byte ptr [ecx+0x08], al
- ;; size=168 bbWeight=1 PerfScore 41.50
+ ;; size=150 bbWeight=1 PerfScore 41.50
G_M18004_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx - pop esi - pop edi
pop ebp ret 12
- ;; size=7 bbWeight=1 PerfScore 4.00
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 187, prolog size 6, PerfScore 51.75, instruction count 64, allocated bytes for code 187 (MethodHash=241bb9ab) for method SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
+; Total bytes of code 157, prolog size 3, PerfScore 45.25, instruction count 50, allocated bytes for code 157 (MethodHash=241bb9ab) for method SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
; ============================================================

-7 (-12.50%) : 27789.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)

@@ -8,8 +8,9 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 4, 4 ) byte -> ebx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) byte -> esi single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) byte -> edx single-def
; V02 loc0 [V02 ] ( 1, 1 ) struct ( 4) [esp+0x00] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC>
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> esi "CSE - unknown"
; ; Lcl frame size = 4 @@ -20,27 +21,24 @@ G_M51831_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} xor eax, eax mov dword ptr [esp], eax mov ebx, ecx
- mov esi, edx - ;; size=12 bbWeight=1 PerfScore 4.75
+ ;; size=10 bbWeight=1 PerfScore 4.50
G_M51831_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx ecx, bl push ecx ; npt arg push 0
- mov eax, esi - movsx ecx, al - push ecx
+ movsx eax, dl + mov esi, eax + push esi
; npt arg push 1 lea ecx, [esp+0x08] mov edx, 0x1A00 call [<unknown method>] ; gcr arg pop 2
- mov edx, esi - movsx edx, dl - movsx ecx, bl
+ movsx edx, bl
test eax, eax
- mov eax, ecx - cmovne eax, edx - ;; size=40 bbWeight=1 PerfScore 8.00
+ mov eax, edx + cmovne eax, esi + ;; size=35 bbWeight=1 PerfScore 7.50
G_M51831_IG03: ; bbWeight=1, epilog, nogc, extend pop ecx pop ebx @@ -48,6 +46,6 @@ G_M51831_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 56, prolog size 8, PerfScore 15.25, instruction count 25, allocated bytes for code 56 (MethodHash=bb523588) for method Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
+; Total bytes of code 49, prolog size 8, PerfScore 14.50, instruction count 22, allocated bytes for code 49 (MethodHash=bb523588) for method Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
; ============================================================

+27 (+20.93%) : 23201.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)

@@ -7,17 +7,20 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 7, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> -; V01 arg1 [V01,T00] ( 8, 5.50) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> -; V02 arg2 [V02,T06] ( 1, 0.50) int -> [ebp+0x08] single-def
+; V00 this [V00,T01] ( 6, 4.50) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> +; V01 arg1 [V01,T00] ( 7, 5 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> +; V02 arg2 [V02,T08] ( 1, 0.50) int -> [ebp+0x08] single-def
;* V03 tmp0 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> ;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <<unknown class>> ; V05 tmp2 [V05,T02] ( 3, 3 ) ref -> eax single-def "argument with side effect" ; V06 tmp3 [V06,T03] ( 3, 3 ) ref -> eax single-def "argument with side effect" ; V07 tmp4 [V07,T04] ( 3, 3 ) ref -> esi single-def "argument with side effect" ; V08 tmp5 [V08,T05] ( 2, 2 ) ref -> edx single-def "argument with side effect"
+; V09 cse0 [V09,T06] ( 3, 1.50) int -> [ebp-0x10] "CSE - unknown" +; V10 cse1 [V10,T07] ( 3, 1.50) int -> [ebp-0x14] "CSE - unknown" +; TEMP_01 ref -> [ebp-0x18]
;
-; Lcl frame size = 0
+; Lcl frame size = 12
G_M10552_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push ebp @@ -25,11 +28,14 @@ G_M10552_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b push edi push esi push ebx
+ sub esp, 12 + xor eax, eax + mov dword ptr [ebp-0x18], eax
mov edi, ecx ; gcrRegs +[edi] mov esi, edx ; gcrRegs +[esi]
- ;; size=10 bbWeight=1 PerfScore 4.75
+ ;; size=18 bbWeight=1 PerfScore 6.25
G_M10552_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz cmp edi, esi jne SHORT G_M10552_IG05 @@ -39,52 +45,54 @@ G_M10552_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M10552_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 4
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M10552_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz ; gcrRegs +[esi edi] test esi, esi je SHORT G_M10552_IG06 mov ecx, esi ; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x78]
+ mov ebx, dword ptr [esi] + mov dword ptr [ebp-0x10], ebx + mov eax, dword ptr [ebx+0x78]
call [eax+0x08]<unknown method> ; gcrRegs -[ecx] +[eax]
- mov ebx, eax - ; gcrRegs +[ebx]
+ mov gword ptr [ebp-0x18], eax
mov ecx, edi ; gcrRegs +[ecx]
- mov eax, dword ptr [edi] - ; gcrRegs -[eax] - mov eax, dword ptr [eax+0x78] - call [eax+0x08]<unknown method> - ; gcrRegs -[ecx] +[eax] - cmp ebx, eax
+ mov edx, dword ptr [edi] + mov dword ptr [ebp-0x14], edx + mov ebx, dword ptr [edx+0x78] + call [ebx+0x08]<unknown method> + ; gcrRegs -[ecx] + cmp gword ptr [ebp-0x18], eax
je SHORT G_M10552_IG08
- ;; size=30 bbWeight=0.50 PerfScore 8.62
+ ;; size=38 bbWeight=0.50 PerfScore 10.88
G_M10552_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax ebx esi edi]
+ ; gcrRegs -[eax esi edi]
xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M10552_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 4
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M10552_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs +[esi edi]
+ mov ebx, dword ptr [ebp-0x10]
mov ecx, esi ; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x34] - call [eax+0x04]<unknown method>
+ mov edx, dword ptr [ebx+0x34] + call [edx+0x04]<unknown method>
; gcrRegs -[ecx esi] +[eax] mov ecx, eax ; gcrRegs +[ecx] @@ -97,11 +105,12 @@ G_M10552_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e ; gcrRegs +[esi] mov ecx, edi ; gcrRegs +[ecx]
- mov eax, dword ptr [edi]
+ mov edi, dword ptr [ebp-0x14] + ; gcrRegs -[edi] + mov eax, dword ptr [edi+0x34]
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x34]
call [eax+0x04]<unknown method>
- ; gcrRegs -[ecx edi] +[eax]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, eax ; gcrRegs +[ecx] mov eax, dword ptr [eax] @@ -119,15 +128,16 @@ G_M10552_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e mov eax, dword ptr [eax+0x58] call [eax+0x18]<unknown method> ; gcrRegs -[ecx edx esi]
- ;; size=57 bbWeight=0.50 PerfScore 18.88
+ ;; size=59 bbWeight=0.50 PerfScore 17.88
G_M10552_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 4
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
-; Total bytes of code 129, prolog size 6, PerfScore 39.75, instruction count 62, allocated bytes for code 129 (MethodHash=e6fad6c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
+; Total bytes of code 156, prolog size 14, PerfScore 43.25, instruction count 70, allocated bytes for code 156 (MethodHash=e6fad6c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
; ============================================================

+41 (+21.13%) : 25491.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon

@@ -11,19 +11,22 @@ ;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]> ; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def ; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx -; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14] +; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]> ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>> -; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>> +; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup" -; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup" +; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x24] +; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 12
+ sub esp, 28 + xor eax, eax + mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx mov esi, gword ptr [ebp+0x08] ; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz mov edx, dword ptr [ecx+0x20] mov edx, dword ptr [edx+0x08] @@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000 call CORINFO_HELP_RUNTIMEHANDLE_METHOD mov edx, eax ;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx call CORINFO_HELP_NEWSFAST ; gcrRegs +[eax] @@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this] ; gcrRegs -[eax ecx] mov ebx, dword ptr [esi+0x04]
- dec ebx - js SHORT G_M23436_IG10 - ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M23436_IG10 + ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ mov dword ptr [ebp-0x14], eax + mov ebx, gword ptr [esi+4*eax+0x08] + ; gcrRegs +[ebx] + mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax - ; GC ptr vars +{V04} - mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30] call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09} mov edx, eax ; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20] + push ebx
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[esi] jmp SHORT G_M23436_IG10 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M23436_IG12 - mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ cmp eax, ebx + jae SHORT G_M23436_IG13 + mov dword ptr [ebp-0x14], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx + ; gcrRegs +[edx] + mov ecx, edx + mov gword ptr [ebp-0x24], ecx + mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x30] - call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30] + mov dword ptr [ebp-0x28], ecx + mov ecx, gword ptr [ebp-0x24] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x28] + call [ebx+0x14]<unknown method> + ; gcrRegs -[ecx edx] +[eax] + mov ebx, eax + ; gcrRegs +[ebx]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V09} - mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push ebx + push gword ptr [ebp-0x1C]
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09 - ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx + jns SHORT G_M23436_IG12 + ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[esi] mov eax, edi @@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend pop ebp ret 4 ;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov ebx, dword ptr [ebp-0x18] + jmp SHORT G_M23436_IG09 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================

+30 (+21.90%) : 25996.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

@@ -8,24 +8,27 @@ ; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 8, 6.50) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]> -; V01 arg1 [V01,T01] ( 7, 6.50) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess>
+; V00 this [V00,T02] ( 6, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]> +; V01 arg1 [V01,T00] ( 7, 6.50) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess>
;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol> ;* V03 tmp0 [V03 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V04 tmp1 [V04 ] ( 0, 0 ) struct ( 4) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]> ;* V05 tmp2 [V05 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V06 tmp3 [V06,T03] ( 4, 6 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol>
+; V06 tmp3 [V06,T03] ( 4, 6 ) ref -> [ebp-0x14] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol>
; V07 tmp4 [V07,T06] ( 2, 4 ) ref -> eax class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
-; V08 tmp5 [V08,T02] ( 9, 7 ) ref -> [ebp-0x10] -; V09 tmp6 [V09,T07] ( 2, 3 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V08 tmp5 [V08,T01] ( 9, 7 ) ref -> [ebp-0x18] +; V09 tmp6 [V09,T08] ( 2, 3 ) ref -> [ebp-0x1C] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref "field V04.array (fldOffset=0x0)" P-INDEP ;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref "field V05.array (fldOffset=0x0)" P-INDEP
-; V12 tmp9 [V12,T08] ( 2, 2 ) ref -> edx single-def "argument with side effect" -;* V13 rat0 [V13,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" -;* V14 rat1 [V14,T09] ( 0, 0 ) int -> zero-ref "runtime lookup" -;* V15 rat2 [V15,T04] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V12 tmp9 [V12,T09] ( 2, 2 ) ref -> edx single-def "argument with side effect" +; V13 cse0 [V13,T07] ( 3, 2.50) int -> [ebp-0x10] spill-single-def "CSE - unknown" +;* V14 rat0 [V14,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" +;* V15 rat1 [V15,T10] ( 0, 0 ) int -> zero-ref "runtime lookup" +;* V16 rat2 [V16,T04] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x20] +; TEMP_01 int -> [ebp-0x24]
;
-; Lcl frame size = 4
+; Lcl frame size = 24
G_M1024_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -33,111 +36,121 @@ G_M1024_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, push edi push esi push ebx
- push eax - mov esi, ecx - ; gcrRegs +[esi] - mov edi, edx
+ sub esp, 24 + xor eax, eax + mov dword ptr [ebp-0x20], eax + mov edi, ecx
; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.75
+ mov esi, edx + ; gcrRegs +[esi] + ;; size=18 bbWeight=1 PerfScore 6.25
G_M1024_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi], esi - mov ebx, gword ptr [edi+0x14] - ; gcrRegs +[ebx] - mov ecx, ebx - ; gcrRegs +[ecx] - call [Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbolExtensions:GetOwnOrInheritedGetMethod(Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol] - ; gcrRegs -[ecx] +[eax] - test eax, eax - jne SHORT G_M1024_IG04 - ;; size=17 bbWeight=1 PerfScore 9.50 -G_M1024_IG03: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref - ; gcrRegs -[eax] - mov ecx, ebx - ; gcrRegs +[ecx] - mov eax, dword ptr [ebx] - mov eax, dword ptr [eax+0x68] - call [eax]<unknown method> - ; gcrRegs -[ecx ebx] +[eax] - mov ebx, eax - ; gcrRegs +[ebx] - mov eax, ebx - ;; size=13 bbWeight=0.50 PerfScore 3.88 -G_M1024_IG04: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz - ; gcrRegs -[ebx] - mov ebx, gword ptr [edi+0x10] - ; gcrRegs +[ebx] - test eax, eax - je SHORT G_M1024_IG11 - ;; size=7 bbWeight=1 PerfScore 3.25 -G_M1024_IG05: ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov ebx, dword ptr [edi] + mov dword ptr [ebp-0x10], ebx + mov eax, gword ptr [esi+0x14] + ; gcrRegs +[eax] + mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V06}
mov ecx, eax ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x10], eax
+ call [Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbolExtensions:GetOwnOrInheritedGetMethod(Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol] + ; gcrRegs -[ecx] + test eax, eax + jne SHORT G_M1024_IG04 + ;; size=23 bbWeight=1 PerfScore 10.50 +G_M1024_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref + ; gcrRegs -[eax] + mov ecx, gword ptr [ebp-0x14] + ; gcrRegs +[ecx] + mov eax, dword ptr [ecx] + mov eax, dword ptr [eax+0x68] + ; GC ptr vars -{V06} + call [eax]<unknown method> + ; gcrRegs -[ecx] +[eax] + ;; size=10 bbWeight=0.50 PerfScore 4.00 +G_M1024_IG04: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz + mov edx, gword ptr [esi+0x10] + ; gcrRegs +[edx] + mov gword ptr [ebp-0x1C], edx + ; GC ptr vars +{V09} + test eax, eax + je SHORT G_M1024_IG11 + ;; size=10 bbWeight=1 PerfScore 4.25 +G_M1024_IG05: ; bbWeight=0.50, gcVars=00000100 {V09}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[edx] + mov ecx, eax + ; gcrRegs +[ecx] + mov gword ptr [ebp-0x20], ecx + mov gword ptr [ebp-0x18], eax
; GC ptr vars +{V08}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x70] - call [edx+0x10]<unknown method>
+ mov ecx, dword ptr [eax] + ; gcrRegs -[ecx] + mov ecx, dword ptr [ecx+0x70] + mov dword ptr [ebp-0x24], ecx + mov ecx, gword ptr [ebp-0x20] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x24] + call [ebx+0x10]<unknown method>
; gcrRegs -[eax ecx] cmp eax, 1 je SHORT G_M1024_IG07
- ;; size=18 bbWeight=0.50 PerfScore 4.75 -G_M1024_IG06: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=30 bbWeight=0.50 PerfScore 6.75 +G_M1024_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
push 0
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov edx, ebx
+ mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
- mov ebx, dword ptr [esi] - ; gcrRegs -[ebx]
+ mov ebx, dword ptr [ebp-0x10]
mov ebx, dword ptr [ebx+0xA8]
+ ; GC ptr vars -{V08 V09}
call [ebx+0x08]<unknown method> ; gcrRegs -[ecx edx]
- ;; size=17 bbWeight=0.50 PerfScore 4.25
+ ;; size=19 bbWeight=0.50 PerfScore 4.12
G_M1024_IG07: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- push gword ptr [edi+0x1C] - push gword ptr [edi+0x24] - mov ecx, esi
+ push gword ptr [esi+0x1C] + push gword ptr [esi+0x24] + mov ecx, edi
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x10]
+ mov edx, gword ptr [ebp-0x18]
; gcrRegs +[edx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0xAC]
+ mov ebx, dword ptr [ebp-0x10] + mov eax, dword ptr [ebx+0xAC]
call [eax+0x04]<unknown method> ; gcrRegs -[ecx edx]
- mov ebx, gword ptr [ebp-0x10]
+ mov ebx, gword ptr [ebp-0x18]
; gcrRegs +[ebx] test ebx, ebx je SHORT G_M1024_IG09
- ;; size=29 bbWeight=1 PerfScore 14.50
+ ;; size=30 bbWeight=1 PerfScore 13.50
G_M1024_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
- ; GC ptr vars -{V08} - mov edx, gword ptr [edi+0x10]
+ mov edx, gword ptr [esi+0x10]
; gcrRegs +[edx] push ebx
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx] call [Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitReceiverAfterCall(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):this]
- ; gcrRegs -[ecx edx ebx edi]
+ ; gcrRegs -[ecx edx ebx esi]
;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M1024_IG09: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M1024_IG09: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
xor eax, eax ; gcrRegs +[eax] ;; size=2 bbWeight=1 PerfScore 0.25 G_M1024_IG10: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1 PerfScore 3.50 -G_M1024_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz - ; gcrRegs +[ebx edi] - mov gword ptr [ebp-0x10], eax - ; GC ptr vars +{V08}
+ ;; size=8 bbWeight=1 PerfScore 3.50 +G_M1024_IG11: ; bbWeight=0.50, gcVars=00000100 {V09}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs +[esi] + ; GC ptr vars +{V08 V09} + mov gword ptr [ebp-0x18], eax
jmp SHORT G_M1024_IG06 ;; size=5 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 137, prolog size 7, PerfScore 54.25, instruction count 59, allocated bytes for code 137 (MethodHash=c709fbff) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
+; Total bytes of code 167, prolog size 14, PerfScore 57.75, instruction count 66, allocated bytes for code 167 (MethodHash=c709fbff) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
; ============================================================

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.windows.x86.checked.mch 3,803 1,459 2,009 335 -11,299 +32,192 -0.1936%
benchmarks.run_pgo.windows.x86.checked.mch 26,256 9,292 13,411 3,553 -50,561 +87,396 -0.8251%
benchmarks.run_tiered.windows.x86.checked.mch 2,951 1,123 1,563 265 -8,504 +26,533 -0.1727%
coreclr_tests.run.windows.x86.checked.mch 90,198 38,561 41,299 10,338 -250,036 +704,439 -0.5953%
libraries.crossgen2.windows.x86.checked.mch 20,604 9,532 8,336 2,736 -67,051 +78,790 -0.0514%
libraries.pmi.windows.x86.checked.mch 27,958 11,595 14,384 1,979 -82,870 +248,263 -0.1357%
libraries_tests.run.windows.x86.Release.mch 54,190 19,406 31,015 3,769 -174,418 +582,489 -0.3666%
librariestestsnotieredcompilation.run.windows.x86.Release.mch 43,015 22,203 17,895 2,917 -178,477 +260,079 -0.1971%
realworld.run.windows.x86.checked.mch 5,459 2,186 2,893 380 -20,690 +52,022 -0.1646%
274,434 115,357 132,805 26,272 -843,906 +2,072,203

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x86.checked.mch 24,508 4 24,504 0 (0.00%) 186 (0.75%)
benchmarks.run_pgo.windows.x86.checked.mch 123,248 42,422 80,826 0 (0.00%) 320 (0.26%)
benchmarks.run_tiered.windows.x86.checked.mch 48,289 29,034 19,255 0 (0.00%) 150 (0.31%)
coreclr_tests.run.windows.x86.checked.mch 584,120 326,271 257,849 1 (0.00%) 720 (0.12%)
libraries.crossgen2.windows.x86.checked.mch 273,693 15 273,678 0 (0.00%) 1,002 (0.36%)
libraries.pmi.windows.x86.checked.mch 309,736 6 309,730 0 (0.00%) 1,093 (0.35%)
libraries_tests.run.windows.x86.Release.mch 624,996 427,538 197,458 0 (0.00%) 3,316 (0.53%)
librariestestsnotieredcompilation.run.windows.x86.Release.mch 315,074 21,932 293,142 0 (0.00%) 1,776 (0.56%)
realworld.run.windows.x86.checked.mch 35,766 3 35,763 0 (0.00%) 270 (0.75%)
2,339,430 847,225 1,492,205 1 (0.00%) 8,833 (0.38%)

jit-analyze output

benchmarks.run.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 6969637 (overridden on cmd)
Total bytes of diff: 6990530 (overridden on cmd)
Total bytes of delta: 20893 (0.30 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         531 : 2856.dasm (5.64 % of base)
         519 : 9308.dasm (1.61 % of base)
         451 : 5277.dasm (23.75 % of base)
         408 : 24502.dasm (3.78 % of base)
         403 : 21105.dasm (3.63 % of base)
         356 : 12321.dasm (2.77 % of base)
         291 : 16595.dasm (23.95 % of base)
         234 : 16026.dasm (6.22 % of base)
         233 : 14855.dasm (6.27 % of base)
         221 : 13534.dasm (6.18 % of base)
         218 : 2247.dasm (5.87 % of base)
         207 : 7544.dasm (0.66 % of base)
         205 : 19958.dasm (3.58 % of base)
         199 : 17283.dasm (5.88 % of base)
         187 : 12003.dasm (5.07 % of base)
         184 : 20734.dasm (4.75 % of base)
         182 : 2855.dasm (3.49 % of base)
         173 : 19741.dasm (10.96 % of base)
         166 : 14819.dasm (2.59 % of base)
         160 : 21074.dasm (1.51 % of base)

Top file improvements (bytes):
        -697 : 5286.dasm (-4.43 % of base)
        -148 : 8896.dasm (-4.80 % of base)
        -133 : 4554.dasm (-2.77 % of base)
        -121 : 14350.dasm (-9.71 % of base)
        -110 : 24039.dasm (-2.93 % of base)
        -106 : 12808.dasm (-3.54 % of base)
        -102 : 3371.dasm (-7.52 % of base)
         -98 : 6853.dasm (-5.22 % of base)
         -95 : 12291.dasm (-2.65 % of base)
         -94 : 16883.dasm (-1.64 % of base)
         -88 : 12307.dasm (-2.76 % of base)
         -81 : 814.dasm (-8.54 % of base)
         -81 : 2849.dasm (-1.38 % of base)
         -76 : 13072.dasm (-2.25 % of base)
         -73 : 19260.dasm (-2.38 % of base)
         -72 : 16857.dasm (-1.64 % of base)
         -63 : 8741.dasm (-3.71 % of base)
         -63 : 10163.dasm (-4.19 % of base)
         -58 : 10611.dasm (-4.52 % of base)
         -54 : 21905.dasm (-4.59 % of base)

94 total files with Code Size differences (43 improved, 51 regressed), 20 unchanged.

Top method regressions (bytes):
         531 (5.64 % of base) : 2856.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         519 (1.61 % of base) : 9308.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         451 (23.75 % of base) : 5277.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         408 (3.78 % of base) : 24502.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
         403 (3.63 % of base) : 21105.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (FullOpts)
         356 (2.77 % of base) : 12321.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         291 (23.95 % of base) : 16595.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         234 (6.22 % of base) : 16026.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (FullOpts)
         233 (6.27 % of base) : 14855.dasm - (dynamicClass):ReadMyEventsListerItemFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         221 (6.18 % of base) : 13534.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         218 (5.87 % of base) : 2247.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts)
         207 (0.66 % of base) : 7544.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
         205 (3.58 % of base) : 19958.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
         199 (5.88 % of base) : 17283.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AfterMembersCompletedChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         187 (5.07 % of base) : 12003.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         184 (4.75 % of base) : 20734.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
         182 (3.49 % of base) : 2855.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
         173 (10.96 % of base) : 19741.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (FullOpts)
         166 (2.59 % of base) : 14819.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
         160 (1.51 % of base) : 21074.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (FullOpts)

Top method improvements (bytes):
        -697 (-4.43 % of base) : 5286.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -148 (-4.80 % of base) : 8896.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (FullOpts)
        -133 (-2.77 % of base) : 4554.dasm - MicroBenchmarks.Serializers.Location:proto_1(byref,MicroBenchmarks.Serializers.Location) (FullOpts)
        -121 (-9.71 % of base) : 14350.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -110 (-2.93 % of base) : 24039.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
        -106 (-3.54 % of base) : 12808.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -102 (-7.52 % of base) : 3371.dasm - System.UriParser:.cctor() (FullOpts)
         -98 (-5.22 % of base) : 6853.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this (FullOpts)
         -95 (-2.65 % of base) : 12291.dasm - MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:proto_7(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent) (FullOpts)
         -94 (-1.64 % of base) : 16883.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
         -88 (-2.76 % of base) : 12307.dasm - MicroBenchmarks.Serializers.CampaignSummaryViewModel:proto_9(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel) (FullOpts)
         -81 (-8.54 % of base) : 814.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (FullOpts)
         -81 (-1.38 % of base) : 2849.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
         -76 (-2.25 % of base) : 13072.dasm - MicroBenchmarks.Serializers.MyEventsListerItem:proto_7(byref,MicroBenchmarks.Serializers.MyEventsListerItem) (FullOpts)
         -73 (-2.38 % of base) : 19260.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseVariableDeclarator(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,int,ubyte,ubyte,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken],byref,ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclaratorSyntax:this (FullOpts)
         -72 (-1.64 % of base) : 16857.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:GetMergedGlobalAliasesAndUsings(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:this (FullOpts)
         -63 (-3.71 % of base) : 8741.dasm - System.Diagnostics.Tracing.ManifestBuilder:.ctor(System.String,System.Guid,System.String,System.Resources.ResourceManager,int):this (FullOpts)
         -63 (-4.19 % of base) : 10163.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<DeserializeAsync>d__1[System.__Canon]:MoveNext():this (FullOpts)
         -58 (-4.52 % of base) : 10611.dasm - System.Memory.ReadOnlySequence:GlobalSetup():this (FullOpts)
         -54 (-10.84 % of base) : 7202.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:AddCharBuffer(System.Type):this (FullOpts)

Top method regressions (percentages):
         291 (23.95 % of base) : 16595.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         451 (23.75 % of base) : 5277.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          28 (23.73 % of base) : 8831.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
          28 (23.73 % of base) : 15445.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
          41 (21.13 % of base) : 19464.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
          22 (20.00 % of base) : 20737.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_0(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts)
          82 (19.03 % of base) : 16156.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:ReadAssemblyIdentityOrThrow(System.Reflection.Metadata.MetadataReader):Microsoft.CodeAnalysis.AssemblyIdentity (FullOpts)
          11 (18.97 % of base) : 8719.dasm - System.Linq.Enumerable+ConcatNIterator`1[int]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[int]:this (FullOpts)
           5 (16.67 % of base) : 14631.dasm - System.Text.StringBuilder:Append(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         147 (16.28 % of base) : 1080.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
          27 (16.27 % of base) : 18208.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:SynthesizeNullableAttributeIfNecessary(System.Nullable`1[ubyte],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData:this (FullOpts)
          38 (15.77 % of base) : 11415.dasm - System.Xml.XmlWellFormedWriter:StartElementContent():this (FullOpts)
          39 (15.73 % of base) : 16690.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (FullOpts)
          35 (15.62 % of base) : 2881.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:GetSequence(ubyte[],int):System.Buffers.ReadOnlySequence`1[ubyte] (FullOpts)
          17 (15.60 % of base) : 21760.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (FullOpts)
          23 (15.33 % of base) : 14771.dasm - Benchstone.BenchI.NDhrystone:Func2(ushort[],ushort[]):ubyte (FullOpts)
          23 (15.33 % of base) : 24532.dasm - Benchstone.MDBenchI.MDNDhrystone:Func2(ushort[],ushort[]):ubyte (FullOpts)
          10 (15.15 % of base) : 6197.dasm - System.Xml.ValueHandle:GetCharsText():System.String:this (FullOpts)
          33 (13.87 % of base) : 24533.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc8(int[],int[,],int,int) (FullOpts)
          18 (13.85 % of base) : 20399.dasm - Benchstone.BenchI.TreeSort:Trees(int[]):ubyte (FullOpts)

Top method improvements (percentages):
         -22 (-18.33 % of base) : 17193.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -18 (-12.50 % of base) : 15148.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
         -25 (-11.90 % of base) : 10733.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
         -51 (-11.59 % of base) : 16108.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeChildren(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration]:this (FullOpts)
         -27 (-11.54 % of base) : 18075.dasm - System.Reflection.Metadata.BlobBuilder:WriteBytes(ubyte,int):this (FullOpts)
         -54 (-10.84 % of base) : 7202.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:AddCharBuffer(System.Type):this (FullOpts)
         -23 (-10.70 % of base) : 16974.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol:GetSimpleProgramEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol (FullOpts)
          -9 (-10.23 % of base) : 11739.dasm - System.Memory.Span`1[ushort]:IndexOfAnyTwoValues():int:this (FullOpts)
        -121 (-9.71 % of base) : 14350.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -13 (-9.63 % of base) : 807.dasm - System.String:PadRight(int,ushort):System.String:this (FullOpts)
         -53 (-9.57 % of base) : 3844.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (FullOpts)
         -13 (-9.49 % of base) : 656.dasm - System.String:PadLeft(int,ushort):System.String:this (FullOpts)
         -24 (-9.30 % of base) : 6793.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+<>c__DisplayClass12_1:<BuildDeserialize>b__2(System.Collections.Generic.KeyValuePair`2[System.String,int]):this (FullOpts)
         -81 (-8.54 % of base) : 814.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (FullOpts)
          -5 (-8.47 % of base) : 10285.dasm - System.Xml.XmlConverter:ToChars(long,ubyte[],int):int (FullOpts)
         -27 (-8.36 % of base) : 20475.dasm - System.Tests.Perf_Enum:InterpolateIntoStringBuilder[int](System.Text.StringBuilder,int) (FullOpts)
          -3 (-8.11 % of base) : 7383.dasm - Sigil.Impl.ExtensionMethods:IsTailableCall(System.Reflection.Emit.OpCode):ubyte (FullOpts)
          -8 (-8.08 % of base) : 1072.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -5 (-7.81 % of base) : 726.dasm - System.String:Equals(System.Object):ubyte:this (FullOpts)
          -6 (-7.79 % of base) : 3397.dasm - System.Uri:GetLengthWithoutTrailingSpaces(System.String,byref,int) (FullOpts)


benchmarks.run_pgo.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 47456230 (overridden on cmd)
Total bytes of diff: 47493065 (overridden on cmd)
Total bytes of delta: 36835 (0.08 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         557 : 87610.dasm (6.36 % of base)
         535 : 22696.dasm (5.67 % of base)
         519 : 31033.dasm (1.61 % of base)
         410 : 14978.dasm (20.46 % of base)
         387 : 102693.dasm (3.42 % of base)
         386 : 119908.dasm (3.50 % of base)
         356 : 45696.dasm (2.77 % of base)
         265 : 27208.dasm (3.06 % of base)
         220 : 81832.dasm (5.27 % of base)
         218 : 17917.dasm (5.87 % of base)
         207 : 6602.dasm (0.66 % of base)
         205 : 91714.dasm (3.58 % of base)
         197 : 76261.dasm (5.54 % of base)
         190 : 73899.dasm (9.68 % of base)
         184 : 97774.dasm (4.75 % of base)
         173 : 88993.dasm (10.96 % of base)
         168 : 102544.dasm (9.37 % of base)
         166 : 65901.dasm (2.59 % of base)
         161 : 19217.dasm (3.89 % of base)
         160 : 102262.dasm (1.51 % of base)

Top file improvements (bytes):
        -146 : 29754.dasm (-4.70 % of base)
        -135 : 87005.dasm (-4.42 % of base)
        -133 : 17452.dasm (-2.77 % of base)
        -110 : 20630.dasm (-17.24 % of base)
        -107 : 53391.dasm (-3.63 % of base)
        -105 : 6745.dasm (-3.36 % of base)
        -105 : 75287.dasm (-1.74 % of base)
         -98 : 12371.dasm (-5.22 % of base)
         -95 : 46780.dasm (-2.63 % of base)
         -84 : 116796.dasm (-2.20 % of base)
         -81 : 2273.dasm (-7.63 % of base)
         -81 : 22687.dasm (-1.38 % of base)
         -76 : 52493.dasm (-2.24 % of base)
         -72 : 75176.dasm (-1.64 % of base)
         -70 : 69141.dasm (-25.83 % of base)
         -67 : 88291.dasm (-10.37 % of base)
         -59 : 28228.dasm (-23.51 % of base)
         -58 : 91559.dasm (-1.46 % of base)
         -54 : 111329.dasm (-4.59 % of base)
         -54 : 45009.dasm (-1.57 % of base)

97 total files with Code Size differences (38 improved, 59 regressed), 20 unchanged.

Top method regressions (bytes):
         557 (6.36 % of base) : 87610.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
         535 (5.67 % of base) : 22696.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         519 (1.61 % of base) : 31033.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         410 (20.46 % of base) : 14978.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
         387 (3.42 % of base) : 102693.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
         386 (3.50 % of base) : 119908.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (Tier0-FullOpts)
         356 (2.77 % of base) : 45696.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         265 (3.06 % of base) : 27208.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
         220 (5.27 % of base) : 81832.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IMethodReference):this (Tier1)
         218 (5.87 % of base) : 17917.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (Tier0-FullOpts)
         207 (0.66 % of base) : 6602.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
         205 (3.58 % of base) : 91714.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
         197 (5.54 % of base) : 76261.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AfterMembersCompletedChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
         190 (9.68 % of base) : 73899.dasm - Microsoft.CodeAnalysis.PEModule:EnsureForwardTypeToAssemblyMap():this (Tier0-FullOpts)
         184 (4.75 % of base) : 97774.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier0-FullOpts)
         173 (10.96 % of base) : 88993.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier0-FullOpts)
         168 (9.37 % of base) : 102544.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:CreateTypeInfoCore(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo (Tier1)
         166 (2.59 % of base) : 65901.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
         161 (3.89 % of base) : 19217.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
         160 (1.51 % of base) : 102262.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)

Top method improvements (bytes):
        -146 (-4.70 % of base) : 29754.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (Tier0-FullOpts)
        -135 (-4.42 % of base) : 87005.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxExtensions:VisitRankSpecifiers[System.ValueTuple`2[System.__Canon,System.__Canon]](Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,System.Action`2[System.__Canon,System.ValueTuple`2[System.__Canon,System.__Canon]],byref) (Tier0-FullOpts)
        -133 (-2.77 % of base) : 17452.dasm - MicroBenchmarks.Serializers.Location:proto_1(byref,MicroBenchmarks.Serializers.Location) (FullOpts)
        -110 (-17.24 % of base) : 20630.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (Tier0-FullOpts)
        -107 (-3.63 % of base) : 53391.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
        -105 (-3.36 % of base) : 6745.dasm - Jil.Deserialize.InlineDeserializer`1[System.__Canon]:ReadObjectAutomata(System.Type):this (Tier0-FullOpts)
        -105 (-1.74 % of base) : 75287.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (Tier0-FullOpts)
         -98 (-5.22 % of base) : 12371.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this (Tier0-FullOpts)
         -95 (-2.63 % of base) : 46780.dasm - MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:proto_7(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent) (FullOpts)
         -84 (-2.20 % of base) : 116796.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
         -81 (-7.63 % of base) : 2273.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (Tier0-FullOpts)
         -81 (-1.38 % of base) : 22687.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier0-FullOpts)
         -76 (-2.24 % of base) : 52493.dasm - MicroBenchmarks.Serializers.MyEventsListerItem:proto_7(byref,MicroBenchmarks.Serializers.MyEventsListerItem) (FullOpts)
         -72 (-1.64 % of base) : 75176.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:GetMergedGlobalAliasesAndUsings(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:this (Tier0-FullOpts)
         -70 (-25.83 % of base) : 69141.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -67 (-10.37 % of base) : 88291.dasm - Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxNodeCache:TryGetNode(int,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode,ubyte,byref):Microsoft.CodeAnalysis.GreenNode (Tier1)
         -59 (-23.51 % of base) : 28228.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -58 (-1.46 % of base) : 91559.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -54 (-1.57 % of base) : 45009.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         -54 (-4.59 % of base) : 111329.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.MyEventsListerItemTask:this (Tier0-FullOpts)

Top method regressions (percentages):
          65 (24.53 % of base) : 88764.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetCandidateMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,System.String,int,Microsoft.CodeAnalysis.CSharp.Binder):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol] (Tier1)
          28 (23.73 % of base) : 30178.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
          28 (23.73 % of base) : 70115.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
          62 (22.63 % of base) : 120244.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          41 (21.13 % of base) : 87125.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
          14 (20.90 % of base) : 24362.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
         410 (20.46 % of base) : 14978.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
          34 (19.43 % of base) : 36990.dasm - System.Text.RegularExpressions.RegexCharClass:TryGetDoubleRange(System.String,byref,byref):ubyte (Tier1)
          24 (19.35 % of base) : 88065.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
          11 (18.97 % of base) : 29155.dasm - System.Linq.Enumerable+ConcatNIterator`1[int]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[int]:this (Tier0-FullOpts)
          21 (16.80 % of base) : 2947.dasm - System.String:CopyStringContent(System.String,int,System.String) (Tier1)
          56 (16.18 % of base) : 53198.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          38 (15.77 % of base) : 41926.dasm - System.Xml.XmlWellFormedWriter:StartElementContent():this (Tier0-FullOpts)
          35 (15.62 % of base) : 23390.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:GetSequence(ubyte[],int):System.Buffers.ReadOnlySequence`1[ubyte] (Tier0-FullOpts)
          17 (15.60 % of base) : 109958.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (Tier0-FullOpts)
          23 (15.33 % of base) : 64965.dasm - Benchstone.BenchI.NDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
          23 (15.33 % of base) : 120413.dasm - Benchstone.MDBenchI.MDNDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
          88 (14.64 % of base) : 65492.dasm - System.Diagnostics.Tracing.EventParameterInfo:GenerateMetadata(uint,byref,uint):ubyte:this (Tier0-FullOpts)
          30 (14.29 % of base) : 88151.dasm - System.Linq.OrderedEnumerable`1[System.__Canon]:GetCount(ubyte):int:this (Tier1)
          33 (13.87 % of base) : 120414.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc8(int[],int[,],int,int) (Tier0-FullOpts)

Top method improvements (percentages):
          -5 (-29.41 % of base) : 103821.dasm - System.Math:Min(short,short):short (Tier1)
          -5 (-29.41 % of base) : 11837.dasm - System.Math:Min(short,short):short (Tier1)
          -5 (-29.41 % of base) : 24261.dasm - System.Math:Min(short,short):short (Tier1)
          -5 (-29.41 % of base) : 86060.dasm - System.Math:Min(short,short):short (Tier1)
         -70 (-25.83 % of base) : 69141.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -59 (-23.51 % of base) : 28228.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
          -3 (-20.00 % of base) : 65533.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 32496.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 71288.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 84065.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 86890.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 122562.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 44502.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 60382.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 114699.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 119193.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 120666.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 60941.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 83380.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 90589.dasm - System.Math:Min(short,short):short (Tier1)


benchmarks.run_tiered.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 9351120 (overridden on cmd)
Total bytes of diff: 9369149 (overridden on cmd)
Total bytes of delta: 18029 (0.19 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         531 : 12755.dasm (5.64 % of base)
         519 : 18304.dasm (1.61 % of base)
         451 : 5024.dasm (23.75 % of base)
         408 : 48035.dasm (3.78 % of base)
         403 : 44029.dasm (3.63 % of base)
         356 : 25508.dasm (2.77 % of base)
         291 : 34345.dasm (23.95 % of base)
         234 : 32654.dasm (6.22 % of base)
         233 : 30130.dasm (6.27 % of base)
         221 : 28291.dasm (6.19 % of base)
         210 : 17069.dasm (5.83 % of base)
         207 : 13998.dasm (0.66 % of base)
         205 : 41809.dasm (3.58 % of base)
         199 : 35565.dasm (5.88 % of base)
         184 : 43145.dasm (4.75 % of base)
         182 : 12754.dasm (3.49 % of base)
         173 : 41606.dasm (10.96 % of base)
         166 : 30375.dasm (2.59 % of base)
         160 : 43866.dasm (1.51 % of base)
         158 : 7264.dasm (5.43 % of base)

Top file improvements (bytes):
        -148 : 17880.dasm (-4.80 % of base)
        -133 : 9218.dasm (-2.77 % of base)
        -114 : 40264.dasm (-4.01 % of base)
        -110 : 47511.dasm (-2.93 % of base)
        -106 : 27259.dasm (-3.65 % of base)
         -98 : 7692.dasm (-5.22 % of base)
         -95 : 25336.dasm (-2.65 % of base)
         -94 : 34735.dasm (-1.64 % of base)
         -88 : 25417.dasm (-2.76 % of base)
         -81 : 12742.dasm (-1.38 % of base)
         -81 : 2230.dasm (-8.54 % of base)
         -76 : 27313.dasm (-2.25 % of base)
         -72 : 34596.dasm (-1.64 % of base)
         -63 : 23999.dasm (-4.19 % of base)
         -54 : 19080.dasm (-2.70 % of base)
         -54 : 47041.dasm (-4.59 % of base)
         -53 : 15511.dasm (-9.57 % of base)
         -53 : 32572.dasm (-0.81 % of base)
         -52 : 35376.dasm (-3.74 % of base)
         -52 : 31889.dasm (-2.95 % of base)

94 total files with Code Size differences (44 improved, 50 regressed), 20 unchanged.

Top method regressions (bytes):
         531 (5.64 % of base) : 12755.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         519 (1.61 % of base) : 18304.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         451 (23.75 % of base) : 5024.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
         408 (3.78 % of base) : 48035.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (Tier0-FullOpts)
         403 (3.63 % of base) : 44029.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
         356 (2.77 % of base) : 25508.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         291 (23.95 % of base) : 34345.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (Tier1)
         234 (6.22 % of base) : 32654.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (Tier0-FullOpts)
         233 (6.27 % of base) : 30130.dasm - (dynamicClass):ReadMyEventsListerItemFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         221 (6.19 % of base) : 28291.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         210 (5.83 % of base) : 17069.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (Tier0-FullOpts)
         207 (0.66 % of base) : 13998.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
         205 (3.58 % of base) : 41809.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
         199 (5.88 % of base) : 35565.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AfterMembersCompletedChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
         184 (4.75 % of base) : 43145.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier0-FullOpts)
         182 (3.49 % of base) : 12754.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
         173 (10.96 % of base) : 41606.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier0-FullOpts)
         166 (2.59 % of base) : 30375.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
         160 (1.51 % of base) : 43866.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
         158 (5.43 % of base) : 7264.dasm - Utf8Json.Internal.AutomataDictionary+AutomataNode:EmitSearchNextCore(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder,System.Action`1[System.Collections.Generic.KeyValuePair`2[System.String,int]],System.Action,Utf8Json.Internal.AutomataDictionary+AutomataNode[],int) (Tier0-FullOpts)

Top method improvements (bytes):
        -148 (-4.80 % of base) : 17880.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (Tier0-FullOpts)
        -133 (-2.77 % of base) : 9218.dasm - MicroBenchmarks.Serializers.Location:proto_1(byref,MicroBenchmarks.Serializers.Location) (FullOpts)
        -114 (-4.01 % of base) : 40264.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxExtensions:VisitRankSpecifiers[System.ValueTuple`2[System.__Canon,System.__Canon]](Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,System.Action`2[System.__Canon,System.ValueTuple`2[System.__Canon,System.__Canon]],byref) (Tier0-FullOpts)
        -110 (-2.93 % of base) : 47511.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
        -106 (-3.65 % of base) : 27259.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -98 (-5.22 % of base) : 7692.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this (Tier0-FullOpts)
         -95 (-2.65 % of base) : 25336.dasm - MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:proto_7(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent) (FullOpts)
         -94 (-1.64 % of base) : 34735.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (Tier0-FullOpts)
         -88 (-2.76 % of base) : 25417.dasm - MicroBenchmarks.Serializers.CampaignSummaryViewModel:proto_9(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel) (FullOpts)
         -81 (-8.54 % of base) : 2230.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (Tier0-FullOpts)
         -81 (-1.38 % of base) : 12742.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier0-FullOpts)
         -76 (-2.25 % of base) : 27313.dasm - MicroBenchmarks.Serializers.MyEventsListerItem:proto_7(byref,MicroBenchmarks.Serializers.MyEventsListerItem) (FullOpts)
         -72 (-1.64 % of base) : 34596.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:GetMergedGlobalAliasesAndUsings(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:this (Tier0-FullOpts)
         -63 (-4.19 % of base) : 23999.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<DeserializeAsync>d__1[System.__Canon]:MoveNext():this (Tier0-FullOpts)
         -54 (-2.70 % of base) : 19080.dasm - BilinearTest:BilinearInterpol_Vector(double[],double[],double,double,double[],double,double,double):double[]:this (Tier0-FullOpts)
         -54 (-4.59 % of base) : 47041.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.MyEventsListerItemTask:this (Tier0-FullOpts)
         -53 (-0.81 % of base) : 32572.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
         -53 (-9.57 % of base) : 15511.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (Tier0-FullOpts)
         -52 (-3.74 % of base) : 35376.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckNonOverrideMember(Microsoft.CodeAnalysis.CSharp.Symbol,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.OverriddenOrHiddenMembersResult,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref) (Tier0-FullOpts)
         -52 (-2.95 % of base) : 31889.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:LexSyntaxTrivia(ubyte,ubyte,byref):this (Tier0-FullOpts)

Top method regressions (percentages):
         291 (23.95 % of base) : 34345.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (Tier1)
         451 (23.75 % of base) : 5024.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
          28 (23.73 % of base) : 18168.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
          28 (23.73 % of base) : 31293.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
          41 (21.13 % of base) : 40330.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
          22 (20.00 % of base) : 43082.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_0(byref,System.Text.RegularExpressions.Match):ubyte:this (Tier1)
          11 (18.97 % of base) : 19334.dasm - System.Linq.Enumerable+ConcatNIterator`1[int]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[int]:this (Tier0-FullOpts)
         147 (16.28 % of base) : 11751.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Tier0-FullOpts)
          27 (16.27 % of base) : 38629.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:SynthesizeNullableAttributeIfNecessary(System.Nullable`1[ubyte],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData:this (Tier1)
          38 (15.77 % of base) : 24177.dasm - System.Xml.XmlWellFormedWriter:StartElementContent():this (Tier0-FullOpts)
          39 (15.73 % of base) : 34666.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (Tier1)
          35 (15.62 % of base) : 12884.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:GetSequence(ubyte[],int):System.Buffers.ReadOnlySequence`1[ubyte] (Tier0-FullOpts)
          17 (15.60 % of base) : 44745.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (Tier0-FullOpts)
          23 (15.33 % of base) : 30061.dasm - Benchstone.BenchI.NDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
          23 (15.33 % of base) : 48070.dasm - Benchstone.MDBenchI.MDNDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
          33 (13.87 % of base) : 48071.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc8(int[],int[,],int,int) (Tier0-FullOpts)
          18 (13.85 % of base) : 42309.dasm - Benchstone.BenchI.TreeSort:Trees(int[]):ubyte (Tier0-FullOpts)
          23 (13.37 % of base) : 43641.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[int]:PushNext(System.Collections.Immutable.ImmutableList`1+Node[int]):this (Tier0-FullOpts)
         144 (13.32 % of base) : 44154.dasm - Benchstone.MDBenchF.MDRomber:Test():ubyte:this (Tier0-FullOpts)
         108 (13.06 % of base) : 1270.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier0-FullOpts)

Top method improvements (percentages):
         -22 (-18.33 % of base) : 35423.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
         -18 (-12.50 % of base) : 30662.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
         -25 (-11.90 % of base) : 22685.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
         -51 (-11.59 % of base) : 32775.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeChildren(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration]:this (Tier0-FullOpts)
         -27 (-11.54 % of base) : 38798.dasm - System.Reflection.Metadata.BlobBuilder:WriteBytes(ubyte,int):this (Tier1)
         -23 (-10.70 % of base) : 34992.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol:GetSimpleProgramEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol (Tier0-FullOpts)
         -23 (-10.27 % of base) : 39052.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitToken(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):this (Tier1)
         -53 (-9.57 % of base) : 15511.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (Tier0-FullOpts)
         -13 (-9.49 % of base) : 2238.dasm - System.String:PadLeft(int,ushort):System.String:this (Tier1)
         -24 (-9.30 % of base) : 7724.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+<>c__DisplayClass12_1:<BuildDeserialize>b__2(System.Collections.Generic.KeyValuePair`2[System.String,int]):this (Tier1)
          -7 (-8.75 % of base) : 35933.dasm - Microsoft.CodeAnalysis.Compilation:IsTypeMissing(byte):ubyte:this (Tier1)
         -81 (-8.54 % of base) : 2230.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (Tier0-FullOpts)
          -3 (-8.11 % of base) : 43942.dasm - Sigil.Impl.ExtensionMethods:IsTailableCall(System.Reflection.Emit.OpCode):ubyte (Tier1)
          -8 (-8.08 % of base) : 17408.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -5 (-7.81 % of base) : 3417.dasm - System.String:Equals(System.Object):ubyte:this (Tier1)
          -6 (-7.79 % of base) : 3396.dasm - System.Uri:GetLengthWithoutTrailingSpaces(System.String,byref,int) (Tier0-FullOpts)
          -8 (-7.77 % of base) : 237.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
          -8 (-7.77 % of base) : 13100.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -8 (-7.69 % of base) : 8184.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
         -19 (-7.34 % of base) : 42339.dasm - JetStream.Statistics:findOptimalSegmentation(double[],JetStream.SampleVarianceUpperTriangularMatrix,int):JetStream.Statistics+OptimalSegmentation (Tier0-FullOpts)


coreclr_tests.run.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 315999892 (overridden on cmd)
Total bytes of diff: 316454295 (overridden on cmd)
Total bytes of delta: 454403 (0.14 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        6824 : 514642.dasm (4.58 % of base)
        6824 : 514647.dasm (4.58 % of base)
        6672 : 515039.dasm (6.77 % of base)
        6672 : 515053.dasm (6.77 % of base)
        6672 : 520711.dasm (6.77 % of base)
        6672 : 520713.dasm (6.77 % of base)
        5972 : 515175.dasm (4.98 % of base)
        5860 : 515111.dasm (4.93 % of base)
        3939 : 515143.dasm (3.82 % of base)
        3929 : 515079.dasm (3.74 % of base)
        2543 : 514829.dasm (2.75 % of base)
        2281 : 520745.dasm (14.12 % of base)
        2281 : 515155.dasm (14.12 % of base)
        2081 : 520726.dasm (12.52 % of base)
        2020 : 520737.dasm (13.46 % of base)
        2015 : 514843.dasm (1.81 % of base)
        2015 : 515488.dasm (1.81 % of base)
        1993 : 515087.dasm (11.91 % of base)
        1989 : 515107.dasm (13.01 % of base)
        1978 : 514850.dasm (1.68 % of base)

Top file improvements (bytes):
       -1213 : 350506.dasm (-5.38 % of base)
        -697 : 486257.dasm (-4.43 % of base)
        -670 : 378717.dasm (-3.34 % of base)
        -547 : 470974.dasm (-9.71 % of base)
        -496 : 282538.dasm (-26.78 % of base)
        -433 : 472165.dasm (-7.36 % of base)
        -343 : 283847.dasm (-7.68 % of base)
        -343 : 521219.dasm (-7.68 % of base)
        -326 : 471983.dasm (-5.13 % of base)
        -256 : 204123.dasm (-2.37 % of base)
        -256 : 474021.dasm (-2.39 % of base)
        -250 : 377459.dasm (-5.67 % of base)
        -247 : 474244.dasm (-1.73 % of base)
        -239 : 474252.dasm (-1.82 % of base)
        -234 : 248182.dasm (-4.52 % of base)
        -221 : 476338.dasm (-10.92 % of base)
        -206 : 476037.dasm (-8.58 % of base)
        -206 : 476145.dasm (-8.58 % of base)
        -203 : 383487.dasm (-7.39 % of base)
        -192 : 2443.dasm (-6.57 % of base)

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

Top method regressions (bytes):
        6824 (4.58 % of base) : 514642.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
        6824 (4.58 % of base) : 514647.dasm - decimalrem:TestEntryPoint():int (FullOpts)
        6672 (6.77 % of base) : 515039.dasm - overlddiv:TestEntryPoint():int (FullOpts)
        6672 (6.77 % of base) : 520711.dasm - overlddiv:TestEntryPoint():int (FullOpts)
        6672 (6.77 % of base) : 515053.dasm - overldrem:TestEntryPoint():int (FullOpts)
        6672 (6.77 % of base) : 520713.dasm - overldrem:TestEntryPoint():int (FullOpts)
        5972 (4.98 % of base) : 515175.dasm - r8rem:TestEntryPoint():int (FullOpts)
        5860 (4.93 % of base) : 515111.dasm - r4rem:TestEntryPoint():int (FullOpts)
        3939 (3.82 % of base) : 515143.dasm - r8div:TestEntryPoint():int (FullOpts)
        3929 (3.74 % of base) : 515079.dasm - r4div:TestEntryPoint():int (FullOpts)
        2543 (2.75 % of base) : 514829.dasm - i4div:TestEntryPoint():int (FullOpts)
        2281 (14.12 % of base) : 520745.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        2281 (14.12 % of base) : 515155.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        2081 (12.52 % of base) : 520726.dasm - r4NaNadd:TestEntryPoint():int (FullOpts)
        2020 (13.46 % of base) : 520737.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
        2015 (1.81 % of base) : 514843.dasm - i8div:TestEntryPoint():int (FullOpts)
        2015 (1.81 % of base) : 515488.dasm - u8div:TestEntryPoint():int (FullOpts)
        1993 (11.91 % of base) : 515087.dasm - r4NaNadd:TestEntryPoint():int (FullOpts)
        1989 (13.01 % of base) : 515107.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
        1978 (1.68 % of base) : 514850.dasm - i8rem:TestEntryPoint():int (FullOpts)

Top method improvements (bytes):
       -1213 (-5.38 % of base) : 350506.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -697 (-4.43 % of base) : 486257.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -670 (-3.34 % of base) : 378717.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -547 (-9.71 % of base) : 470974.dasm - div_r4._div:main():int (FullOpts)
        -496 (-26.78 % of base) : 282538.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (Tier1)
        -433 (-7.36 % of base) : 472165.dasm - sub_r4._sub:main():int (FullOpts)
        -343 (-7.68 % of base) : 521219.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (FullOpts)
        -343 (-7.68 % of base) : 283847.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (Tier0-FullOpts)
        -326 (-5.13 % of base) : 471983.dasm - mul_r4._mul:main():int (FullOpts)
        -256 (-2.39 % of base) : 474021.dasm - Dynamic.CollectionTest:CustomCollection():this (FullOpts)
        -256 (-2.37 % of base) : 204123.dasm - Dynamic.CollectionTest:CustomCollection():this (Tier0-FullOpts)
        -250 (-5.67 % of base) : 377459.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Tier1)
        -247 (-1.73 % of base) : 474244.dasm - Dynamic.EventTest:MultipleHandlers():this (FullOpts)
        -239 (-1.82 % of base) : 474252.dasm - Dynamic.EventTest:MultipleSources():this (FullOpts)
        -234 (-4.52 % of base) : 248182.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (Instrumented Tier1)
        -221 (-10.92 % of base) : 476338.dasm - Vector2_3_4Test:RunVector4Tests() (FullOpts)
        -206 (-8.58 % of base) : 476037.dasm - GenericsTest:TestVector256F() (FullOpts)
        -206 (-8.58 % of base) : 476145.dasm - GenericsTest:TestVectorF256() (FullOpts)
        -203 (-7.39 % of base) : 383487.dasm - XUnitWrapperLibrary.TestSummary:GetTestResultOutput(System.String):System.String:this (FullOpts)
        -192 (-6.57 % of base) : 2443.dasm - XUnitWrapperLibrary.TestSummary:GetTestResultOutput(System.String):System.String:this (Tier0-FullOpts)

Top method regressions (percentages):
         332 (41.81 % of base) : 528516.dasm - Test+Matrix4x4:TestEntryPoint():int (FullOpts)
         678 (37.73 % of base) : 583238.dasm - X:SetDirect(System.String,ubyte):ubyte (FullOpts)
          68 (29.44 % of base) : 515980.dasm - structinreg.Program1:test15(structinreg.Test15):int (FullOpts)
          32 (27.59 % of base) : 513573.dasm - Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
          32 (27.59 % of base) : 519759.dasm - Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
          68 (27.31 % of base) : 515977.dasm - structinreg.Program1:test4(structinreg.Test4):int (FullOpts)
         321 (26.18 % of base) : 584132.dasm - Value0:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584134.dasm - Value1:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584136.dasm - Value2:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584138.dasm - Value3:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584140.dasm - Value4:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584142.dasm - Value5:CheckValues():ubyte:this (FullOpts)
           6 (24.00 % of base) : 477513.dasm - Point:DistanceSquared(Point):int:this (FullOpts)
         291 (23.95 % of base) : 486833.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         451 (23.75 % of base) : 486249.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          41 (21.13 % of base) : 489289.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
          41 (21.13 % of base) : 237851.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
          59 (21.00 % of base) : 584781.dasm - Microsoft.Diagnostics.Tracing.TraceEvent:XmlAttribHex(System.Text.StringBuilder,System.String,ulong):System.Text.StringBuilder (FullOpts)
          14 (20.90 % of base) : 228167.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          58 (20.64 % of base) : 371848.dasm - Microsoft.Build.Evaluation.SemiColonTokenizer+Enumerator:MoveNext():ubyte:this (Tier0-FullOpts)

Top method improvements (percentages):
          -5 (-29.41 % of base) : 50004.dasm - System.Math:Max(byte,byte):byte (Tier1)
          -5 (-29.41 % of base) : 49992.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
        -496 (-26.78 % of base) : 282538.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (Tier1)
        -125 (-20.29 % of base) : 228962.dasm - System.String:CompareOrdinalHelper(System.String,System.String):int (Instrumented Tier1)
          -3 (-20.00 % of base) : 231000.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 282392.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
         -11 (-18.97 % of base) : 228240.dasm - Tests_len3_6:Test_tst_29(System.String):ubyte (FullOpts)
         -11 (-18.97 % of base) : 228689.dasm - Tests_len34_13:Test_tst_29(System.String):ubyte (FullOpts)
         -11 (-18.97 % of base) : 228302.dasm - Tests_len4_7:Test_tst_29(System.String):ubyte (FullOpts)
         -11 (-18.97 % of base) : 228364.dasm - Tests_len5_8:Test_tst_29(System.String):ubyte (FullOpts)
         -22 (-18.33 % of base) : 487447.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -22 (-18.33 % of base) : 233776.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
        -120 (-16.76 % of base) : 471993.dasm - neg_r4._neg:main():int (FullOpts)
        -102 (-14.01 % of base) : 371711.dasm - System.Threading.ReaderWriterLockSlim:ExitWriteLock():this (Instrumented Tier1)
         -16 (-13.56 % of base) : 581352.dasm - ILCompiler.RuntimeDeterminedTypeHelper:GetHashCode(Internal.TypeSystem.MethodDesc):int (FullOpts)
        -184 (-13.29 % of base) : 472213.dasm - TestCasts.Program:TestConvertFromFloatToI1() (FullOpts)
         -35 (-13.16 % of base) : 472573.dasm - Xunit.AssertExtensions:CollectionEqual[System.__Canon](System.__Canon[],System.__Canon[]) (FullOpts)
         -35 (-13.16 % of base) : 204183.dasm - Xunit.AssertExtensions:CollectionEqual[System.__Canon](System.__Canon[],System.__Canon[]) (Tier0-FullOpts)
         -48 (-13.08 % of base) : 584426.dasm - Tracing.Tests.Listener+<GetFailedTargetEvents>d__17:MoveNext():ubyte:this (FullOpts)
          -8 (-12.90 % of base) : 529974.dasm - ILGEN_0xc2f3d0c8:Method_0x5cc2(double):int (FullOpts)


libraries.crossgen2.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 35570616 (overridden on cmd)
Total bytes of diff: 35582355 (overridden on cmd)
Total bytes of delta: 11739 (0.03 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         836 : 247027.dasm (12.23 % of base)
         457 : 228421.dasm (2.07 % of base)
         368 : 251772.dasm (19.82 % of base)
         335 : 36247.dasm (6.09 % of base)
         333 : 254588.dasm (15.50 % of base)
         282 : 116211.dasm (0.42 % of base)
         265 : 75757.dasm (2.63 % of base)
         233 : 23260.dasm (11.92 % of base)
         224 : 186326.dasm (5.75 % of base)
         224 : 145190.dasm (5.75 % of base)
         208 : 74597.dasm (10.12 % of base)
         201 : 257002.dasm (7.56 % of base)
         201 : 238596.dasm (7.56 % of base)
         188 : 173528.dasm (6.21 % of base)
         176 : 37918.dasm (3.07 % of base)
         176 : 70583.dasm (3.07 % of base)
         170 : 25395.dasm (0.28 % of base)
         163 : 36354.dasm (14.17 % of base)
         162 : 111380.dasm (4.51 % of base)
         161 : 5092.dasm (9.53 % of base)

Top file improvements (bytes):
        -484 : 115281.dasm (-2.65 % of base)
        -396 : 36577.dasm (-8.68 % of base)
        -383 : 274183.dasm (-8.05 % of base)
        -381 : 133189.dasm (-7.99 % of base)
        -281 : 41039.dasm (-1.29 % of base)
        -281 : 73591.dasm (-1.29 % of base)
        -180 : 192726.dasm (-6.11 % of base)
        -175 : 35270.dasm (-1.24 % of base)
        -170 : 192911.dasm (-8.59 % of base)
        -150 : 176676.dasm (-15.56 % of base)
        -150 : 134906.dasm (-15.56 % of base)
        -146 : 192628.dasm (-4.85 % of base)
        -139 : 151068.dasm (-7.60 % of base)
        -120 : 17481.dasm (-7.36 % of base)
        -119 : 109546.dasm (-4.94 % of base)
        -108 : 191860.dasm (-9.51 % of base)
        -102 : 227904.dasm (-6.25 % of base)
        -102 : 135123.dasm (-11.81 % of base)
        -102 : 176876.dasm (-11.46 % of base)
        -102 : 35475.dasm (-8.19 % of base)

94 total files with Code Size differences (43 improved, 51 regressed), 20 unchanged.

Top method regressions (bytes):
         836 (12.23 % of base) : 247027.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         457 (2.07 % of base) : 228421.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         368 (19.82 % of base) : 251772.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         335 (6.09 % of base) : 36247.dasm - System.Data.RBTree`1[int]:RBInsert(int,int,int,int,ubyte):int:this (FullOpts)
         333 (15.50 % of base) : 254588.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:LoadPropertyMappingTable(int,System.Object[,]) (FullOpts)
         282 (0.42 % of base) : 116211.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         265 (2.63 % of base) : 75757.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
         233 (11.92 % of base) : 23260.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
         224 (5.75 % of base) : 186326.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
         224 (5.75 % of base) : 145190.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
         208 (10.12 % of base) : 74597.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):this (FullOpts)
         201 (7.56 % of base) : 257002.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (FullOpts)
         201 (7.56 % of base) : 238596.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (FullOpts)
         188 (6.21 % of base) : 173528.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:InferTypeArgumentsFromLambdaArgument(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol):ubyte:this (FullOpts)
         176 (3.07 % of base) : 70583.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1055_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
         176 (3.07 % of base) : 37918.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1056_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
         170 (0.28 % of base) : 25395.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
         163 (14.17 % of base) : 36354.dasm - System.Data.ForeignKeyConstraint:CascadeUpdate(System.Data.DataRow):this (FullOpts)
         162 (4.51 % of base) : 111380.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this (FullOpts)
         161 (9.53 % of base) : 5092.dasm - System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)

Top method improvements (bytes):
        -484 (-2.65 % of base) : 115281.dasm - Microsoft.Diagnostics.Tracing.Parsers.MicrosoftAntimalwareEngineTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -396 (-8.68 % of base) : 36577.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
        -383 (-8.05 % of base) : 274183.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -381 (-7.99 % of base) : 133189.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -281 (-1.29 % of base) : 41039.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -281 (-1.29 % of base) : 73591.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -180 (-6.11 % of base) : 192726.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -175 (-1.24 % of base) : 35270.dasm - System.Data.BinaryNode:EvalBinaryOp(int,System.Data.ExpressionNode,System.Data.ExpressionNode,System.Data.DataRow,int,int[]):System.Object:this (FullOpts)
        -170 (-8.59 % of base) : 192911.dasm - Newtonsoft.Json.Utilities.JavaScriptUtils:WriteEscapedJavaScriptString(System.IO.TextWriter,System.String,ushort,ubyte,ubyte[],int,Newtonsoft.Json.IArrayPool`1[ushort],byref) (FullOpts)
        -150 (-15.56 % of base) : 176676.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
        -150 (-15.56 % of base) : 134906.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
        -146 (-4.85 % of base) : 192628.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -139 (-7.60 % of base) : 151068.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSignatureComparer:DetailedParameterCompare(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol],byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol],byref,int,int):int (FullOpts)
        -120 (-7.36 % of base) : 17481.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
        -119 (-4.94 % of base) : 109546.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteEnumMethod(System.Xml.Serialization.EnumMapping):this (FullOpts)
        -108 (-9.51 % of base) : 191860.dasm - Newtonsoft.Json.JsonConvert:ToString(System.Object):System.String (FullOpts)
        -102 (-11.81 % of base) : 135123.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -102 (-11.46 % of base) : 176876.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -102 (-8.19 % of base) : 35475.dasm - System.Data.Common.SqlConvert:ConvertToSqlDouble(System.Object):System.Data.SqlTypes.SqlDouble (FullOpts)
        -102 (-6.25 % of base) : 227904.dasm - System.Data.OleDb.ColumnBinding:Value(System.Object):this (FullOpts)

Top method regressions (percentages):
          11 (44.00 % of base) : 165351.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          11 (44.00 % of base) : 165333.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          11 (44.00 % of base) : 165332.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          11 (44.00 % of base) : 165352.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          46 (29.87 % of base) : 105829.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
          57 (27.54 % of base) : 240742.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (FullOpts)
          18 (24.00 % of base) : 113336.dasm - Microsoft.Diagnostics.Tracing.StartStopActivityComputer:<.ctor>b__0_0(Microsoft.Diagnostics.Tracing.Etlx.TraceActivity,Microsoft.Diagnostics.Tracing.TraceEvent):this (FullOpts)
          20 (23.81 % of base) : 143689.dasm - Microsoft.CodeAnalysis.BatchNode`1[System.__Canon]:WithTrackingName(System.String):Microsoft.CodeAnalysis.IIncrementalGeneratorNode`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
          20 (23.81 % of base) : 184841.dasm - Microsoft.CodeAnalysis.BatchNode`1[System.__Canon]:WithTrackingName(System.String):Microsoft.CodeAnalysis.IIncrementalGeneratorNode`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
          27 (22.88 % of base) : 143331.dasm - Microsoft.CodeAnalysis.IOperation+OperationList+Reversed:<ToImmutableArray>g__reverseArray|5_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] (FullOpts)
          27 (22.88 % of base) : 184498.dasm - Microsoft.CodeAnalysis.IOperation+OperationList+Reversed:<ToImmutableArray>g__reverseArray|5_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] (FullOpts)
           8 (21.62 % of base) : 37005.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
           8 (21.62 % of base) : 69652.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
           8 (21.62 % of base) : 264294.dasm - System.Speech.Internal.Synthesis.WaveHeader:ReleaseData():this (FullOpts)
           9 (21.43 % of base) : 270676.dasm - System.Net.NameResolutionPal+GetAddrInfoExState:UnregisterAndGetCancellationToken():System.Threading.CancellationToken:this (FullOpts)
          27 (20.77 % of base) : 161621.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:IsIdentifier(System.String):ubyte (FullOpts)
          35 (20.11 % of base) : 25998.dasm - Microsoft.FSharp.Quotations.PatternsModule+ByteStream:ReadBytes(int):ubyte[]:this (FullOpts)
          12 (20.00 % of base) : 191240.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.__Canon[],int,int) (FullOpts)
          22 (20.00 % of base) : 247207.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_0(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts)
         368 (19.82 % of base) : 251772.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)

Top method improvements (percentages):
          -7 (-21.88 % of base) : 242109.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
          -6 (-18.75 % of base) : 226061.dasm - System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
          -6 (-18.18 % of base) : 135342.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
          -6 (-18.18 % of base) : 177067.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
         -14 (-18.18 % of base) : 218883.dasm - System.ComponentModel.DoubleConverter:ToString(System.Object,System.Globalization.NumberFormatInfo):System.String:this (FullOpts)
         -14 (-17.50 % of base) : 261254.dasm - System.DirectoryServices.SearchResultCollection:get_SearchObject():System.DirectoryServices.UnsafeNativeMethods+IDirectorySearch:this (FullOpts)
         -38 (-16.03 % of base) : 36628.dasm - System.Data.RBTree`1[int]:RecomputeSize(int):this (FullOpts)
         -38 (-16.03 % of base) : 36586.dasm - System.Data.RBTree`1[System.__Canon]:RecomputeSize(int):this (FullOpts)
          -6 (-15.79 % of base) : 34370.dasm - System.Data.Common.Int32Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.79 % of base) : 34454.dasm - System.Data.Common.SingleStorage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.79 % of base) : 34522.dasm - System.Data.Common.UInt32Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.79 % of base) : 248459.dasm - System.Data.Odbc.OdbcDataReader:GetInt32(int):int:this (FullOpts)
         -35 (-15.77 % of base) : 170841.dasm - Microsoft.CodeAnalysis.Operations.VisualBasicOperationFactory:CreateBoundLateMemberAccessOperation(Microsoft.CodeAnalysis.VisualBasic.BoundLateMemberAccess):Microsoft.CodeAnalysis.Operations.IDynamicMemberReferenceOperation:this (FullOpts)
          -8 (-15.69 % of base) : 242213.dasm - System.Dynamic.DynamicObject+MetaDynamic:GetDynamicMemberNames():System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
        -150 (-15.56 % of base) : 176676.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
        -150 (-15.56 % of base) : 134906.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
          -6 (-15.38 % of base) : 177077.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:IsNotConfigurable():ubyte:this (FullOpts)
          -6 (-15.38 % of base) : 33761.dasm - System.Data.Common.CharStorage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.38 % of base) : 34357.dasm - System.Data.Common.Int16Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.38 % of base) : 34509.dasm - System.Data.Common.UInt16Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)


libraries.pmi.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 48824461 (overridden on cmd)
Total bytes of diff: 48989854 (overridden on cmd)
Total bytes of delta: 165393 (0.34 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         534 : 186908.dasm (2.20 % of base)
         533 : 115.dasm (5.66 % of base)
         451 : 201970.dasm (23.75 % of base)
         449 : 176900.dasm (31.29 % of base)
         449 : 55596.dasm (9.91 % of base)
         393 : 123740.dasm (13.12 % of base)
         374 : 186922.dasm (8.28 % of base)
         365 : 134029.dasm (10.40 % of base)
         358 : 190584.dasm (14.55 % of base)
         348 : 79758.dasm (5.22 % of base)
         343 : 237418.dasm (15.29 % of base)
         334 : 138146.dasm (10.79 % of base)
         324 : 144984.dasm (12.08 % of base)
         324 : 106687.dasm (12.08 % of base)
         314 : 40272.dasm (3.72 % of base)
         312 : 138167.dasm (11.28 % of base)
         308 : 133436.dasm (10.73 % of base)
         299 : 68149.dasm (7.52 % of base)
         299 : 270316.dasm (13.19 % of base)
         291 : 108916.dasm (23.95 % of base)

Top file improvements (bytes):
        -961 : 70380.dasm (-17.14 % of base)
        -697 : 201975.dasm (-4.43 % of base)
        -422 : 69433.dasm (-10.03 % of base)
        -414 : 75271.dasm (-8.85 % of base)
        -401 : 69425.dasm (-9.43 % of base)
        -383 : 303145.dasm (-8.06 % of base)
        -381 : 143146.dasm (-8.00 % of base)
        -367 : 75667.dasm (-3.85 % of base)
        -343 : 33718.dasm (-1.49 % of base)
        -335 : 69763.dasm (-8.42 % of base)
        -327 : 62829.dasm (-7.17 % of base)
        -319 : 230254.dasm (-8.28 % of base)
        -319 : 216574.dasm (-8.28 % of base)
        -318 : 69764.dasm (-7.37 % of base)
        -318 : 82585.dasm (-6.85 % of base)
        -299 : 175166.dasm (-11.88 % of base)
        -293 : 75414.dasm (-3.77 % of base)
        -293 : 75417.dasm (-5.95 % of base)
        -266 : 79571.dasm (-11.57 % of base)
        -248 : 97867.dasm (-7.12 % of base)

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

Top method regressions (bytes):
         534 (2.20 % of base) : 186908.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         533 (5.66 % of base) : 115.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         451 (23.75 % of base) : 201970.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         449 (31.29 % of base) : 176900.dasm - Internal.JitInterface.CorInfoImpl:ComputeJitPgoInstrumentationSchema(System.Func`2[System.Object,int],Internal.Pgo.PgoSchemaElem[],byref,System.IO.MemoryStream,System.Func`2[Internal.TypeSystem.TypeDesc,ubyte]) (FullOpts)
         449 (9.91 % of base) : 55596.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEDeltaAssemblyBuilder:GetSynthesizedTypesFromMetadata(System.Reflection.Metadata.MetadataReader,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder):Microsoft.CodeAnalysis.Emit.SynthesizedTypeMaps (FullOpts)
         393 (13.12 % of base) : 123740.dasm - Microsoft.Diagnostics.Tracing.UnhandledTraceEvent:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         374 (8.28 % of base) : 186922.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         365 (10.40 % of base) : 134029.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         358 (14.55 % of base) : 190584.dasm - Newtonsoft.Json.Schema.JsonSchemaWriter:WriteSchema(Newtonsoft.Json.Schema.JsonSchema):this (FullOpts)
         348 (5.22 % of base) : 79758.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:DecodeWellKnownAttributeAppliedToMethod(byref):this (FullOpts)
         343 (15.29 % of base) : 237418.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFilterBuilder(System.String,System.DateTime,System.DateTime,ubyte,int):System.String (FullOpts)
         334 (10.79 % of base) : 138146.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         324 (12.08 % of base) : 144984.dasm - Microsoft.Cci.TypeNameSerializer:GetSerializedTypeName(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.String (FullOpts)
         324 (12.08 % of base) : 106687.dasm - Microsoft.Cci.TypeNameSerializer:GetSerializedTypeName(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.String (FullOpts)
         314 (3.72 % of base) : 40272.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDeclarationComputer:ComputeDeclarations(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.SyntaxNode,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Nullable`1[int],ubyte],ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Nullable`1[int],System.Threading.CancellationToken) (FullOpts)
         312 (11.28 % of base) : 138167.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData:ToXml(int,System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         308 (10.73 % of base) : 133436.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.EventTraceHeaderTraceData:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         299 (7.52 % of base) : 68149.dasm - System.Data.XmlDataTreeWriter:XmlDataRowWriter(System.Data.DataRow,System.String):this (FullOpts)
         299 (13.19 % of base) : 270316.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteArray(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo):this (FullOpts)
         291 (23.95 % of base) : 108916.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)

Top method improvements (bytes):
        -961 (-17.14 % of base) : 70380.dasm - System.Data.RBTree`1[ubyte]:RBDeleteX(int,int,int):int:this (FullOpts)
        -697 (-4.43 % of base) : 201975.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -422 (-10.03 % of base) : 69433.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -414 (-8.85 % of base) : 75271.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindNameOfExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.NameOfExpressionSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
        -401 (-9.43 % of base) : 69425.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -383 (-8.06 % of base) : 303145.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -381 (-8.00 % of base) : 143146.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -367 (-3.85 % of base) : 75667.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,int,int,int,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.MemberModifiers:this (FullOpts)
        -343 (-1.49 % of base) : 33718.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -335 (-8.42 % of base) : 69763.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -327 (-7.17 % of base) : 62829.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
        -319 (-8.28 % of base) : 230254.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSection,int):System.String:this (FullOpts)
        -319 (-8.28 % of base) : 216574.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSection,int):System.String:this (FullOpts)
        -318 (-6.85 % of base) : 82585.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.VisualBasic.BoundArrayAccess,ubyte):this (FullOpts)
        -318 (-7.37 % of base) : 69764.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -299 (-11.88 % of base) : 175166.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteDerivedSerializable(System.Xml.Serialization.SerializableMapping,System.Xml.Serialization.SerializableMapping,System.String,ubyte):this (FullOpts)
        -293 (-3.77 % of base) : 75414.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureAndProduceBoundNode(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.VisualBasic.BoundTypeExpression,Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.Location):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
        -293 (-5.95 % of base) : 75417.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASetOfCandidates(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
        -266 (-11.57 % of base) : 79571.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:CheckStructureCircularity(Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):ubyte:this (FullOpts)
        -248 (-7.12 % of base) : 97867.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:LateMakeArgumentArrayArgument(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)

Top method regressions (percentages):
          59 (33.15 % of base) : 204226.dasm - Microsoft.Build.Framework.TargetFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          59 (33.15 % of base) : 204267.dasm - Microsoft.Build.Framework.TaskFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          53 (32.12 % of base) : 204163.dasm - Microsoft.Build.Framework.PropertyInitialValueSetEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
         449 (31.29 % of base) : 176900.dasm - Internal.JitInterface.CorInfoImpl:ComputeJitPgoInstrumentationSchema(System.Func`2[System.Object,int],Internal.Pgo.PgoSchemaElem[],byref,System.IO.MemoryStream,System.Func`2[Internal.TypeSystem.TypeDesc,ubyte]) (FullOpts)
          59 (30.89 % of base) : 204316.dasm - Microsoft.Build.Framework.TaskStartedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          46 (29.30 % of base) : 171467.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
         274 (28.60 % of base) : 303258.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         274 (28.60 % of base) : 229280.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
          29 (24.58 % of base) : 249769.dasm - System.Linq.Enumerable+ListPartition`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
          22 (24.44 % of base) : 203993.dasm - Microsoft.Build.Framework.ExternalProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          22 (24.44 % of base) : 204129.dasm - Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          15 (24.19 % of base) : 174250.dasm - System.Xml.Serialization.SchemaObjectWriter:WriteIndent():this (FullOpts)
          23 (23.96 % of base) : 231797.dasm - System.Data.Odbc.CStringTokenizer:GetTokenFromBracket(int):int:this (FullOpts)
         291 (23.95 % of base) : 108916.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         291 (23.95 % of base) : 147126.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         451 (23.75 % of base) : 201970.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          29 (21.80 % of base) : 123854.dasm - Microsoft.Diagnostics.Tracing.Utilities.FastStream:ReadAsciiStringUpToAny(System.String,System.Text.StringBuilder):this (FullOpts)
          54 (21.77 % of base) : 272818.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (FullOpts)
          26 (21.67 % of base) : 170478.dasm - System.Xml.Xsl.Xslt.XslAstAnalyzer+XPathAnalyzer:ResolvePrefix(System.String):System.String:this (FullOpts)
          23 (21.50 % of base) : 296578.dasm - Microsoft.Extensions.Hosting.HostApplicationBuilder+<>c__DisplayClass30_0`1[System.__Canon]:<ConfigureContainer>b__0():System.IServiceProvider:this (FullOpts)

Top method improvements (percentages):
         -10 (-45.45 % of base) : 74104.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-45.45 % of base) : 74100.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-45.45 % of base) : 74096.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-45.45 % of base) : 74157.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-38.46 % of base) : 74048.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-38.46 % of base) : 74041.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-38.46 % of base) : 74137.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[short]:Invoke(short,short):short (FullOpts)
          -7 (-36.84 % of base) : 11420.dasm - System.Diagnostics.Tracing.Statics:Combine(int,ubyte):ubyte (FullOpts)
          -3 (-20.00 % of base) : 74161.dasm - System.Numerics.Tensors.TensorPrimitives+MinMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -3 (-20.00 % of base) : 74153.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -22 (-18.33 % of base) : 59014.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -119 (-18.25 % of base) : 174932.dasm - System.Xml.Serialization.XmlSchemas:IsDataSet(System.Xml.Schema.XmlSchema):ubyte (FullOpts)
         -10 (-17.54 % of base) : 246058.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
        -961 (-17.14 % of base) : 70380.dasm - System.Data.RBTree`1[ubyte]:RBDeleteX(int,int,int):int:this (FullOpts)
          -7 (-16.28 % of base) : 28111.dasm - Microsoft.FSharp.Core.Operators+NonStructuralComparison:Min$W[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[ubyte,ubyte]],ubyte,ubyte):ubyte (FullOpts)
         -17 (-16.19 % of base) : 245491.dasm - System.Linq.Expressions.Interpreter.CastInstruction+CastInstructionT`1[System.__Canon]:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
         -38 (-16.10 % of base) : 70350.dasm - System.Data.RBTree`1[System.__Canon]:RecomputeSize(int):this (FullOpts)
         -38 (-16.10 % of base) : 70411.dasm - System.Data.RBTree`1[ubyte]:RecomputeSize(int):this (FullOpts)
        -206 (-15.97 % of base) : 242141.dasm - System.IO.Packaging.ZipPackage+ContentTypeHelper:ParseContentTypesFile(System.Collections.ObjectModel.ReadOnlyCollection`1[System.IO.Compression.ZipArchiveEntry]):this (FullOpts)
          -3 (-15.79 % of base) : 74130.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)


libraries_tests.run.windows.x86.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 181401826 (overridden on cmd)
Total bytes of diff: 181809897 (overridden on cmd)
Total bytes of delta: 408071 (0.22 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        1074 : 444438.dasm (6.85 % of base)
        1074 : 443697.dasm (6.87 % of base)
         954 : 178424.dasm (1.42 % of base)
         738 : 226286.dasm (6.53 % of base)
         738 : 409641.dasm (6.53 % of base)
         726 : 604468.dasm (12.44 % of base)
         718 : 280079.dasm (14.88 % of base)
         686 : 280099.dasm (14.68 % of base)
         605 : 82769.dasm (9.31 % of base)
         596 : 402035.dasm (7.86 % of base)
         596 : 402038.dasm (8.51 % of base)
         596 : 57361.dasm (7.40 % of base)
         596 : 402039.dasm (8.53 % of base)
         546 : 280102.dasm (14.86 % of base)
         544 : 594896.dasm (12.17 % of base)
         537 : 7542.dasm (5.67 % of base)
         529 : 625969.dasm (4.49 % of base)
         529 : 373970.dasm (4.49 % of base)
         529 : 263429.dasm (4.49 % of base)
         529 : 345783.dasm (4.49 % of base)

Top file improvements (bytes):
       -1213 : 152301.dasm (-5.38 % of base)
       -1213 : 573163.dasm (-5.38 % of base)
       -1213 : 160748.dasm (-5.38 % of base)
       -1213 : 75751.dasm (-5.38 % of base)
       -1212 : 46348.dasm (-5.37 % of base)
       -1148 : 96256.dasm (-5.13 % of base)
        -961 : 219660.dasm (-17.15 % of base)
        -714 : 333301.dasm (-3.55 % of base)
        -400 : 233482.dasm (-6.12 % of base)
        -391 : 218191.dasm (-5.94 % of base)
        -375 : 220886.dasm (-8.94 % of base)
        -368 : 219521.dasm (-8.95 % of base)
        -348 : 234274.dasm (-2.98 % of base)
        -338 : 220445.dasm (-8.54 % of base)
        -321 : 250445.dasm (-0.85 % of base)
        -312 : 220481.dasm (-7.19 % of base)
        -302 : 598387.dasm (-5.91 % of base)
        -283 : 483234.dasm (-3.35 % of base)
        -273 : 546521.dasm (-6.63 % of base)
        -270 : 251362.dasm (-3.04 % of base)

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

Top method regressions (bytes):
        1074 (6.85 % of base) : 444438.dasm - (dynamicClass):ReadAllTypes2FromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        1074 (6.87 % of base) : 443697.dasm - (dynamicClass):ReadAllTypesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         954 (1.42 % of base) : 178424.dasm - System.CodeDom.Compiler.Tests.CSharpCodeGeneratorTests+<GenerateCodeFromType_TestData>d__25:MoveNext():ubyte:this (Tier0-FullOpts)
         738 (6.53 % of base) : 226286.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         738 (6.53 % of base) : 409641.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         726 (12.44 % of base) : 604468.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE11ED309466AF57DE9D7AB55C09A60EE21567522F71D3843DB41A5B03BB97697__Match_InstanceMethods_DefaultTimeout_SourceGenerated_ThrowsImpl_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         718 (14.88 % of base) : 280079.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithTrailingStar():this (Tier1)
         686 (14.68 % of base) : 280099.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithLeadingStar():this (Tier1)
         605 (9.31 % of base) : 82769.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeWellKnownAttributeImpl(byref):this (Tier1)
         596 (7.40 % of base) : 57361.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeWellKnownAttributeImpl(byref):this (Tier1)
         596 (7.86 % of base) : 402035.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess1():int:this (Tier0-FullOpts)
         596 (8.51 % of base) : 402038.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess3():int:this (Tier0-FullOpts)
         596 (8.53 % of base) : 402039.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess4():int:this (Tier0-FullOpts)
         546 (14.86 % of base) : 280102.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternDotIsStar():this (Tier1)
         544 (12.17 % of base) : 594896.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30951_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         537 (5.67 % of base) : 7542.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         529 (4.49 % of base) : 625969.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         529 (4.49 % of base) : 373970.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         529 (4.49 % of base) : 263429.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         529 (4.49 % of base) : 345783.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (bytes):
       -1213 (-5.38 % of base) : 152301.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1213 (-5.38 % of base) : 573163.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1213 (-5.38 % of base) : 160748.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1213 (-5.38 % of base) : 75751.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1212 (-5.37 % of base) : 46348.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1148 (-5.13 % of base) : 96256.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -961 (-17.15 % of base) : 219660.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (Tier0-FullOpts)
        -714 (-3.55 % of base) : 333301.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -400 (-6.12 % of base) : 233482.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_RefArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_RefArgs (Tier1)
        -391 (-5.94 % of base) : 218191.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_RefArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_RefArgs (Tier1)
        -375 (-8.94 % of base) : 220886.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (Tier0-FullOpts)
        -368 (-8.95 % of base) : 219521.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (Tier0-FullOpts)
        -348 (-2.98 % of base) : 234274.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -338 (-8.54 % of base) : 220445.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (Tier0-FullOpts)
        -321 (-0.85 % of base) : 250445.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Tier0-FullOpts)
        -312 (-7.19 % of base) : 220481.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (Tier0-FullOpts)
        -302 (-5.91 % of base) : 598387.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalConstantSignature(Microsoft.Cci.ILocalDefinition):System.Reflection.Metadata.BlobHandle:this (Tier1)
        -283 (-3.35 % of base) : 483234.dasm - System.Security.Cryptography.X509Certificates.Tests.PfxFormatTests:TwoCerts_TwoKeys_ManySafeContentsValues(ubyte,ubyte):this (Tier1)
        -273 (-6.63 % of base) : 546521.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestSingleStrings() (Tier0-FullOpts)
        -270 (-3.04 % of base) : 251362.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.operate.compound.basic.context02c.context02c.Test:RunTest():System.Object:this (Tier0-FullOpts)

Top method regressions (percentages):
          23 (35.94 % of base) : 386787.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
          47 (32.87 % of base) : 459707.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
          38 (32.48 % of base) : 386783.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
          46 (29.30 % of base) : 383480.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (Tier0-FullOpts)
         274 (28.60 % of base) : 286021.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
         274 (28.60 % of base) : 215351.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
         274 (28.60 % of base) : 285969.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
         274 (28.60 % of base) : 58875.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
          57 (25.45 % of base) : 460302.dasm - System.Reflection.MemberInfo:HasSameMetadataDefinitionAsCore[System.__Canon](System.Reflection.MemberInfo):ubyte:this (Tier1)
         235 (24.15 % of base) : 152456.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.SyntaxTrivia,System.__Canon]:TryGetValue(Microsoft.CodeAnalysis.SyntaxTrivia,byref):ubyte:this (Tier1)
          39 (23.93 % of base) : 54441.dasm - Microsoft.CodeAnalysis.CSharp.NullableAnnotationExtensions+<>c:<GetPublicSymbols>b__13_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.ITypeSymbol:this (Tier1)
          39 (23.78 % of base) : 72773.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:TryEnqueue(System.Threading.PortableThreadPool+IOCompletionPoller+Event):ubyte:this (Instrumented Tier1)
          28 (23.73 % of base) : 145488.dasm - Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (Tier0-FullOpts)
         113 (23.20 % of base) : 57009.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:IsEquivalentTo(Microsoft.CodeAnalysis.GreenNode):ubyte:this (Tier1)
          38 (23.17 % of base) : 78447.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor:VisitExpressionWithStackGuard(byref,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
          36 (23.08 % of base) : 581518.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter:VisitSequence(Microsoft.CodeAnalysis.CSharp.BoundSequence):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         477 (23.02 % of base) : 9925.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
          53 (22.84 % of base) : 405270.dasm - System.Xml.XmlWriter:WriteQualifiedName(System.String,System.String):this (Tier1)
          54 (21.77 % of base) : 100229.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (Tier0-FullOpts)
          44 (21.26 % of base) : 378663.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitString(System.IO.BinaryWriter,System.String) (Tier1)

Top method improvements (percentages):
         -10 (-45.45 % of base) : 363711.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
         -10 (-45.45 % of base) : 363938.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Tier1)
         -10 (-45.45 % of base) : 363713.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
         -10 (-45.45 % of base) : 363945.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
         -10 (-45.45 % of base) : 365230.dasm - System.Int16:Max(short,short):short (Instrumented Tier1)
         -10 (-45.45 % of base) : 365547.dasm - System.Int16:Max(short,short):short (Tier1)
         -10 (-45.45 % of base) : 365189.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)
         -10 (-45.45 % of base) : 365360.dasm - System.Int16:Min(short,short):short (Tier1)
         -10 (-45.45 % of base) : 365548.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (Tier1)
         -10 (-45.45 % of base) : 363939.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)
         -10 (-38.46 % of base) : 364005.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (Tier1)
          -8 (-33.33 % of base) : 365445.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
         -96 (-26.52 % of base) : 552582.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateImmutableEnumerableCreateRangeDelegate[System.__Canon,System.__Canon]():System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
         -84 (-26.01 % of base) : 558131.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateAddMethodDelegate[System.__Canon]():System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
         -84 (-25.23 % of base) : 553529.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateFieldGetter[System.__Canon](System.Reflection.FieldInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
         -84 (-25.23 % of base) : 560527.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateFieldSetter[System.__Canon](System.Reflection.FieldInfo):System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
         -84 (-25.23 % of base) : 552460.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreatePropertySetter[System.__Canon](System.Reflection.PropertyInfo):System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
         -74 (-24.34 % of base) : 142780.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
         -74 (-24.34 % of base) : 64013.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
         -74 (-24.34 % of base) : 150645.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.__Canon,System.__Canon]]:get_IsCached():ubyte:this (Tier1)


librariestestsnotieredcompilation.run.windows.x86.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 102225812 (overridden on cmd)
Total bytes of diff: 102307414 (overridden on cmd)
Total bytes of delta: 81602 (0.08 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         994 : 209238.dasm (6.43 % of base)
         994 : 208826.dasm (6.45 % of base)
         954 : 65191.dasm (1.42 % of base)
         726 : 304954.dasm (12.44 % of base)
         533 : 3814.dasm (5.66 % of base)
         515 : 238554.dasm (5.39 % of base)
         470 : 268241.dasm (9.11 % of base)
         463 : 6304.dasm (7.14 % of base)
         451 : 5204.dasm (23.75 % of base)
         445 : 1847.dasm (6.95 % of base)
         436 : 33202.dasm (21.02 % of base)
         436 : 33964.dasm (21.02 % of base)
         436 : 33133.dasm (21.02 % of base)
         436 : 34036.dasm (20.69 % of base)
         436 : 34097.dasm (20.69 % of base)
         436 : 34420.dasm (21.02 % of base)
         425 : 60156.dasm (1.76 % of base)
         418 : 125059.dasm (6.32 % of base)
         413 : 165471.dasm (8.26 % of base)
         413 : 99247.dasm (5.67 % of base)

Top file improvements (bytes):
        -961 : 94034.dasm (-17.15 % of base)
        -697 : 5212.dasm (-4.43 % of base)
        -644 : 180497.dasm (-6.75 % of base)
        -450 : 116309.dasm (-3.07 % of base)
        -450 : 115662.dasm (-3.07 % of base)
        -449 : 116146.dasm (-3.02 % of base)
        -425 : 95964.dasm (-10.25 % of base)
        -405 : 95138.dasm (-9.66 % of base)
        -402 : 112680.dasm (-2.61 % of base)
        -395 : 118240.dasm (-2.88 % of base)
        -387 : 115536.dasm (-3.14 % of base)
        -384 : 26765.dasm (-3.81 % of base)
        -383 : 132011.dasm (-8.06 % of base)
        -375 : 111089.dasm (-2.45 % of base)
        -338 : 94835.dasm (-8.54 % of base)
        -327 : 278597.dasm (-8.10 % of base)
        -321 : 117080.dasm (-0.85 % of base)
        -319 : 92279.dasm (-8.28 % of base)
        -318 : 98247.dasm (-7.37 % of base)
        -291 : 118220.dasm (-2.73 % of base)

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

Top method regressions (bytes):
         994 (6.43 % of base) : 209238.dasm - (dynamicClass):ReadAllTypes2FromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         994 (6.45 % of base) : 208826.dasm - (dynamicClass):ReadAllTypesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         954 (1.42 % of base) : 65191.dasm - System.CodeDom.Compiler.Tests.CSharpCodeGeneratorTests+<GenerateCodeFromType_TestData>d__25:MoveNext():ubyte:this (FullOpts)
         726 (12.44 % of base) : 304954.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE11ED309466AF57DE9D7AB55C09A60EE21567522F71D3843DB41A5B03BB97697__Match_InstanceMethods_DefaultTimeout_SourceGenerated_ThrowsImpl_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         533 (5.66 % of base) : 3814.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         515 (5.39 % of base) : 238554.dasm - System.ServiceModel.Syndication.Tests.AtomPub10ServiceDocumentFormatterTests+<>c:<ReadFrom_FullDocument_ReturnsExpected>b__18_0(System.ServiceModel.Syndication.ServiceDocument):this (FullOpts)
         470 (9.11 % of base) : 268241.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteHelloWorld(System.Text.Json.JsonWriterOptions):this (FullOpts)
         463 (7.14 % of base) : 6304.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1056_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
         451 (23.75 % of base) : 5204.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         445 (6.95 % of base) : 1847.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
         436 (21.02 % of base) : 33202.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (21.02 % of base) : 33964.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (21.02 % of base) : 33133.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (20.69 % of base) : 34036.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (20.69 % of base) : 34097.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (21.02 % of base) : 34420.dasm - Microsoft.Extensions.Configuration.Xml.Test.ConfigurationProviderXmlTest:Has_debug_view():this (FullOpts)
         425 (1.76 % of base) : 60156.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         418 (6.32 % of base) : 125059.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F41B8911E2F21D4DC5E3A6E6E037C09C91843DEA626D26CDD1D82984E3611395A__GetRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         413 (5.67 % of base) : 99247.dasm - System.Data.Tests.DataColumnCollectionTest:Add():this (FullOpts)
         413 (8.26 % of base) : 165471.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanScalarIntoSpan[ubyte,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ubyte],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ubyte],ubyte]](System.ReadOnlySpan`1[ubyte],ubyte,System.Span`1[ubyte]) (FullOpts)

Top method improvements (bytes):
        -961 (-17.15 % of base) : 94034.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
        -697 (-4.43 % of base) : 5212.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -644 (-6.75 % of base) : 180497.dasm - System.Xml.XmlReaderTests.ReadCharsTests:GenerateTestXml(byref):System.String (FullOpts)
        -450 (-3.07 % of base) : 116309.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004c.enum004c.Test:MainMethod():int (FullOpts)
        -450 (-3.07 % of base) : 115662.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004e.enum004e.Test:MainMethod():int (FullOpts)
        -449 (-3.02 % of base) : 116146.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004.enum004.Test:MainMethod():int (FullOpts)
        -425 (-10.25 % of base) : 95964.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -405 (-9.66 % of base) : 95138.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -402 (-2.61 % of base) : 112680.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.cnst001.cnst001.Test:MainMethod():int (FullOpts)
        -395 (-2.88 % of base) : 118240.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.cnst002.cnst002.Test:MainMethod():int (FullOpts)
        -387 (-3.14 % of base) : 115536.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum001.enum001.A:MainMethod():int (FullOpts)
        -384 (-3.81 % of base) : 26765.dasm - Microsoft.CSharp.RuntimeBinder.Tests.DefaultParameterTests:MarshalAsOptionalsCorrectDefault():this (FullOpts)
        -383 (-8.06 % of base) : 132011.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -375 (-2.45 % of base) : 111089.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum005b.enum005b.Test:MainMethod():int (FullOpts)
        -338 (-8.54 % of base) : 94835.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -327 (-8.10 % of base) : 278597.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
        -321 (-0.85 % of base) : 117080.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (FullOpts)
        -319 (-8.28 % of base) : 92279.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSection,int):System.String:this (FullOpts)
        -318 (-7.37 % of base) : 98247.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -291 (-2.73 % of base) : 118220.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum005.enum005.Test:MainMethod():int (FullOpts)

Top method regressions (percentages):
         239 (36.38 % of base) : 169152.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4ToStringTest():this (FullOpts)
          46 (29.30 % of base) : 175685.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
         274 (28.60 % of base) : 92351.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         274 (28.60 % of base) : 132131.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         274 (28.60 % of base) : 132149.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         274 (28.60 % of base) : 16740.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         113 (24.84 % of base) : 214211.dasm - System.Tests.DoubleTests_GenericMath:AbsTest() (FullOpts)
         291 (23.95 % of base) : 50637.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         291 (23.95 % of base) : 44647.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         291 (23.95 % of base) : 5868.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         451 (23.75 % of base) : 5204.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          28 (23.73 % of base) : 54191.dasm - Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (FullOpts)
          33 (22.92 % of base) : 71682.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair`2[int,System.__Canon],System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
          15 (22.06 % of base) : 23512.dasm - Microsoft.CodeAnalysis.SymbolKey+SymbolKeyWriter:<.ctor>b__16_1(Microsoft.CodeAnalysis.IParameterSymbol):this (FullOpts)
          54 (21.77 % of base) : 34667.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (FullOpts)
          30 (21.74 % of base) : 15501.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          23 (21.50 % of base) : 40085.dasm - Microsoft.Extensions.Hosting.HostApplicationBuilder+<>c__DisplayClass30_0`1[System.__Canon]:<ConfigureContainer>b__0():System.IServiceProvider:this (FullOpts)
          27 (21.26 % of base) : 45764.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
          41 (21.13 % of base) : 9571.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
          27 (21.09 % of base) : 11101.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)

Top method improvements (percentages):
         -10 (-38.46 % of base) : 167111.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-38.46 % of base) : 167197.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-38.46 % of base) : 166222.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-38.46 % of base) : 167264.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-38.46 % of base) : 165761.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
         -10 (-38.46 % of base) : 165888.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
          -8 (-33.33 % of base) : 167091.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
          -5 (-23.81 % of base) : 167101.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
          -5 (-23.81 % of base) : 165702.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Min(ubyte,ubyte):ubyte:this (FullOpts)
          -5 (-23.81 % of base) : 165561.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MinMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
         -55 (-20.00 % of base) : 79028.dasm - System.Collections.Tests.IGenericSharedAPI_Tests`1[int]:IGenericSharedAPI_Add_AfterRemovingAnyValue(int):this (FullOpts)
         -36 (-19.35 % of base) : 111934.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Indexers.Oneclass2indexers.oneparamdifftypesconv017.oneparamdifftypesconv017.I,ushort):System.Object (FullOpts)
        -151 (-19.31 % of base) : 11336.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
        -102 (-18.72 % of base) : 17876.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:AfterRightChildOfBinaryLogicalOperatorHasBeenVisited(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,byref,byref):this (FullOpts)
         -22 (-18.33 % of base) : 7448.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -119 (-18.31 % of base) : 173144.dasm - System.Xml.Serialization.XmlSchemas:IsDataSet(System.Xml.Schema.XmlSchema):ubyte (FullOpts)
        -961 (-17.15 % of base) : 94034.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
        -102 (-16.24 % of base) : 165678.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[ubyte]:Min_Tensor_Negative0LesserThanPositive0():this (FullOpts)
         -38 (-16.10 % of base) : 94035.dasm - System.Data.RBTree`1[int]:RecomputeSize(int):this (FullOpts)
         -38 (-16.10 % of base) : 94702.dasm - System.Data.RBTree`1[System.__Canon]:RecomputeSize(int):this (FullOpts)


realworld.run.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 11028236 (overridden on cmd)
Total bytes of diff: 11059568 (overridden on cmd)
Total bytes of delta: 31332 (0.28 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         992 : 1493.dasm (7.61 % of base)
         632 : 1062.dasm (5.25 % of base)
         535 : 31843.dasm (5.66 % of base)
         533 : 1302.dasm (3.38 % of base)
         498 : 34923.dasm (2.39 % of base)
         477 : 13859.dasm (23.02 % of base)
         461 : 21036.dasm (7.15 % of base)
         436 : 16129.dasm (5.83 % of base)
         395 : 8667.dasm (2.15 % of base)
         334 : 1065.dasm (1.43 % of base)
         330 : 1053.dasm (3.14 % of base)
         310 : 1340.dasm (5.87 % of base)
         291 : 21416.dasm (23.95 % of base)
         283 : 1030.dasm (1.26 % of base)
         278 : 26313.dasm (7.65 % of base)
         263 : 31842.dasm (4.33 % of base)
         256 : 1348.dasm (6.93 % of base)
         253 : 1139.dasm (1.85 % of base)
         250 : 21325.dasm (3.20 % of base)
         245 : 1399.dasm (5.45 % of base)

Top file improvements (bytes):
        -697 : 13868.dasm (-4.43 % of base)
        -327 : 29170.dasm (-8.10 % of base)
        -294 : 11872.dasm (-17.37 % of base)
        -262 : 1069.dasm (-1.17 % of base)
        -253 : 14805.dasm (-12.42 % of base)
        -227 : 26147.dasm (-13.99 % of base)
        -171 : 10762.dasm (-4.20 % of base)
        -155 : 1568.dasm (-2.90 % of base)
        -148 : 25193.dasm (-17.01 % of base)
        -144 : 13006.dasm (-8.35 % of base)
        -128 : 1459.dasm (-6.47 % of base)
        -123 : 10459.dasm (-2.45 % of base)
        -121 : 1652.dasm (-9.71 % of base)
        -110 : 24973.dasm (-2.53 % of base)
        -110 : 30088.dasm (-8.30 % of base)
        -108 : 12189.dasm (-2.37 % of base)
        -103 : 8052.dasm (-3.83 % of base)
        -102 : 1100.dasm (-2.16 % of base)
        -102 : 1675.dasm (-7.52 % of base)
         -99 : 10621.dasm (-5.11 % of base)

89 total files with Code Size differences (41 improved, 48 regressed), 20 unchanged.

Top method regressions (bytes):
         992 (7.61 % of base) : 1493.dasm - BepuPhysics.Constraints.Contact.Contact4Functions:BepuPhysics.Constraints.ITwoBodyConstraintFunctions<BepuPhysics.Constraints.Contact.Contact4PrestepData,BepuPhysics.Constraints.Contact.Contact4AccumulatedImpulses>.Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
         632 (5.25 % of base) : 1062.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         535 (5.66 % of base) : 31843.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         533 (3.38 % of base) : 1302.dasm - DemoBenchmarks.RagdollTubeBenchmark:AddRagdoll(System.Numerics.Vector3,System.Numerics.Quaternion,int,BepuPhysics.CollidableProperty`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupCollisionFilter],BepuPhysics.Simulation):DemoBenchmarks.RagdollTubeBenchmark+RagdollHandles (FullOpts)
         498 (2.39 % of base) : 34923.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:LoadModuleManifest(System.String,System.Management.Automation.ExternalScriptInfo,System.Collections.Hashtable,System.Collections.Hashtable,int,System.Version,System.Version,System.Version,System.Nullable`1[System.Guid],byref,byref):System.Management.Automation.PSModuleInfo:this (FullOpts)
         477 (23.02 % of base) : 13859.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         461 (7.15 % of base) : 21036.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1055_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
         436 (5.83 % of base) : 16129.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
         395 (2.15 % of base) : 8667.dasm - FSharp.Compiler.ConstraintSolver+SolveMemberConstraint@1402-8:Invoke(Microsoft.FSharp.Core.Unit):FSharp.Compiler.ErrorLogger+OperationResult`1[FSharp.Compiler.ConstraintSolver+TraitConstraintSolution]:this (FullOpts)
         334 (1.43 % of base) : 1065.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TrianglePairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         330 (3.14 % of base) : 1053.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxTriangleTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         310 (5.87 % of base) : 1340.dasm - BepuPhysics.IslandAwakener:PrepareJobs(byref,ubyte,int):System.ValueTuple`2[int,int]:this (FullOpts)
         291 (23.95 % of base) : 21416.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         283 (1.26 % of base) : 1030.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         278 (7.65 % of base) : 26313.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitSwitchSection(Microsoft.CodeAnalysis.CSharp.BoundSwitchSection,ubyte):this (FullOpts)
         263 (4.33 % of base) : 31842.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
         256 (6.93 % of base) : 1348.dasm - BepuPhysics.IslandSleeper:Sleep(byref,BepuUtilities.IThreadDispatcher,ubyte,int,int,ubyte):this (FullOpts)
         253 (1.85 % of base) : 1139.dasm - BepuPhysics.Constraints.HingeFunctions:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
         250 (3.20 % of base) : 21325.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
         245 (5.45 % of base) : 1399.dasm - BepuPhysics.CollisionDetection.NarrowPhase`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupFilteredCallbacks]:AddBatchEntries(int,byref,byref,byref,byref,BepuPhysics.Collidables.TypedIndex,BepuPhysics.Collidables.TypedIndex,int,int,float,byref,byref,byref,byref):this (FullOpts)

Top method improvements (bytes):
        -697 (-4.43 % of base) : 13868.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -327 (-8.10 % of base) : 29170.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
        -294 (-17.37 % of base) : 11872.dasm - FSharp.Compiler.CheckExpressions+BindingNormalization:NormalizeStaticMemberBinding(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.Syntax.SynMemberFlags,FSharp.Compiler.Syntax.SynValData,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],FSharp.Compiler.Syntax.SynValTyparDecls,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynPat],FSharp.Compiler.Text.Range,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs):FSharp.Compiler.CheckExpressions+NormalizedBindingPatternInfo (FullOpts)
        -262 (-1.17 % of base) : 1069.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -253 (-12.42 % of base) : 14805.dasm - SixLabors.ImageSharp.Formats.Png.PngDecoderCore:TryReadChunk(byref):ubyte:this (FullOpts)
        -227 (-13.99 % of base) : 26147.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIsPatternExpression(Microsoft.CodeAnalysis.CSharp.BoundIsPatternExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
        -171 (-4.20 % of base) : 10762.dasm - <StartupCode$FSharp-Compiler-Service>.$Sformat:.cctor() (FullOpts)
        -155 (-2.90 % of base) : 1568.dasm - BepuPhysics.Trees.Tree:GetOverlapsBetweenDifferentNodes[BepuPhysics.CollisionDetection.CollidableOverlapFinder`1+IntertreeOverlapHandler[DemoBenchmarks.ShapePileBenchmark+DemoNarrowPhaseCallbacks]](byref,byref,byref,byref):this (FullOpts)
        -148 (-17.01 % of base) : 25193.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
        -144 (-8.35 % of base) : 13006.dasm - FSharp.Compiler.NameResolution:ResolveFieldPrim(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.TypedTree+TType,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident],FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]):Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.NameResolution+FieldResolution]] (FullOpts)
        -128 (-6.47 % of base) : 1459.dasm - BepuPhysics.PoseIntegrator`1[DemoBenchmarks.RagdollTubeBenchmark+DemoPoseIntegratorCallbacks]:IntegrateBundlesAfterSubstepping(byref,int,int,float,float,int,int):this (FullOpts)
        -123 (-2.45 % of base) : 10459.dasm - FSharp.Compiler.MethodOverrides+DispatchSlotChecking:CheckDispatchSlotsAreImplemented(FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.InfoReader+InfoReader,FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+TcResultsSink,ubyte,FSharp.Compiler.TypedTree+TType,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+RequiredSlot],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+OverrideInfo],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+OverrideInfo]):ubyte (FullOpts)
        -121 (-9.71 % of base) : 1652.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -110 (-8.30 % of base) : 30088.dasm - Microsoft.CodeAnalysis.CSharp.AsyncStateMachine:.ctor(Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,ubyte):this (FullOpts)
        -110 (-2.53 % of base) : 24973.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -108 (-2.37 % of base) : 12189.dasm - FSharp.Compiler.CheckComputationExpressions:tryTcSequenceExprBody@1880(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.ConstraintSolver+OverallTy,FSharp.Compiler.Text.Range,FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv]] (FullOpts)
        -103 (-3.83 % of base) : 8052.dasm - FSharp.Compiler.CheckExpressions+BindingNormalization:normPattern@2471(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.CheckExpressions+IsObjExprBinding,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.Syntax.SynValData,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs,FSharp.Compiler.AccessibilityLogic+AccessorDomain,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags],FSharp.Compiler.Syntax.SynPat):FSharp.Compiler.CheckExpressions+NormalizedBindingPatternInfo (FullOpts)
        -102 (-2.16 % of base) : 1100.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CompoundPairOverlapFinder`2[BepuPhysics.Collidables.Compound,BepuPhysics.Collidables.Compound]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        -102 (-7.52 % of base) : 1675.dasm - System.UriParser:.cctor() (FullOpts)
         -99 (-5.11 % of base) : 10621.dasm - FSharp.Compiler.NameResolution:ResolveTypeLongIdentInModuleOrNamespace(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.NameResolution+TypeNameResolutionInfo,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.NameResolution+PermitDirectReferenceToGeneratedType,FSharp.Compiler.NameResolution+ResolutionInfo,int,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+EntityRef,FSharp.Compiler.TypedTree+ModuleOrNamespaceType,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]):Internal.Utilities.Library.ResultOrException`1[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.TypedTree+EntityRef]]] (FullOpts)

Top method regressions (percentages):
         291 (23.95 % of base) : 21416.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         477 (23.02 % of base) : 13859.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          30 (21.90 % of base) : 25996.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          41 (21.13 % of base) : 25491.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
          27 (20.93 % of base) : 23201.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
          30 (20.27 % of base) : 27201.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitAssignmentOfNullCoalescingAssignment(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator,Microsoft.CodeAnalysis.CSharp.BoundPropertyAccess):this (FullOpts)
          27 (19.71 % of base) : 24606.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.EventSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,int):ubyte:this (FullOpts)
          82 (19.03 % of base) : 20589.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:ReadAssemblyIdentityOrThrow(System.Reflection.Metadata.MetadataReader):Microsoft.CodeAnalysis.AssemblyIdentity (FullOpts)
          38 (18.91 % of base) : 26633.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindInterpolatedString>g__unescapeInterpolatedStringLiteral|557_0(System.String):System.String (FullOpts)
          17 (17.53 % of base) : 33730.dasm - System.Management.Automation.ScriptBlock+SuspiciousContentChecker:CheckForMatches(uint[],int):System.String (FullOpts)
          69 (17.00 % of base) : 21462.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (FullOpts)
           5 (16.67 % of base) : 33586.dasm - System.Text.StringBuilder:Append(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         147 (16.28 % of base) : 14434.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
          27 (16.27 % of base) : 30731.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:SynthesizeNullableAttributeIfNecessary(System.Nullable`1[ubyte],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData:this (FullOpts)
          99 (15.59 % of base) : 24378.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbol(Microsoft.CodeAnalysis.MetadataHelpers+AssemblyQualifiedTypeName,byref):System.__Canon:this (FullOpts)
          50 (14.88 % of base) : 22586.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.DynamicTypeDecoder:TransformNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
          19 (14.84 % of base) : 25917.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitCompoundAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundCompoundAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          19 (14.73 % of base) : 35447.dasm - System.Dynamic.DynamicMetaObject:GetExpressions(System.Dynamic.DynamicMetaObject[]):System.Linq.Expressions.Expression[] (FullOpts)
          13 (13.83 % of base) : 15607.dasm - System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1[int]:Enqueue(int):this (FullOpts)
         108 (13.09 % of base) : 482.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (FullOpts)

Top method improvements (percentages):
         -22 (-18.33 % of base) : 22824.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -294 (-17.37 % of base) : 11872.dasm - FSharp.Compiler.CheckExpressions+BindingNormalization:NormalizeStaticMemberBinding(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.Syntax.SynMemberFlags,FSharp.Compiler.Syntax.SynValData,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],FSharp.Compiler.Syntax.SynValTyparDecls,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynPat],FSharp.Compiler.Text.Range,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs):FSharp.Compiler.CheckExpressions+NormalizedBindingPatternInfo (FullOpts)
        -148 (-17.01 % of base) : 25193.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
         -95 (-16.16 % of base) : 25859.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:AfterRightChildOfBinaryLogicalOperatorHasBeenVisited(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,byref,byref):this (FullOpts)
         -30 (-16.04 % of base) : 14055.dasm - SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
        -227 (-13.99 % of base) : 26147.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIsPatternExpression(Microsoft.CodeAnalysis.CSharp.BoundIsPatternExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          -7 (-12.50 % of base) : 27789.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
          -7 (-12.50 % of base) : 27790.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Min(byte,byte):byte (FullOpts)
          -7 (-12.50 % of base) : 26298.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[ubyte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+ByteTC]:Max(ubyte,ubyte):ubyte (FullOpts)
          -7 (-12.50 % of base) : 26299.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[ubyte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+ByteTC]:Min(ubyte,ubyte):ubyte (FullOpts)
        -253 (-12.42 % of base) : 14805.dasm - SixLabors.ImageSharp.Formats.Png.PngDecoderCore:TryReadChunk(byref):ubyte:this (FullOpts)
         -10 (-12.05 % of base) : 25842.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitForStatement(Microsoft.CodeAnalysis.CSharp.BoundForStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         -51 (-11.59 % of base) : 20412.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeChildren(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration]:this (FullOpts)
         -27 (-11.54 % of base) : 30630.dasm - System.Reflection.Metadata.BlobBuilder:WriteBytes(ubyte,int):this (FullOpts)
         -81 (-10.87 % of base) : 21768.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArgumentEvaluateEpilogue(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState],ubyte,int):Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult:this (FullOpts)
         -29 (-10.86 % of base) : 6735.dasm - FSharp.Compiler.TypedTreeBasics:primEntityRefEq$cont@387(ubyte,FSharp.Compiler.TypedTree+CcuThunk,FSharp.Compiler.TypedTree+EntityRef,FSharp.Compiler.TypedTree+EntityRef,Microsoft.FSharp.Core.Unit):ubyte (FullOpts)
          -7 (-10.77 % of base) : 10519.dasm - FSharp.Compiler.Syntax.PrettyNaming+choice@429:Invoke(System.Tuple`2[ushort,System.String]):ubyte:this (FullOpts)
         -23 (-10.70 % of base) : 20867.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol:GetSimpleProgramEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol (FullOpts)
         -23 (-10.27 % of base) : 28969.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitToken(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):this (FullOpts)
         -26 (-10.20 % of base) : 13745.dasm - ILLinkBenchmarks.Utilities:GetCurrentOSPlatform():System.Runtime.InteropServices.OSPlatform (FullOpts)