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 : 41405.dasm (1.16 % of base)
         120 : 30577.dasm (3.22 % 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 : 10499.dasm (-7.83 % of base)
        -110 : 3578.dasm (-2.60 % 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 : 6914.dasm (-3.70 % of base)
         -90 : 31544.dasm (-15.00 % 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) : 3285.dasm - System.Net.SocketProtocolSupportPal:.cctor() (FullOpts)
          14 (14.29 % of base) : 4669.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 : 61410.dasm (14.11 % of base)
         136 : 139764.dasm (0.85 % of base)
         134 : 99892.dasm (2.36 % of base)
         130 : 145279.dasm (6.42 % of base)
         130 : 106448.dasm (6.42 % of base)
         130 : 85740.dasm (6.44 % 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 : 143124.dasm (-3.62 % of base)
        -116 : 26983.dasm (-3.62 % of base)
        -114 : 47646.dasm (-1.11 % of base)
        -108 : 79554.dasm (-3.46 % of base)
        -104 : 106942.dasm (-3.69 % of base)
        -104 : 110836.dasm (-2.22 % of base)
        -104 : 101413.dasm (-3.69 % of base)
         -98 : 142898.dasm (-3.94 % of base)
         -98 : 16462.dasm (-3.71 % of base)
         -98 : 90421.dasm (-6.09 % 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.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)
         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.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)

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) : 143124.dasm - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
        -116 (-3.62 % of base) : 26983.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) : 106942.dasm - System.Reflection.PortableExecutable.PEHeaders:SkipDosHeader(byref,byref) (Tier1)
        -104 (-3.69 % of base) : 101413.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) : 118843.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) : 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) : 65176.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)
           6 (11.11 % of base) : 164835.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) : 104020.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) : 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)

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) : 118893.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) : 134593.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)
          -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) : 133338.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)


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 : 53911.dasm (1.59 % of base)
         102 : 61368.dasm (2.93 % 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 : 65581.dasm (-6.73 % of base)
         -86 : 42266.dasm (-8.87 % of base)
         -86 : 40271.dasm (-2.62 % of base)
         -86 : 40740.dasm (-2.58 % 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.62 % of base) : 40271.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -86 (-2.58 % of base) : 40740.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 : 407975.dasm (2.30 % of base)
         472 : 415942.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) : 407975.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
         472 (2.30 % of base) : 415942.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 : 177288.dasm (6.57 % of base)
         160 : 161959.dasm (6.57 % of base)
         142 : 162309.dasm (4.80 % of base)
         142 : 162351.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 : 199331.dasm (-8.45 % of base)
        -150 : 74600.dasm (-8.38 % of base)
        -150 : 163076.dasm (-9.27 % of base)
        -136 : 76326.dasm (-4.02 % of base)
        -130 : 199582.dasm (-5.87 % of base)
        -130 : 201464.dasm (-8.31 % of base)
        -130 : 160996.dasm (-7.00 % of base)
        -130 : 174500.dasm (-6.96 % of base)
        -128 : 61136.dasm (-3.25 % of base)
        -122 : 36677.dasm (-2.74 % of base)
        -120 : 137686.dasm (-5.88 % of base)
        -120 : 77576.dasm (-5.41 % 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) : 177288.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
         160 (6.57 % of base) : 161959.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 : 161545.dasm (-3.32 % of base)
        -222 : 161561.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 : 194558.dasm (-5.53 % of base)
        -164 : 139415.dasm (-3.91 % of base)
        -160 : 273109.dasm (-6.18 % 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 : 695608.dasm (8.64 % of base)
         210 : 221588.dasm (1.97 % 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 : 279741.dasm (-2.44 % of base)
        -244 : 694989.dasm (-3.38 % of base)
        -240 : 527545.dasm (-5.96 % of base)
        -238 : 199874.dasm (-0.94 % of base)
        -238 : 197000.dasm (-2.57 % 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) : 284730.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          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)
          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) : 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) : 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) : 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) : 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) : 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) : 284197.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
          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.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) : 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)
         -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)
         -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 : 242549.dasm (2.66 % of base)
        1022 : 250360.dasm (2.73 % of base)
        1022 : 253527.dasm (2.73 % of base)
        1022 : 253703.dasm (2.73 % of base)
        1022 : 253950.dasm (2.73 % of base)
        1022 : 253588.dasm (2.66 % of base)
        1022 : 241553.dasm (2.73 % of base)
        1022 : 244438.dasm (2.66 % of base)
        1022 : 248120.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 : 236974.dasm (-1.20 % of base)
        -250 : 250414.dasm (-1.24 % of base)
        -250 : 253213.dasm (-1.20 % of base)
        -250 : 253673.dasm (-1.20 % of base)
        -250 : 243558.dasm (-1.20 % of base)
        -250 : 244386.dasm (-1.20 % of base)
        -250 : 253370.dasm (-1.20 % of base)
        -250 : 249322.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) : 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) : 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) : 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) : 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) : 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) : 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) : 106023.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (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.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 : 34544.dasm (1.74 % of base)
         136 : 14196.dasm (6.31 % 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)