Assembly Diffs

linux x64

Diffs are based on 2,515,915 contexts (991,070 MinOpts, 1,524,845 FullOpts).

MISSED contexts: base: 1,584 (0.06%), diff: 1,994 (0.08%)

Overall (-706,269 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,323,346 -12,894
benchmarks.run_pgo.linux.x64.checked.mch 71,225,423 -2,464
benchmarks.run_tiered.linux.x64.checked.mch 21,423,742 -1,702
coreclr_tests.run.linux.x64.checked.mch 403,160,942 -180,795
libraries.crossgen2.linux.x64.checked.mch 38,726,572 -245
libraries.pmi.linux.x64.checked.mch 60,294,308 -23,684
libraries_tests.run.linux.x64.Release.mch 335,310,491 -143,099
librariestestsnotieredcompilation.run.linux.x64.Release.mch 132,294,648 -325,386
realworld.run.linux.x64.checked.mch 13,168,403 -12,658
smoke_tests.nativeaot.linux.x64.checked.mch 4,064,942 -3,342

MinOpts (-310,501 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 23,799,989 -2,568
benchmarks.run_tiered.linux.x64.checked.mch 17,740,780 -1,663
coreclr_tests.run.linux.x64.checked.mch 279,754,460 -124,548
libraries_tests.run.linux.x64.Release.mch 183,759,609 -116,186
librariestestsnotieredcompilation.run.linux.x64.Release.mch 10,617,768 -65,536

FullOpts (-395,768 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,024,043 -12,894
benchmarks.run_pgo.linux.x64.checked.mch 47,425,434 +104
benchmarks.run_tiered.linux.x64.checked.mch 3,682,962 -39
coreclr_tests.run.linux.x64.checked.mch 123,406,482 -56,247
libraries.crossgen2.linux.x64.checked.mch 38,725,374 -245
libraries.pmi.linux.x64.checked.mch 60,181,451 -23,684
libraries_tests.run.linux.x64.Release.mch 151,550,882 -26,913
librariestestsnotieredcompilation.run.linux.x64.Release.mch 121,676,880 -259,850
realworld.run.linux.x64.checked.mch 12,782,519 -12,658
smoke_tests.nativeaot.linux.x64.checked.mch 4,063,993 -3,342

Example diffs

benchmarks.run.linux.x64.checked.mch

-42 (-60.87%) : 11424.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)

@@ -7,58 +7,28 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rdi this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 5, 5 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M44061_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M44061_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x20] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=59 bbWeight=1 PerfScore 7.50
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M44061_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x10], rax + mov gword ptr [rdi+0x18], rax + mov gword ptr [rdi+0x20], rax + ;; size=26 bbWeight=1 PerfScore 4.25
G_M44061_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 69, prolog size 3, PerfScore 11.75, instruction count 20, allocated bytes for code 69 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
+; Total bytes of code 27, prolog size 0, PerfScore 5.25, instruction count 6, allocated bytes for code 27 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
; ============================================================ Unwind Info: @@ -66,10 +36,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

-25 (-45.45%) : 11425.dasm - System.Xml.XmlTextReaderImpl+XmlContext:.ctor():this (FullOpts)

@@ -8,48 +8,30 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Xml.XmlTextReaderImpl+XmlContext>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rdi this class-hnd single-def <System.Xml.XmlTextReaderImpl+XmlContext>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 3, 3 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M52849_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M52849_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - xor edi, edi - mov dword ptr [rbx+0x20], edi - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi r15] - ; byrRegs -[rdi] - xor rax, rax
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M52849_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + xor eax, eax + mov dword ptr [rdi+0x20], eax + mov rax, 0xD1FFAB1E
; gcrRegs +[rax]
- mov gword ptr [rbx+0x18], rax - ;; size=45 bbWeight=1 PerfScore 6.25
+ mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x10], rax + xor rax, rax + mov gword ptr [rdi+0x18], rax + ;; size=29 bbWeight=1 PerfScore 4.75
G_M52849_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 55, prolog size 3, PerfScore 10.50, instruction count 17, allocated bytes for code 55 (MethodHash=db19318e) for method System.Xml.XmlTextReaderImpl+XmlContext:.ctor():this (FullOpts)
+; Total bytes of code 30, prolog size 0, PerfScore 5.75, instruction count 8, allocated bytes for code 30 (MethodHash=db19318e) for method System.Xml.XmlTextReaderImpl+XmlContext:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -57,10 +39,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

-26 (-44.07%) : 13919.dasm - System.Threading.Tests.PerfInterlocked:SetupCompareExchangeobjectMatch():this (FullOpts)

@@ -7,48 +7,29 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <System.Threading.Tests.Perf_Interlocked>
+; V00 this [V00,T00] ( 5, 5 ) ref -> rdi this class-hnd single-def <System.Threading.Tests.Perf_Interlocked>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 3, 3 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M40591_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M40591_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - mov rdi, 0xD1FFAB1E
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M40591_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rdi]
- mov gword ptr [rbx+0x10], rdi - lea rdi, bword ptr [rbx+0x18] - ; gcrRegs -[rdi] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=49 bbWeight=1 PerfScore 5.25
+ mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x08], rax + mov rcx, 0xD1FFAB1E + ; gcrRegs +[rcx] + mov gword ptr [rdi+0x10], rcx + mov gword ptr [rdi+0x18], rax + ;; size=32 bbWeight=1 PerfScore 3.50
G_M40591_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 59, prolog size 3, PerfScore 9.50, instruction count 16, allocated bytes for code 59 (MethodHash=ebfe6170) for method System.Threading.Tests.Perf_Interlocked:Setup_CompareExchange_object_Match():this (FullOpts)
+; Total bytes of code 33, prolog size 0, PerfScore 4.50, instruction count 6, allocated bytes for code 33 (MethodHash=ebfe6170) for method System.Threading.Tests.Perf_Interlocked:Setup_CompareExchange_object_Match():this (FullOpts)
; ============================================================ Unwind Info: @@ -56,10 +37,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

+3 (+0.59%) : 24227.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:this (FullOpts)

@@ -15,19 +15,19 @@ ; V04 tmp2 [V04,T05] ( 4, 3.50) ref -> rax ;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]> ;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V07 tmp5 [V07,T15] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V07 tmp5 [V07,T14] ( 2, 1 ) ref -> r15 class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V08 tmp6 [V08,T16] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V09 tmp7 [V09,T17] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp" -;* V10 tmp8 [V10,T18] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V09 tmp7 [V09 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V10 tmp8 [V10,T17] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp9 [V11 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" ;* V12 tmp10 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V14 tmp12 [V14,T10] ( 4, 2 ) long -> r14
+; V14 tmp12 [V14,T10] ( 4, 2 ) long -> r15
;* V15 tmp13 [V15 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V16 tmp14 [V16 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]> ; V17 tmp15 [V17,T06] ( 5, 2.50) ref -> r13 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]> ; V18 tmp16 [V18,T00] ( 10, 10 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V19 tmp17 [V19,T14] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V19 tmp17 [V19,T15] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V20 tmp18 [V20,T08] ( 3, 3 ) ref -> [rbp-0x78] class-hnd spill-single-def "Inlining Arg" <<unknown class>> ; V21 tmp19 [V21,T02] ( 6, 6 ) struct (40) [rbp-0x48] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]> ; V22 tmp20 [V22,T11] ( 3, 1.50) byref -> rax single-def "Inline stloc first use temp" @@ -39,7 +39,7 @@ ; V28 tmp26 [V28,T03] ( 6, 6 ) struct (40) [rbp-0x70] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]> ;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]> ;* V30 tmp28 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V31 tmp29 [V31,T07] ( 6, 3 ) int -> r15 "field V12._info (fldOffset=0x0)" P-INDEP
+; V31 tmp29 [V31,T07] ( 6, 3 ) int -> r14 "field V12._info (fldOffset=0x0)" P-INDEP
;* V32 tmp30 [V32 ] ( 0, 0 ) int -> zero-ref "field V23._info (fldOffset=0x0)" P-INDEP ;* V33 tmp31 [V33 ] ( 0, 0 ) ref -> zero-ref single-def "V16.[000..008)" ;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref single-def "V16.[008..016)" @@ -75,10 +75,12 @@ G_M10256_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ;; size=13 bbWeight=1 PerfScore 3.25 G_M10256_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref ; gcrRegs -[rax]
+ mov r15, rbx + ; gcrRegs +[r15]
xor edx, edx mov dword ptr [rsp], edx
- ;; size=5 bbWeight=0.50 PerfScore 0.62 -G_M10256_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=8 bbWeight=0.50 PerfScore 0.75 +G_M10256_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov dword ptr [rsp+0x08], edx mov edx, 1 mov ecx, 1 @@ -87,8 +89,8 @@ G_M10256_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov r8d, 1 mov r9d, 1 call [<unknown method>]
- mov r15d, eax - mov rdi, rbx
+ mov r14d, eax + mov rdi, r15
; gcrRegs +[rdi] mov esi, 10 xor rdx, rdx @@ -96,17 +98,17 @@ G_M10256_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, xor rcx, rcx ; gcrRegs +[rcx] call [<unknown method>]
- ; gcrRegs -[rcx rdx rdi] - mov r14, rax
+ ; gcrRegs -[rcx rdx rdi r15] + mov r15, rax
mov rdi, gword ptr [rbx+0x88] ; gcrRegs +[rdi] mov gword ptr [rbp-0x78], rdi ; GC ptr vars +{V20}
- mov qword ptr [rbp-0x38], r14
+ mov qword ptr [rbp-0x38], r15
mov dword ptr [rbp-0x30], 10 mov dword ptr [rbp-0x2C], -1 mov dword ptr [rbp-0x28], -1
- mov dword ptr [rbp-0x24], r15d
+ mov dword ptr [rbp-0x24], r14d
cmp byte ptr [rdi], dil lea rdi, [rsp] ; gcrRegs -[rdi] @@ -153,11 +155,11 @@ G_M10256_IG06: ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 mov gword ptr [r13+0x10], rdi mov dword ptr [r13+0x2C], -1 mov dword ptr [r13+0x30], -1
- mov qword ptr [r13+0x20], r14 - mov dword ptr [r13+0x34], r15d - test r15b, 32
+ mov qword ptr [r13+0x20], r15 + mov dword ptr [r13+0x34], r14d + test r14b, 32
je SHORT G_M10256_IG07
- test r15b, 8
+ test r14b, 8
jne SHORT G_M10256_IG08 ;; size=40 bbWeight=0.50 PerfScore 3.75 G_M10256_IG07: ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz @@ -185,11 +187,11 @@ G_M10256_IG09: ; bbWeight=0.50, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0 ; gcrRegs +[rdi] mov gword ptr [rbp-0x80], rdi ; GC ptr vars +{V27}
- mov qword ptr [rbp-0x60], r14
+ mov qword ptr [rbp-0x60], r15
mov dword ptr [rbp-0x58], 10 mov dword ptr [rbp-0x54], -1 mov dword ptr [rbp-0x50], -1
- mov dword ptr [rbp-0x4C], r15d
+ mov dword ptr [rbp-0x4C], r14d
cmp byte ptr [rdi], dil lea rdi, [rsp] ; gcrRegs -[rdi] @@ -245,7 +247,7 @@ G_M10256_IG11: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr ret ;; size=16 bbWeight=1 PerfScore 3.75
-; Total bytes of code 506, prolog size 43, PerfScore 65.58, instruction count 123, allocated bytes for code 506 (MethodHash=329fd7ef) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
+; Total bytes of code 509, prolog size 43, PerfScore 65.71, instruction count 124, allocated bytes for code 509 (MethodHash=329fd7ef) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
; ============================================================ Unwind Info:

+3 (+0.60%) : 27043.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:this (FullOpts)

@@ -15,19 +15,19 @@ ; V04 tmp2 [V04,T05] ( 4, 3.50) ref -> rax ;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]> ;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V07 tmp5 [V07,T15] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V07 tmp5 [V07,T14] ( 2, 1 ) ref -> r15 class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V08 tmp6 [V08,T16] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V09 tmp7 [V09,T17] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp" -;* V10 tmp8 [V10,T18] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V09 tmp7 [V09 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V10 tmp8 [V10,T17] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp9 [V11 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" ;* V12 tmp10 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V14 tmp12 [V14,T10] ( 4, 2 ) long -> r14
+; V14 tmp12 [V14,T10] ( 4, 2 ) long -> r15
;* V15 tmp13 [V15 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V16 tmp14 [V16 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]> ; V17 tmp15 [V17,T06] ( 5, 2.50) ref -> r13 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]> ; V18 tmp16 [V18,T00] ( 10, 10 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V19 tmp17 [V19,T14] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V19 tmp17 [V19,T15] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V20 tmp18 [V20,T08] ( 3, 3 ) ref -> [rbp-0x78] class-hnd spill-single-def "Inlining Arg" <<unknown class>> ; V21 tmp19 [V21,T02] ( 6, 6 ) struct (40) [rbp-0x48] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]> ; V22 tmp20 [V22,T11] ( 3, 1.50) byref -> rax single-def "Inline stloc first use temp" @@ -39,7 +39,7 @@ ; V28 tmp26 [V28,T03] ( 6, 6 ) struct (40) [rbp-0x70] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]> ;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]> ;* V30 tmp28 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V31 tmp29 [V31,T07] ( 6, 3 ) int -> r15 "field V12._info (fldOffset=0x0)" P-INDEP
+; V31 tmp29 [V31,T07] ( 6, 3 ) int -> r14 "field V12._info (fldOffset=0x0)" P-INDEP
;* V32 tmp30 [V32 ] ( 0, 0 ) int -> zero-ref "field V23._info (fldOffset=0x0)" P-INDEP ;* V33 tmp31 [V33 ] ( 0, 0 ) ref -> zero-ref single-def "V16.[000..008)" ;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref single-def "V16.[008..016)" @@ -75,21 +75,23 @@ G_M62798_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ;; size=13 bbWeight=1 PerfScore 3.25 G_M62798_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref ; gcrRegs -[rax]
+ mov r15, rbx + ; gcrRegs +[r15]
xor edx, edx mov dword ptr [rsp], edx
- ;; size=5 bbWeight=0.50 PerfScore 0.62 -G_M62798_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ;; size=8 bbWeight=0.50 PerfScore 0.75 +G_M62798_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov dword ptr [rsp+0x08], edx ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
xor ecx, ecx xor edi, edi mov esi, 1 mov r8d, 1 mov r9d, 1 call [<unknown method>]
- mov r15d, eax - mov rdi, rbx
+ mov r14d, eax + mov rdi, r15
; gcrRegs +[rdi] mov esi, 11 xor rdx, rdx @@ -97,17 +99,17 @@ G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, xor rcx, rcx ; gcrRegs +[rcx] call [<unknown method>]
- ; gcrRegs -[rcx rdx rdi] - mov r14, rax
+ ; gcrRegs -[rcx rdx rdi r15] + mov r15, rax
mov rdi, gword ptr [rbx+0x88] ; gcrRegs +[rdi] mov gword ptr [rbp-0x78], rdi ; GC ptr vars +{V20}
- mov qword ptr [rbp-0x38], r14
+ mov qword ptr [rbp-0x38], r15
mov dword ptr [rbp-0x30], 11 mov dword ptr [rbp-0x2C], -1 mov dword ptr [rbp-0x28], -1
- mov dword ptr [rbp-0x24], r15d
+ mov dword ptr [rbp-0x24], r14d
cmp byte ptr [rdi], dil lea rdi, [rsp] ; gcrRegs -[rdi] @@ -154,11 +156,11 @@ G_M62798_IG07: ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 mov gword ptr [r13+0x10], rdi mov dword ptr [r13+0x2C], -1 mov dword ptr [r13+0x30], -1
- mov qword ptr [r13+0x20], r14 - mov dword ptr [r13+0x34], r15d - test r15b, 32
+ mov qword ptr [r13+0x20], r15 + mov dword ptr [r13+0x34], r14d + test r14b, 32
je SHORT G_M62798_IG08
- test r15b, 8
+ test r14b, 8
jne SHORT G_M62798_IG09 ;; size=40 bbWeight=0.50 PerfScore 3.75 G_M62798_IG08: ; bbWeight=0.50, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz @@ -186,11 +188,11 @@ G_M62798_IG10: ; bbWeight=0.50, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0 ; gcrRegs +[rdi] mov gword ptr [rbp-0x80], rdi ; GC ptr vars +{V27}
- mov qword ptr [rbp-0x60], r14
+ mov qword ptr [rbp-0x60], r15
mov dword ptr [rbp-0x58], 11 mov dword ptr [rbp-0x54], -1 mov dword ptr [rbp-0x50], -1
- mov dword ptr [rbp-0x4C], r15d
+ mov dword ptr [rbp-0x4C], r14d
cmp byte ptr [rdi], dil lea rdi, [rsp] ; gcrRegs -[rdi] @@ -246,7 +248,7 @@ G_M62798_IG12: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr ret ;; size=16 bbWeight=1 PerfScore 3.75
-; Total bytes of code 498, prolog size 43, PerfScore 65.46, instruction count 122, allocated bytes for code 498 (MethodHash=03450ab1) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
+; Total bytes of code 501, prolog size 43, PerfScore 65.58, instruction count 123, allocated bytes for code 501 (MethodHash=03450ab1) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
; ============================================================ Unwind Info:

+3 (+9.09%) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)

@@ -24,17 +24,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs -[rdi] ; gcr arg pop 0 mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax + movzx rdx, dx
cmp eax, -1 mov eax, edx cmove eax, ecx
- ;; size=27 bbWeight=1 PerfScore 4.50
+ ;; size=30 bbWeight=1 PerfScore 4.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 8 ret ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 33, prolog size 1, PerfScore 6.75, instruction count 10, allocated bytes for code 33 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 7.00, instruction count 11, allocated bytes for code 36 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================ Unwind Info:

benchmarks.run_pgo.linux.x64.checked.mch

-24 (-37.50%) : 1060.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)

@@ -7,40 +7,29 @@ ; ; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[] ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [rbp-0x18]
;
-; Lcl frame size = 32
+; Lcl frame size = 16
G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 32 - lea rbp, [rsp+0x20] - xor eax, eax - mov qword ptr [rbp-0x18], rax
+ sub rsp, 16 + lea rbp, [rsp+0x10]
mov qword ptr [rbp-0x08], rdi mov qword ptr [rbp-0x10], rdi
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rdi, qword ptr [rbp-0x10] call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE ; byrRegs +[rax]
- mov bword ptr [rbp-0x18], rax - mov eax, 512 - ; byrRegs -[rax] - mov ecx, 8 - xor edx, edx - div edx:eax, ecx - mov rcx, bword ptr [rbp-0x18] - ; byrRegs +[rcx] - mov dword ptr [rcx+0x08], eax - ;; size=34 bbWeight=1 PerfScore 30.75
+ mov dword ptr [rax+0x08], 64 + ;; size=16 bbWeight=1 PerfScore 3.00
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 16
pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 40, prolog size 14, PerfScore 8.50, instruction count 11, allocated bytes for code 40 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================ Unwind Info: @@ -53,5 +42,5 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-11 (-23.40%) : 82.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)

@@ -21,19 +21,15 @@ G_M37561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M37561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, qword ptr [rbp-0x10] sub rax, qword ptr [rbp-0x08]
- mov ecx, 16 - dec ecx - not ecx - movsxd rcx, ecx - and rax, rcx - ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -16 + ;; size=12 bbWeight=1 PerfScore 3.25
G_M37561_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 47, prolog size 10, PerfScore 9.75, instruction count 15, allocated bytes for code 47 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
+; Total bytes of code 36, prolog size 10, PerfScore 8.75, instruction count 11, allocated bytes for code 36 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
; ============================================================ Unwind Info:

-11 (-23.40%) : 47.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)

@@ -21,19 +21,15 @@ G_M37561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M37561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, qword ptr [rbp-0x10] sub rax, qword ptr [rbp-0x08]
- mov ecx, 16 - dec ecx - not ecx - movsxd rcx, ecx - and rax, rcx - ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -16 + ;; size=12 bbWeight=1 PerfScore 3.25
G_M37561_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 47, prolog size 10, PerfScore 9.75, instruction count 15, allocated bytes for code 47 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
+; Total bytes of code 36, prolog size 10, PerfScore 8.75, instruction count 11, allocated bytes for code 36 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
; ============================================================ Unwind Info:

+6 (+1.66%) : 42391.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)

@@ -121,7 +121,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; byrRegs -[rax] sar eax, 16 cdqe
- and eax, 0xFFFF
+ movzx rax, ax + mov eax, eax + movzx rax, ax
mov dword ptr [rbp-0x40], eax mov rax, bword ptr [rbp-0x38] ; byrRegs +[rax] @@ -140,7 +142,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov eax, dword ptr [rbp-0x2C] ; byrRegs -[rax] cdqe
- and eax, 0xFFFF
+ movzx rax, ax + mov eax, eax + movzx rax, ax
mov dword ptr [rbp-0x40], eax mov rax, bword ptr [rbp-0x38] ; byrRegs +[rax] @@ -162,7 +166,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; byrRegs -[rax rdi] ; gcr arg pop 0 nop
- ;; size=122 bbWeight=1 PerfScore 34.00
+ ;; size=128 bbWeight=1 PerfScore 35.00
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend add rsp, 80 pop rbp @@ -174,7 +178,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 361, prolog size 25, PerfScore 92.52, instruction count 99, allocated bytes for code 361 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 367, prolog size 25, PerfScore 93.52, instruction count 103, allocated bytes for code 367 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================ Unwind Info:

+6 (+2.90%) : 27031.dasm - System.SpanHelpers:Fillushort (Tier1)

@@ -5,26 +5,26 @@ ; optimized using Dynamic PGO ; rbp based frame ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 20160.98
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 20160.98
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T04] ( 18, 3.01) byref -> rdi single-def ; V01 arg1 [V01,T03] ( 10, 5.00) long -> rsi single-def ; V02 arg2 [V02,T05] ( 18, 3.01) ushort -> rdx single-def
-; V03 loc0 [V03,T08] ( 23, 0.01) long -> rax
+; V03 loc0 [V03,T07] ( 23, 0.01) long -> rax
;* V04 loc1 [V04 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op
-; V05 loc2 [V05,T11] ( 5, 621.70) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T10] ( 5, 621.70) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T01] ( 5, 621.70) byref -> rdi single-def ; V07 loc4 [V07,T06] ( 4, 3.98) long -> rax ; V08 loc5 [V08,T02] ( 2, 310.60) long -> rcx ; V09 loc6 [V09,T00] ( 7,1549.52) long -> rdx ;* V10 loc7 [V10 ] ( 0, 0 ) simd16 -> zero-ref <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V11 loc8 [V11,T10] ( 2, 0.00) long -> rcx
+; V11 loc8 [V11,T09] ( 2, 0.00) long -> rcx
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V13 tmp1 [V13,T09] ( 2, 0.00) long -> rax "dup spill"
+; V13 tmp1 [V13,T08] ( 2, 0.00) long -> rax "dup spill"
;* V14 tmp2 [V14 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[ushort]>
-;* V15 tmp3 [V15,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V15 tmp3 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; ; Lcl frame size = 0 @@ -73,13 +73,49 @@ G_M51983_IG08: ; bbWeight=0.99, epilog, nogc, extend G_M51983_IG09: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref, isz xor eax, eax cmp rsi, 8
- jb SHORT G_M51983_IG12
+ jae SHORT G_M51983_IG17
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG10: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M51983_IG10: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz + test sil, 4 + jne SHORT G_M51983_IG16 + ;; size=6 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz + test sil, 2 + jne SHORT G_M51983_IG15 + ;; size=6 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz + test sil, 1 + je SHORT G_M51983_IG14 + ;; size=6 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref + mov word ptr [rdi+2*rax], dx + ;; size=4 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG14: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ; byrRegs -[rdi] + vzeroupper + pop rbp + ret + ;; size=5 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref, isz + ; byrRegs +[rdi] + mov word ptr [rdi+2*rax], dx + mov word ptr [rdi+2*rax+0x02], dx + add rax, 2 + jmp SHORT G_M51983_IG12 + ;; size=15 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG16: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz + mov word ptr [rdi+2*rax], dx + mov word ptr [rdi+2*rax+0x02], dx + mov word ptr [rdi+2*rax+0x04], dx + mov word ptr [rdi+2*rax+0x06], dx + add rax, 4 + jmp SHORT G_M51983_IG11 + ;; size=25 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
mov rcx, rsi and rcx, -8 ;; size=7 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+G_M51983_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
mov word ptr [rdi+2*rax], dx mov word ptr [rdi+2*rax+0x02], dx mov word ptr [rdi+2*rax+0x04], dx @@ -90,43 +126,11 @@ G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, mov word ptr [rdi+2*rax+0x0E], dx add rax, 8 cmp rax, rcx
- jb SHORT G_M51983_IG11 - ;; size=48 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz - test sil, 4 - je SHORT G_M51983_IG14 - ;; size=6 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref - mov word ptr [rdi+2*rax], dx - mov word ptr [rdi+2*rax+0x02], dx - mov word ptr [rdi+2*rax+0x04], dx - mov word ptr [rdi+2*rax+0x06], dx - add rax, 4 - ;; size=23 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG14: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz - test sil, 2 - je SHORT G_M51983_IG16 - ;; size=6 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG15: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref - mov word ptr [rdi+2*rax], dx - mov word ptr [rdi+2*rax+0x02], dx - add rax, 2 - ;; size=13 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG16: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz - test sil, 1 - je SHORT G_M51983_IG18 - ;; size=6 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref - mov word ptr [rdi+2*rax], dx - ;; size=4 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; byrRegs -[rdi] - vzeroupper - pop rbp - ret - ;; size=5 bbWeight=0.00 PerfScore 0.00
+ jb SHORT G_M51983_IG18 + jmp SHORT G_M51983_IG10 + ;; size=50 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 207, prolog size 7, PerfScore 1717.78, instruction count 59, allocated bytes for code 207 (MethodHash=267434f0) for method System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
+; Total bytes of code 213, prolog size 7, PerfScore 1717.78, instruction count 62, allocated bytes for code 213 (MethodHash=267434f0) for method System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
; ============================================================ Unwind Info:

+6 (+2.90%) : 115120.dasm - System.SpanHelpers:Fillushort (Tier1)

@@ -5,26 +5,26 @@ ; optimized using Dynamic PGO ; rbp based frame ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 20297.02
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 20297.02
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T04] ( 18, 3.01) byref -> rdi single-def ; V01 arg1 [V01,T03] ( 10, 5.00) long -> rsi single-def ; V02 arg2 [V02,T05] ( 18, 3.01) ushort -> rdx single-def
-; V03 loc0 [V03,T08] ( 23, 0.01) long -> rax
+; V03 loc0 [V03,T07] ( 23, 0.01) long -> rax
;* V04 loc1 [V04 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op
-; V05 loc2 [V05,T11] ( 5, 618.53) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T10] ( 5, 618.53) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T01] ( 5, 618.53) byref -> rdi single-def ; V07 loc4 [V07,T06] ( 4, 3.97) long -> rax ; V08 loc5 [V08,T02] ( 2, 309.03) long -> rcx ; V09 loc6 [V09,T00] ( 7,1541.63) long -> rdx ;* V10 loc7 [V10 ] ( 0, 0 ) simd16 -> zero-ref <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V11 loc8 [V11,T10] ( 2, 0.00) long -> rcx
+; V11 loc8 [V11,T09] ( 2, 0.00) long -> rcx
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V13 tmp1 [V13,T09] ( 2, 0.00) long -> rax "dup spill"
+; V13 tmp1 [V13,T08] ( 2, 0.00) long -> rax "dup spill"
;* V14 tmp2 [V14 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[ushort]>
-;* V15 tmp3 [V15,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V15 tmp3 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; ; Lcl frame size = 0 @@ -73,13 +73,49 @@ G_M51983_IG08: ; bbWeight=0.99, epilog, nogc, extend G_M51983_IG09: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref, isz xor eax, eax cmp rsi, 8
- jb SHORT G_M51983_IG12
+ jae SHORT G_M51983_IG17
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG10: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M51983_IG10: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz + test sil, 4 + jne SHORT G_M51983_IG16 + ;; size=6 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz + test sil, 2 + jne SHORT G_M51983_IG15 + ;; size=6 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz + test sil, 1 + je SHORT G_M51983_IG14 + ;; size=6 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref + mov word ptr [rdi+2*rax], dx + ;; size=4 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG14: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ; byrRegs -[rdi] + vzeroupper + pop rbp + ret + ;; size=5 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref, isz + ; byrRegs +[rdi] + mov word ptr [rdi+2*rax], dx + mov word ptr [rdi+2*rax+0x02], dx + add rax, 2 + jmp SHORT G_M51983_IG12 + ;; size=15 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG16: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz + mov word ptr [rdi+2*rax], dx + mov word ptr [rdi+2*rax+0x02], dx + mov word ptr [rdi+2*rax+0x04], dx + mov word ptr [rdi+2*rax+0x06], dx + add rax, 4 + jmp SHORT G_M51983_IG11 + ;; size=25 bbWeight=0.00 PerfScore 0.00 +G_M51983_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
mov rcx, rsi and rcx, -8 ;; size=7 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+G_M51983_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
mov word ptr [rdi+2*rax], dx mov word ptr [rdi+2*rax+0x02], dx mov word ptr [rdi+2*rax+0x04], dx @@ -90,43 +126,11 @@ G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, mov word ptr [rdi+2*rax+0x0E], dx add rax, 8 cmp rax, rcx
- jb SHORT G_M51983_IG11 - ;; size=48 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz - test sil, 4 - je SHORT G_M51983_IG14 - ;; size=6 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref - mov word ptr [rdi+2*rax], dx - mov word ptr [rdi+2*rax+0x02], dx - mov word ptr [rdi+2*rax+0x04], dx - mov word ptr [rdi+2*rax+0x06], dx - add rax, 4 - ;; size=23 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG14: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz - test sil, 2 - je SHORT G_M51983_IG16 - ;; size=6 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG15: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref - mov word ptr [rdi+2*rax], dx - mov word ptr [rdi+2*rax+0x02], dx - add rax, 2 - ;; size=13 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG16: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz - test sil, 1 - je SHORT G_M51983_IG18 - ;; size=6 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref - mov word ptr [rdi+2*rax], dx - ;; size=4 bbWeight=0.00 PerfScore 0.00 -G_M51983_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; byrRegs -[rdi] - vzeroupper - pop rbp - ret - ;; size=5 bbWeight=0.00 PerfScore 0.00
+ jb SHORT G_M51983_IG18 + jmp SHORT G_M51983_IG10 + ;; size=50 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 207, prolog size 7, PerfScore 1709.07, instruction count 59, allocated bytes for code 207 (MethodHash=267434f0) for method System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
+; Total bytes of code 213, prolog size 7, PerfScore 1709.07, instruction count 62, allocated bytes for code 213 (MethodHash=267434f0) for method System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
; ============================================================ Unwind Info:

benchmarks.run_tiered.linux.x64.checked.mch

-24 (-37.50%) : 938.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)

@@ -7,40 +7,29 @@ ; ; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[] ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [rbp-0x18]
;
-; Lcl frame size = 32
+; Lcl frame size = 16
G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 32 - lea rbp, [rsp+0x20] - xor eax, eax - mov qword ptr [rbp-0x18], rax
+ sub rsp, 16 + lea rbp, [rsp+0x10]
mov qword ptr [rbp-0x08], rdi mov qword ptr [rbp-0x10], rdi
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rdi, qword ptr [rbp-0x10] call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE ; byrRegs +[rax]
- mov bword ptr [rbp-0x18], rax - mov eax, 512 - ; byrRegs -[rax] - mov ecx, 8 - xor edx, edx - div edx:eax, ecx - mov rcx, bword ptr [rbp-0x18] - ; byrRegs +[rcx] - mov dword ptr [rcx+0x08], eax - ;; size=34 bbWeight=1 PerfScore 30.75
+ mov dword ptr [rax+0x08], 64 + ;; size=16 bbWeight=1 PerfScore 3.00
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 16
pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 40, prolog size 14, PerfScore 8.50, instruction count 11, allocated bytes for code 40 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================ Unwind Info: @@ -53,5 +42,5 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-11 (-23.40%) : 47.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)

@@ -21,19 +21,15 @@ G_M37561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M37561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, qword ptr [rbp-0x10] sub rax, qword ptr [rbp-0x08]
- mov ecx, 16 - dec ecx - not ecx - movsxd rcx, ecx - and rax, rcx - ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -16 + ;; size=12 bbWeight=1 PerfScore 3.25
G_M37561_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 47, prolog size 10, PerfScore 9.75, instruction count 15, allocated bytes for code 47 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
+; Total bytes of code 36, prolog size 10, PerfScore 8.75, instruction count 11, allocated bytes for code 36 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
; ============================================================ Unwind Info:

-3 (-21.43%) : 2069.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)

@@ -14,15 +14,14 @@ G_M22219_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M22219_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 2 - shl eax, 2 - ;; size=8 bbWeight=1 PerfScore 0.75
+ mov eax, 8 + ;; size=5 bbWeight=1 PerfScore 0.25
G_M22219_IG03: ; bbWeight=1, epilog, nogc, extend pop rbp ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 14, prolog size 4, PerfScore 3.50, instruction count 6, allocated bytes for code 14 (MethodHash=0716a934) for method System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=0716a934) for method System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
; ============================================================ Unwind Info:

+44 (+0.45%) : 64375.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)

@@ -30,11 +30,11 @@ ; V19 loc17 [V19,T207] ( 3, 8 ) ubyte -> rdx ;* V20 loc18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String> ; V21 loc19 [V21,T185] ( 3, 10 ) ref -> [rbp-0x488] class-hnd exact spill-single-def <System.Text.RegularExpressions.Symbolic.BDD>
-; V22 loc20 [V22,T314] ( 2, 0.50) ref -> r13 class-hnd exact <System.String> -; V23 loc21 [V23,T315] ( 10, 0 ) ref -> rbx class-hnd <System.String> -; V24 loc22 [V24,T312] ( 6, 1.50) ubyte -> rax
+; V22 loc20 [V22,T310] ( 2, 0.50) ref -> r13 class-hnd exact <System.String> +; V23 loc21 [V23,T311] ( 10, 0 ) ref -> rbx class-hnd <System.String> +; V24 loc22 [V24,T308] ( 6, 1.50) ubyte -> rax
;* V25 loc23 [V25 ] ( 0, 0 ) ubyte -> zero-ref
-; V26 loc24 [V26,T69] ( 2, 36 ) ref -> r15 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V26 loc24 [V26,T65] ( 2, 36 ) ref -> r15 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V27 loc25 [V27,T11] ( 5,132 ) int -> [rbp-0x48] ;* V28 loc26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]> ; V29 loc27 [V29,T71] ( 6, 24 ) ref -> r15 class-hnd <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> @@ -53,7 +53,7 @@ ; V42 tmp5 [V42,T20] ( 3, 96 ) ref -> [rbp-0x498] class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode> ; V43 tmp6 [V43,T13] ( 2,128 ) ref -> [rbp-0x4A0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]> ;* V44 tmp7 [V44 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
-; V45 tmp8 [V45,T316] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V45 tmp8 [V45,T312] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V46 tmp9 [V46,T03] ( 4,160 ) ref -> [rbp-0x4A8] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>> ; V47 tmp10 [V47,T84] ( 4, 24 ) ref -> [rbp-0x4B0] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>> ;* V48 tmp11 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[System.__Canon]> @@ -72,10 +72,10 @@ ;* V61 tmp24 [V61 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ; V62 tmp25 [V62,T33] ( 14, 64 ) ref -> [rbp-0x4C8] ; V63 tmp26 [V63,T72] ( 6, 24 ) ref -> r15
-; V64 tmp27 [V64,T253] ( 3, 2 ) ref -> r12 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V64 tmp27 [V64,T257] ( 3, 2 ) ref -> r12 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V65 tmp28 [V65,T237] ( 3, 5 ) int -> rax "Inlining Arg"
-; V66 tmp29 [V66,T250] ( 4, 3 ) int -> r15 "Inline stloc first use temp" -; V67 tmp30 [V67,T252] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V66 tmp29 [V66,T254] ( 4, 3 ) int -> r15 "Inline stloc first use temp" +; V67 tmp30 [V67,T256] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V68 tmp31 [V68 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]> ;* V69 tmp32 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ; V70 tmp33 [V70,T105] ( 3, 20 ) ref -> r15 class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD> @@ -94,14 +94,14 @@ ;* V83 tmp46 [V83 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ; V84 tmp47 [V84,T144] ( 5, 10 ) ref -> [rbp-0x4D8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ; V85 tmp48 [V85,T50] ( 10, 40 ) ref -> [rbp-0x4E0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V86 tmp49 [V86,T239] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V86 tmp49 [V86,T243] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V87 tmp50 [V87,T163] ( 3, 12 ) ref -> [rbp-0x4E8] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V88 tmp51 [V88,T95] ( 5, 20 ) struct (40) [rbp-0x80] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ; V89 tmp52 [V89,T221] ( 3, 6 ) byref -> rax "Inline stloc first use temp" ;* V90 tmp53 [V90 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V91 tmp54 [V91,T256] ( 0, 0 ) ref -> zero-ref
+;* V91 tmp54 [V91,T260] ( 0, 0 ) ref -> zero-ref
;* V92 tmp55 [V92 ] ( 0, 0 ) ref -> zero-ref
-;* V93 tmp56 [V93,T257] ( 0, 0 ) ref -> zero-ref
+;* V93 tmp56 [V93,T261] ( 0, 0 ) ref -> zero-ref
; V94 tmp57 [V94,T164] ( 3, 12 ) ref -> [rbp-0x4F0] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V95 tmp58 [V95,T96] ( 5, 20 ) struct (40) [rbp-0xA8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ;* V96 tmp59 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> @@ -123,14 +123,14 @@ ;* V112 tmp75 [V112 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ; V113 tmp76 [V113,T145] ( 5, 10 ) ref -> [rbp-0x500] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ; V114 tmp77 [V114,T51] ( 10, 40 ) ref -> [rbp-0x508] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V115 tmp78 [V115,T240] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V115 tmp78 [V115,T244] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V116 tmp79 [V116,T165] ( 3, 12 ) ref -> [rbp-0x510] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V117 tmp80 [V117,T97] ( 5, 20 ) struct (40) [rbp-0xD8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ; V118 tmp81 [V118,T222] ( 3, 6 ) byref -> rax "Inline stloc first use temp" ;* V119 tmp82 [V119 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V120 tmp83 [V120,T258] ( 0, 0 ) ref -> zero-ref
+;* V120 tmp83 [V120,T262] ( 0, 0 ) ref -> zero-ref
;* V121 tmp84 [V121 ] ( 0, 0 ) ref -> zero-ref
-;* V122 tmp85 [V122,T259] ( 0, 0 ) ref -> zero-ref
+;* V122 tmp85 [V122,T263] ( 0, 0 ) ref -> zero-ref
; V123 tmp86 [V123,T166] ( 3, 12 ) ref -> [rbp-0x518] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V124 tmp87 [V124,T98] ( 5, 20 ) struct (40) [rbp-0x100] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ;* V125 tmp88 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> @@ -155,14 +155,14 @@ ;* V144 tmp107 [V144 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ; V145 tmp108 [V145,T146] ( 5, 10 ) ref -> [rbp-0x530] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ; V146 tmp109 [V146,T52] ( 10, 40 ) ref -> [rbp-0x538] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V147 tmp110 [V147,T241] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V147 tmp110 [V147,T245] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V148 tmp111 [V148,T167] ( 3, 12 ) ref -> [rbp-0x540] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V149 tmp112 [V149,T99] ( 5, 20 ) struct (40) [rbp-0x130] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ; V150 tmp113 [V150,T223] ( 3, 6 ) byref -> rax "Inline stloc first use temp" ;* V151 tmp114 [V151 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V152 tmp115 [V152,T260] ( 0, 0 ) ref -> zero-ref
+;* V152 tmp115 [V152,T264] ( 0, 0 ) ref -> zero-ref
;* V153 tmp116 [V153 ] ( 0, 0 ) ref -> zero-ref
-;* V154 tmp117 [V154,T261] ( 0, 0 ) ref -> zero-ref
+;* V154 tmp117 [V154,T265] ( 0, 0 ) ref -> zero-ref
; V155 tmp118 [V155,T168] ( 3, 12 ) ref -> [rbp-0x548] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V156 tmp119 [V156,T100] ( 5, 20 ) struct (40) [rbp-0x158] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ;* V157 tmp120 [V157 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> @@ -202,14 +202,14 @@ ; V191 tmp154 [V191,T15] ( 2,128 ) ref -> rax "CASTCLASS eval op1" ;* V192 tmp155 [V192 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode> ; V193 tmp156 [V193,T26] ( 4, 76 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V194 tmp157 [V194,T67] ( 3, 36 ) ref -> rax "CASTCLASS eval op1"
+; V194 tmp157 [V194,T63] ( 3, 36 ) ref -> rax "CASTCLASS eval op1"
; V195 tmp158 [V195,T108] ( 3, 20 ) long -> rdi "fgMakeTemp is creating a new local variable" ; V196 tmp159 [V196,T28] ( 6, 76 ) ref -> rcx class-hnd "spilling QMark2" <<unknown class>> ; V197 tmp160 [V197,T43] ( 3, 48 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode> ; V198 tmp161 [V198,T16] ( 2,128 ) ref -> rdi "CASTCLASS eval op1" ;* V199 tmp162 [V199 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode> ; V200 tmp163 [V200,T27] ( 4, 76 ) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V201 tmp164 [V201,T68] ( 3, 36 ) ref -> rsi "CASTCLASS eval op1"
+; V201 tmp164 [V201,T64] ( 3, 36 ) ref -> rsi "CASTCLASS eval op1"
; V202 tmp165 [V202,T109] ( 3, 20 ) long -> rdi "fgMakeTemp is creating a new local variable" ; V203 tmp166 [V203,T29] ( 6, 76 ) ref -> r8 class-hnd "spilling QMark2" <<unknown class>> ; V204 tmp167 [V204,T44] ( 3, 48 ) ref -> rax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]> @@ -234,14 +234,14 @@ ;* V223 tmp186 [V223 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ; V224 tmp187 [V224,T147] ( 5, 10 ) ref -> [rbp-0x590] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ; V225 tmp188 [V225,T53] ( 10, 40 ) ref -> [rbp-0x598] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V226 tmp189 [V226,T242] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V226 tmp189 [V226,T246] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V227 tmp190 [V227,T169] ( 3, 12 ) ref -> [rbp-0x5A0] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V228 tmp191 [V228,T101] ( 5, 20 ) struct (40) [rbp-0x1E8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ; V229 tmp192 [V229,T224] ( 3, 6 ) byref -> rax "Inline stloc first use temp" ;* V230 tmp193 [V230 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V231 tmp194 [V231,T262] ( 0, 0 ) ref -> zero-ref
+;* V231 tmp194 [V231,T266] ( 0, 0 ) ref -> zero-ref
;* V232 tmp195 [V232 ] ( 0, 0 ) ref -> zero-ref
-;* V233 tmp196 [V233,T263] ( 0, 0 ) ref -> zero-ref
+;* V233 tmp196 [V233,T267] ( 0, 0 ) ref -> zero-ref
; V234 tmp197 [V234,T170] ( 3, 12 ) ref -> [rbp-0x5A8] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V235 tmp198 [V235,T102] ( 5, 20 ) struct (40) [rbp-0x210] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ;* V236 tmp199 [V236 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> @@ -262,199 +262,199 @@ ;* V251 tmp214 [V251 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ; V252 tmp215 [V252,T148] ( 5, 10 ) ref -> [rbp-0x5C0] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ; V253 tmp216 [V253,T54] ( 10, 40 ) ref -> [rbp-0x5C8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V254 tmp217 [V254,T243] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V254 tmp217 [V254,T247] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V255 tmp218 [V255,T171] ( 3, 12 ) ref -> [rbp-0x5D0] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V256 tmp219 [V256,T103] ( 5, 20 ) struct (40) [rbp-0x240] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ; V257 tmp220 [V257,T225] ( 3, 6 ) byref -> rax "Inline stloc first use temp" ;* V258 tmp221 [V258 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V259 tmp222 [V259,T264] ( 0, 0 ) ref -> zero-ref
+;* V259 tmp222 [V259,T268] ( 0, 0 ) ref -> zero-ref
;* V260 tmp223 [V260 ] ( 0, 0 ) ref -> zero-ref
-;* V261 tmp224 [V261,T265] ( 0, 0 ) ref -> zero-ref
+;* V261 tmp224 [V261,T269] ( 0, 0 ) ref -> zero-ref
; V262 tmp225 [V262,T172] ( 3, 12 ) ref -> [rbp-0x5D8] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]> ; V263 tmp226 [V263,T104] ( 5, 20 ) struct (40) [rbp-0x268] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ;* V264 tmp227 [V264 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ;* V265 tmp228 [V265 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V266 tmp229 [V266 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V267 tmp230 [V267,T61] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
+; V267 tmp230 [V267,T66] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
; V268 tmp231 [V268,T121] ( 2, 16 ) ref -> rsi class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]> ; V269 tmp232 [V269,T140] ( 4, 14 ) ref -> rsi ;* V270 tmp233 [V270 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ;* V271 tmp234 [V271 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ;* V272 tmp235 [V272 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V273 tmp236 [V273,T266] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>> -;* V274 tmp237 [V274,T284] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V275 tmp238 [V275,T267] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD> -;* V276 tmp239 [V276,T285] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V273 tmp236 [V273,T239] ( 2, 4 ) ref -> [rbp-0x5E0] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>> +;* V274 tmp237 [V274,T280] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V275 tmp238 [V275 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD> +;* V276 tmp239 [V276,T281] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V277 tmp240 [V277 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD> ;* V278 tmp241 [V278 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ;* V279 tmp242 [V279 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V280 tmp243 [V280,T194] ( 4, 8 ) ref -> [rbp-0x5E0] spill-single-def
+; V280 tmp243 [V280,T194] ( 4, 8 ) ref -> [rbp-0x5E8] spill-single-def
;* V281 tmp244 [V281 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD> ;* V282 tmp245 [V282 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V283 tmp246 [V283,T149] ( 5, 10 ) ref -> [rbp-0x5E8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> -; V284 tmp247 [V284,T55] ( 10, 40 ) ref -> [rbp-0x5F0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> -;* V285 tmp248 [V285,T244] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V286 tmp249 [V286,T173] ( 3, 12 ) ref -> [rbp-0x5F8] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
+; V283 tmp246 [V283,T149] ( 5, 10 ) ref -> [rbp-0x5F0] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> +; V284 tmp247 [V284,T55] ( 10, 40 ) ref -> [rbp-0x5F8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> +;* V285 tmp248 [V285,T248] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V286 tmp249 [V286,T173] ( 3, 12 ) ref -> [rbp-0x600] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V287 tmp250 [V287,T73] ( 6, 24 ) struct (40) [rbp-0x290] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ; V288 tmp251 [V288,T226] ( 3, 6 ) byref -> rax "Inline stloc first use temp" ;* V289 tmp252 [V289 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ;* V290 tmp253 [V290 ] ( 0, 0 ) ref -> zero-ref ;* V291 tmp254 [V291 ] ( 0, 0 ) ref -> zero-ref ; V292 tmp255 [V292,T227] ( 3, 6 ) ref -> rcx
-; V293 tmp256 [V293,T174] ( 3, 12 ) ref -> [rbp-0x600] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
+; V293 tmp256 [V293,T174] ( 3, 12 ) ref -> [rbp-0x608] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V294 tmp257 [V294,T74] ( 6, 24 ) struct (40) [rbp-0x2B8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ;* V295 tmp258 [V295 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ;* V296 tmp259 [V296 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V297 tmp260 [V297 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V298 tmp261 [V298,T62] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
+; V298 tmp261 [V298,T67] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
; V299 tmp262 [V299,T122] ( 2, 16 ) ref -> rsi class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]> ; V300 tmp263 [V300,T141] ( 4, 14 ) ref -> rsi ;* V301 tmp264 [V301 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ;* V302 tmp265 [V302 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ;* V303 tmp266 [V303 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V304 tmp267 [V304,T268] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>> -;* V305 tmp268 [V305,T286] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V306 tmp269 [V306,T269] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD> -;* V307 tmp270 [V307,T287] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V304 tmp267 [V304,T240] ( 2, 4 ) ref -> [rbp-0x610] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>> +;* V305 tmp268 [V305,T282] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V306 tmp269 [V306 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD> +;* V307 tmp270 [V307,T283] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V308 tmp271 [V308 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD> ;* V309 tmp272 [V309 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ;* V310 tmp273 [V310 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V311 tmp274 [V311,T195] ( 4, 8 ) ref -> [rbp-0x608] spill-single-def
+; V311 tmp274 [V311,T195] ( 4, 8 ) ref -> [rbp-0x618] spill-single-def
;* V312 tmp275 [V312 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD> ;* V313 tmp276 [V313 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V314 tmp277 [V314,T150] ( 5, 10 ) ref -> [rbp-0x610] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> -; V315 tmp278 [V315,T56] ( 10, 40 ) ref -> [rbp-0x618] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> -;* V316 tmp279 [V316,T245] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V317 tmp280 [V317,T175] ( 3, 12 ) ref -> [rbp-0x620] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
+; V314 tmp277 [V314,T150] ( 5, 10 ) ref -> [rbp-0x620] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> +; V315 tmp278 [V315,T56] ( 10, 40 ) ref -> [rbp-0x628] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> +;* V316 tmp279 [V316,T249] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V317 tmp280 [V317,T175] ( 3, 12 ) ref -> [rbp-0x630] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V318 tmp281 [V318,T75] ( 6, 24 ) struct (40) [rbp-0x2E0] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ; V319 tmp282 [V319,T228] ( 3, 6 ) byref -> rax "Inline stloc first use temp" ;* V320 tmp283 [V320 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ;* V321 tmp284 [V321 ] ( 0, 0 ) ref -> zero-ref ;* V322 tmp285 [V322 ] ( 0, 0 ) ref -> zero-ref ; V323 tmp286 [V323,T229] ( 3, 6 ) ref -> rcx
-; V324 tmp287 [V324,T176] ( 3, 12 ) ref -> [rbp-0x628] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
+; V324 tmp287 [V324,T176] ( 3, 12 ) ref -> [rbp-0x638] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V325 tmp288 [V325,T76] ( 6, 24 ) struct (40) [rbp-0x308] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]> ;* V326 tmp289 [V326 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ;* V327 tmp290 [V327 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V328 tmp291 [V328 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V329 tmp292 [V329,T63] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
+; V329 tmp292 [V329,T68] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
; V330 tmp293 [V330,T123] ( 2, 16 ) ref -> rsi class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]> ; V331 tmp294 [V331,T142] ( 4, 14 ) ref -> rsi ;* V332 tmp295 [V332 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ;* V333 tmp296 [V333 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ;* V334 tmp297 [V334 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V335 tmp298 [V335,T270] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>> -;* V336 tmp299 [V336,T288] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V337 tmp300 [V337,T271] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD> -;* V338 tmp301 [V338,T289] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V335 tmp298 [V335,T241] ( 2, 4 ) ref -> [rbp-0x640] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>> +;* V336 tmp299 [V336,T284] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V337 tmp300 [V337 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD> +;* V338 tmp301 [V338,T285] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V339 tmp302 [V339 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD> ;* V340 tmp303 [V340 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo> ;* V341 tmp304 [V341 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]> ...

+6 (+1.97%) : 30546.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)

@@ -107,7 +107,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcrRegs -[rax] sar eax, 16 cdqe
- and eax, 0xFFFF
+ movzx rax, ax + mov eax, eax + movzx rax, ax
mov dword ptr [rbp-0x40], eax mov rax, gword ptr [rbp-0x38] ; gcrRegs +[rax] @@ -124,7 +126,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov eax, dword ptr [rbp-0x2C] ; byrRegs -[rax] cdqe
- and eax, 0xFFFF
+ movzx rax, ax + mov eax, eax + movzx rax, ax
mov dword ptr [rbp-0x40], eax mov rax, gword ptr [rbp-0x38] ; gcrRegs +[rax] @@ -145,7 +149,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; byrRegs -[rax] ; gcr arg pop 0 nop
- ;; size=109 bbWeight=1 PerfScore 32.75
+ ;; size=115 bbWeight=1 PerfScore 33.75
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend add rsp, 80 pop rbp @@ -157,7 +161,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 304, prolog size 25, PerfScore 87.52, instruction count 91, allocated bytes for code 304 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
+; Total bytes of code 310, prolog size 25, PerfScore 88.52, instruction count 95, allocated bytes for code 310 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
; ============================================================ Unwind Info:

+6 (+1.99%) : 28399.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)

@@ -109,7 +109,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; byrRegs -[rax] sar eax, 16 cdqe
- and eax, 0xFFFF
+ movzx rax, ax + mov eax, eax + movzx rax, ax
mov dword ptr [rbp-0x40], eax mov rax, bword ptr [rbp-0x38] ; byrRegs +[rax] @@ -128,7 +130,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov eax, dword ptr [rbp-0x2C] ; byrRegs -[rax] cdqe
- and eax, 0xFFFF
+ movzx rax, ax + mov eax, eax + movzx rax, ax
mov dword ptr [rbp-0x40], eax mov rax, bword ptr [rbp-0x38] ; byrRegs +[rax] @@ -150,7 +154,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; byrRegs -[rax rdi] ; gcr arg pop 0 nop
- ;; size=107 bbWeight=1 PerfScore 32.75
+ ;; size=113 bbWeight=1 PerfScore 33.75
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend add rsp, 80 pop rbp @@ -162,7 +166,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 301, prolog size 25, PerfScore 87.52, instruction count 91, allocated bytes for code 301 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
+; Total bytes of code 307, prolog size 25, PerfScore 88.52, instruction count 95, allocated bytes for code 307 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
; ============================================================ Unwind Info:

coreclr_tests.run.linux.x64.checked.mch

-47 (-81.03%) : 285689.dasm - ILGEN_0xa7db44c0:main():int (Tier0)

@@ -11,35 +11,17 @@ G_M094_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- vzeroupper
mov rbp, rsp
- ;; size=7 bbWeight=1 PerfScore 2.25 -G_M094_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - mov eax, 44 - mov eax, eax - xor ecx, ecx - mul rdx:rax, rcx - jb SHORT G_M094_IG04 - vxorps xmm0, xmm0, xmm0 - vcvtsi2sd xmm0, xmm0, rax - vxorps xmm1, xmm1, xmm1 - xor eax, eax - vucomisd xmm1, xmm0 - seta al - inc eax - dec eax - add eax, 100 - ;; size=43 bbWeight=1 PerfScore 15.42
+ ;; size=4 bbWeight=1 PerfScore 1.25 +G_M094_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov eax, 100 + ;; size=5 bbWeight=1 PerfScore 0.25
G_M094_IG03: ; bbWeight=1, epilog, nogc, extend pop rbp ret ;; size=2 bbWeight=1 PerfScore 1.50
-G_M094_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - call CORINFO_HELP_OVERFLOW - int3 - ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 58, prolog size 7, PerfScore 19.17, instruction count 21, allocated bytes for code 58 (MethodHash=477affa1) for method ILGEN_0xa7db44c0:main():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=477affa1) for method ILGEN_0xa7db44c0:main():int (Tier0)
; ============================================================ Unwind Info:

-42 (-79.25%) : 296598.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)

@@ -6,38 +6,22 @@ ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01 ] ( 1, 1 ) int -> [rbp-0x04] "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M23300_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 16 - lea rbp, [rsp+0x10] - ;; size=10 bbWeight=1 PerfScore 1.75 -G_M23300_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - mov eax, 2 - mov ecx, 1 - mul edx:eax, ecx - jb SHORT G_M23300_IG04 - mov dword ptr [rbp-0x04], eax - mov eax, dword ptr [rbp-0x04] - shr eax, 31 - add eax, dword ptr [rbp-0x04] - sar eax, 1 - add eax, 99 - ;; size=31 bbWeight=1 PerfScore 9.75
+ mov rbp, rsp + ;; size=4 bbWeight=1 PerfScore 1.25 +G_M23300_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov eax, 100 + ;; size=5 bbWeight=1 PerfScore 0.25
G_M23300_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
pop rbp ret
- ;; size=6 bbWeight=1 PerfScore 1.75 -G_M23300_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - call CORINFO_HELP_OVERFLOW - int3 - ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 53, prolog size 10, PerfScore 13.25, instruction count 18, allocated bytes for code 53 (MethodHash=d304a4fb) for method ILGEN_0x45f9b5e5:Main():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=d304a4fb) for method ILGEN_0x45f9b5e5:Main():int (Tier0)
; ============================================================ Unwind Info: @@ -45,10 +29,9 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x05 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01 + CountOfUnwindCodes: 1
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-38 (-77.55%) : 297008.dasm - _n:main():int (Tier0)

@@ -9,39 +9,19 @@ ; ; Lcl frame size = 0
-G_M4754_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M4754_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- vzeroupper
mov rbp, rsp
- ;; size=7 bbWeight=1 PerfScore 2.25 -G_M4754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - vmovsd xmm0, qword ptr [reloc @RWD00] - vxorps xmm0, xmm0, xmmword ptr [reloc @RWD16] - vucomisd xmm0, qword ptr [reloc @RWD32] - jp SHORT G_M4754_IG03 - je SHORT G_M4754_IG05 - ;; size=28 bbWeight=1 PerfScore 11.00 -G_M4754_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov eax, 5 - ;; size=5 bbWeight=1 PerfScore 0.25 -G_M4754_IG04: ; bbWeight=1, epilog, nogc, extend - pop rbp - ret - ;; size=2 bbWeight=1 PerfScore 1.50 -G_M4754_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=4 bbWeight=1 PerfScore 1.25 +G_M4754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, 100 ;; size=5 bbWeight=1 PerfScore 0.25
-G_M4754_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M4754_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp ret ;; size=2 bbWeight=1 PerfScore 1.50
-RWD00 dq 4058C66666666666h ; 99.1 -RWD08 dd 00000000h, 00000000h -RWD16 dq 8000000000000000h, 8000000000000000h -RWD32 dq C058C66666666666h ; -99.1
- -; Total bytes of code 49, prolog size 7, PerfScore 16.75, instruction count 14, allocated bytes for code 49 (MethodHash=9460ed6d) for method _n:main():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=9460ed6d) for method _n:main():int (Tier0)
; ============================================================ Unwind Info:

+21 (+5.22%) : 584667.dasm - ArrayInit:PosTest1():ubyte:this (FullOpts)

@@ -9,16 +9,16 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <ArrayInit>
-; V01 loc0 [V01,T06] ( 4, 3 ) ubyte -> [rbp-0x0C] do-not-enreg[M] EH-live
+; V01 loc0 [V01,T06] ( 4, 3 ) ubyte -> [rbp-0x14] do-not-enreg[M] EH-live
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>> ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T10] ( 3, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V05 tmp1 [V05,T11] ( 3, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V06 tmp2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V07 tmp3 [V07,T07] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String> -;* V08 tmp4 [V08,T08] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+; V07 tmp3 [V07,T08] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String> +;* V08 tmp4 [V08,T09] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V09 tmp5 [V09 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V10 tmp6 [V10,T01] ( 7, 6.84) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V10 tmp6 [V10,T01] ( 6, 5.84) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V12 tmp8 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V13 tmp9 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" @@ -27,29 +27,29 @@ ;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V17 tmp13 [V17,T04] ( 2, 3.79) byref -> rdi single-def "Inlining Arg" ; V18 tmp14 [V18,T05] ( 2, 3.79) byref -> rsi single-def "Inlining Arg"
-;* V19 tmp15 [V19 ] ( 0, 0 ) long -> zero-ref "spilling arg"
+;* V19 tmp15 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp16 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V21 tmp17 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V22 tmp18 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -; V23 tmp19 [V23,T02] ( 2, 4 ) byref -> rdi single-def "Inlining Arg" -; V24 tmp20 [V24,T03] ( 2, 4 ) byref -> rsi single-def "Inlining Arg" -;* V25 tmp21 [V25 ] ( 0, 0 ) long -> zero-ref "spilling arg" -;* V26 tmp22 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> -; V27 tmp23 [V27,T11] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V28 tmp24 [V28,T12] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V29 PSPSym [V29,T09] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym" -; V30 cse0 [V30,T00] ( 9, 8.53) ref -> rsi multi-def "CSE - aggressive"
+; V22 tmp18 [V22,T02] ( 2, 4 ) byref -> rdi single-def "Inlining Arg" +; V23 tmp19 [V23,T03] ( 2, 4 ) byref -> rsi single-def "Inlining Arg" +;* V24 tmp20 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> +; V25 tmp21 [V25,T12] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V26 tmp22 [V26,T13] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V27 PSPSym [V27,T10] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym" +; V28 cse0 [V28,T00] ( 9, 8.53) ref -> rsi multi-def "CSE - aggressive" +; V29 cse1 [V29,T07] ( 3, 2.90) byref -> r15 "CSE - aggressive"
;
-; Lcl frame size = 24
+; Lcl frame size = 16
G_M43472_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG push rbp
+ push r15
push rbx
- sub rsp, 24
+ sub rsp, 16
vzeroupper lea rbp, [rsp+0x20] mov qword ptr [rbp-0x20], rsp
- ;; size=18 bbWeight=1 PerfScore 4.75
+ ;; size=20 bbWeight=1 PerfScore 5.75
G_M43472_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov edi, 91 call <unknown method> @@ -82,7 +82,9 @@ G_M43472_IG04: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ; gcr arg pop 0 ;; size=25 bbWeight=0.95 PerfScore 7.11 G_M43472_IG05: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- lea rdi, bword ptr [rbx+0x0C]
+ lea r15, bword ptr [rbx+0x0C] + ; byrRegs +[r15] + mov rdi, r15
; byrRegs +[rdi] mov rsi, 0xD1FFAB1E ; byrRegs +[rsi] @@ -103,22 +105,22 @@ G_M43472_IG05: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, call [<unknown method>] ; gcrRegs -[rsi rdi] ; gcr arg pop 0
- ;; size=62 bbWeight=0.95 PerfScore 19.68 -G_M43472_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - lea rdi, bword ptr [rbx+0x34]
+ ;; size=65 bbWeight=0.95 PerfScore 19.91 +G_M43472_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref + lea rdi, bword ptr [r15+0x28]
; byrRegs +[rdi] mov rsi, 0xD1FFAB1E ; byrRegs +[rsi] mov edx, 142 call [<unknown method>]
- ; byrRegs -[rsi rdi]
+ ; byrRegs -[rsi rdi r15]
; gcr arg pop 0 mov rdi, rbx ; gcrRegs +[rdi] call [<unknown method>] ; gcrRegs -[rbx rdi] ; gcr arg pop 0
- mov dword ptr [rbp-0x0C], 1
+ mov dword ptr [rbp-0x14], 1
;; size=41 bbWeight=1 PerfScore 8.25 G_M43472_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rdi, 0xD1FFAB1E ; <unknown class> @@ -149,45 +151,49 @@ G_M43472_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax rdi] ; gcr arg pop 0 xor eax, eax
- mov dword ptr [rbp-0x0C], eax
+ mov dword ptr [rbp-0x14], eax
;; size=91 bbWeight=1 PerfScore 16.25 G_M43472_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbp-0x0C]
+ mov eax, dword ptr [rbp-0x14]
;; size=3 bbWeight=1 PerfScore 1.00 G_M43472_IG09: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24
+ add rsp, 16
pop rbx
+ pop r15
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=9 bbWeight=1 PerfScore 2.75
G_M43472_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc push rbp
+ push r15
push rbx
- push rax
+ sub rsp, 16
vzeroupper mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x20]
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M43472_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref lea rax, G_M43472_IG08 ;; size=7 bbWeight=0 PerfScore 0.00 G_M43472_IG12: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 8
+ add rsp, 16
pop rbx
+ pop r15
pop rbp ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M43472_IG13: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[rsi] push rbp
+ push r15
push rbx
- push rax
+ sub rsp, 16
vzeroupper mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x20]
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M43472_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref mov rdi, rsi ; gcrRegs +[rdi] @@ -211,17 +217,18 @@ G_M43472_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 { ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 xor eax, eax
- mov dword ptr [rbp-0x0C], eax
+ mov dword ptr [rbp-0x14], eax
lea rax, G_M43472_IG08 ;; size=63 bbWeight=0 PerfScore 0.00 G_M43472_IG15: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 8
+ add rsp, 16
pop rbx
+ pop r15
pop rbp ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 402, prolog size 18, PerfScore 65.36, instruction count 95, allocated bytes for code 402 (MethodHash=ebd7562f) for method ArrayInit:PosTest1():ubyte:this (FullOpts)
+; Total bytes of code 423, prolog size 20, PerfScore 67.10, instruction count 102, allocated bytes for code 423 (MethodHash=ebd7562f) for method ArrayInit:PosTest1():ubyte:this (FullOpts)
; ============================================================ Unwind Info: @@ -229,39 +236,42 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08 + CountOfUnwindCodes: 4
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10 + CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08 + CountOfUnwindCodes: 4
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10 + CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08 + CountOfUnwindCodes: 4
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10 + CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) *************** EH table for ArrayInit:PosTest1():ubyte:this 2 EH table entries, 0 duplicate clauses, 0 cloned finallys, 2 total EH entries reported to VM

+24 (+5.99%) : 403161.dasm - TypeGetType2:NegTest1():ubyte:this (FullOpts)

@@ -9,23 +9,23 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <TypeGetType2>
-; V01 loc0 [V01,T06] ( 3, 3 ) ubyte -> [rbp-0x0C] do-not-enreg[M] EH-live
+; V01 loc0 [V01,T06] ( 3, 3 ) ubyte -> [rbp-0x14] do-not-enreg[M] EH-live
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>> ;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>> ;* V04 loc3 [V04 ] ( 0, 0 ) ubyte -> zero-ref single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T10] ( 4, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V06 tmp1 [V06,T11] ( 4, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref single-def ;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref single-def ;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref single-def ;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref single-def ;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref single-def
-; V12 tmp7 [V12,T11] ( 3, 0 ) ref -> rsi
+; V12 tmp7 [V12,T12] ( 3, 0 ) ref -> rsi
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V14 tmp9 [V14,T07] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String> -;* V15 tmp10 [V15,T08] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+; V14 tmp9 [V14,T08] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String> +;* V15 tmp10 [V15,T09] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V17 tmp12 [V17,T01] ( 7, 6.84) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V17 tmp12 [V17,T01] ( 6, 5.84) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V18 tmp13 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V20 tmp15 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" @@ -34,30 +34,30 @@ ;* V23 tmp18 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V24 tmp19 [V24,T04] ( 2, 3.79) byref -> rdi single-def "Inlining Arg" ; V25 tmp20 [V25,T05] ( 2, 3.79) byref -> rsi single-def "Inlining Arg"
-;* V26 tmp21 [V26 ] ( 0, 0 ) long -> zero-ref "spilling arg"
+;* V26 tmp21 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V27 tmp22 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V28 tmp23 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -; V30 tmp25 [V30,T02] ( 2, 4 ) byref -> rdi single-def "Inlining Arg" -; V31 tmp26 [V31,T03] ( 2, 4 ) byref -> rax single-def "Inlining Arg" -;* V32 tmp27 [V32 ] ( 0, 0 ) long -> zero-ref "spilling arg" -;* V33 tmp28 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> -; V34 tmp29 [V34,T12] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V35 PSPSym [V35,T09] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym" -; V36 cse0 [V36,T00] ( 9, 8.53) ref -> rsi multi-def "CSE - aggressive"
+; V29 tmp24 [V29,T02] ( 2, 4 ) byref -> r15 single-def "Inlining Arg" +; V30 tmp25 [V30,T03] ( 2, 4 ) byref -> rdi single-def "Inlining Arg" +;* V31 tmp26 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> +; V32 tmp27 [V32,T13] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V33 PSPSym [V33,T10] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym" +; V34 cse0 [V34,T00] ( 9, 8.53) ref -> rsi multi-def "CSE - aggressive" +; V35 cse1 [V35,T07] ( 3, 2.90) byref -> r15 "CSE - aggressive"
;
-; Lcl frame size = 24
+; Lcl frame size = 16
G_M53239_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
+ push r15
push rbx
- sub rsp, 24
+ sub rsp, 16
vzeroupper lea rbp, [rsp+0x20] mov qword ptr [rbp-0x20], rsp
- ;; size=18 bbWeight=1 PerfScore 4.75
+ ;; size=20 bbWeight=1 PerfScore 5.75
G_M53239_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov dword ptr [rbp-0x0C], 1
+ mov dword ptr [rbp-0x14], 1
mov edi, 58 call <unknown method> ; gcrRegs +[rax] @@ -89,7 +89,9 @@ G_M53239_IG04: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ; gcr arg pop 0 ;; size=25 bbWeight=0.95 PerfScore 7.11 G_M53239_IG05: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- lea rdi, bword ptr [rbx+0x0C]
+ lea r15, bword ptr [rbx+0x0C] + ; byrRegs +[r15] + mov rdi, r15
; byrRegs +[rdi] mov rsi, 0xD1FFAB1E ; byrRegs +[rsi] @@ -110,27 +112,26 @@ G_M53239_IG05: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, call [<unknown method>] ; gcrRegs -[rsi rdi] ; gcr arg pop 0
- ;; size=62 bbWeight=0.95 PerfScore 19.68 -G_M53239_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - lea rdi, bword ptr [rbx+0x34]
+ ;; size=65 bbWeight=0.95 PerfScore 19.91 +G_M53239_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref + add r15, 40 + mov rdi, 0xD1FFAB1E
; byrRegs +[rdi]
- mov rax, 0xD1FFAB1E - ; byrRegs +[rax] - vmovdqu ymm0, ymmword ptr [rax] - vmovdqu ymm1, ymmword ptr [rax+0x20] - vmovdqu xmm2, xmmword ptr [rax+0x3C] - vmovdqu ymmword ptr [rdi], ymm0 - vmovdqu ymmword ptr [rdi+0x20], ymm1 - vmovdqu xmmword ptr [rdi+0x3C], xmm2
+ vmovdqu ymm0, ymmword ptr [rdi] + vmovdqu ymm1, ymmword ptr [rdi+0x20] + vmovdqu xmm2, xmmword ptr [rdi+0x3C] + vmovdqu ymmword ptr [r15], ymm0 + vmovdqu ymmword ptr [r15+0x20], ymm1 + vmovdqu xmmword ptr [r15+0x3C], xmm2
mov rdi, rbx ; gcrRegs +[rdi] ; byrRegs -[rdi] call [<unknown method>] ; gcrRegs -[rbx rdi]
- ; byrRegs -[rax]
+ ; byrRegs -[r15]
; gcr arg pop 0 nop
- ;; size=52 bbWeight=1 PerfScore 24.25
+ ;; size=55 bbWeight=1 PerfScore 24.00
G_M53239_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref xor rdi, rdi ; gcrRegs +[rdi] @@ -154,45 +155,49 @@ G_M53239_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax rdi] ; gcr arg pop 0 xor eax, eax
- mov dword ptr [rbp-0x0C], eax
+ mov dword ptr [rbp-0x14], eax
;; size=68 bbWeight=1 PerfScore 11.75 G_M53239_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbp-0x0C]
+ mov eax, dword ptr [rbp-0x14]
;; size=3 bbWeight=1 PerfScore 1.00 G_M53239_IG09: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24
+ add rsp, 16
pop rbx
+ pop r15
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=9 bbWeight=1 PerfScore 2.75
G_M53239_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc push rbp
+ push r15
push rbx
- push rax
+ sub rsp, 16
vzeroupper mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x20]
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M53239_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref lea rax, G_M53239_IG08 ;; size=7 bbWeight=0 PerfScore 0.00 G_M53239_IG12: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 8
+ add rsp, 16
pop rbx
+ pop r15
pop rbp ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M53239_IG13: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[rsi] push rbp
+ push r15
push rbx
- push rax
+ sub rsp, 16
vzeroupper mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x20]
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M53239_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz test rsi, rsi jne SHORT G_M53239_IG15 @@ -227,13 +232,14 @@ G_M53239_IG16: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr lea rax, G_M53239_IG08 ;; size=42 bbWeight=0 PerfScore 0.00 G_M53239_IG17: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 8
+ add rsp, 16
pop rbx
+ pop r15
pop rbp ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 401, prolog size 18, PerfScore 77.86, instruction count 98, allocated bytes for code 401 (MethodHash=625d3008) for method TypeGetType2:NegTest1():ubyte:this (FullOpts)
+; Total bytes of code 425, prolog size 20, PerfScore 79.35, instruction count 105, allocated bytes for code 425 (MethodHash=625d3008) for method TypeGetType2:NegTest1():ubyte:this (FullOpts)
; ============================================================ Unwind Info: @@ -241,39 +247,42 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08 + CountOfUnwindCodes: 4
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10 + CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08 + CountOfUnwindCodes: 4
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10 + CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08 + CountOfUnwindCodes: 4
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : ...

+5 (+27.78%) : 284622.dasm - ILGEN_622380794:main():int (Tier0)

@@ -14,15 +14,16 @@ G_M30338_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M30338_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- shl dword ptr [(reloc)], 0
+ mov eax, dword ptr [(reloc)] ; static handle + mov dword ptr [(reloc)], eax
mov eax, 100
- ;; size=12 bbWeight=1 PerfScore 4.25
+ ;; size=17 bbWeight=1 PerfScore 3.25
G_M30338_IG03: ; bbWeight=1, epilog, nogc, extend pop rbp ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 18, prolog size 4, PerfScore 7.00, instruction count 6, allocated bytes for code 18 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (Tier0)
+; Total bytes of code 23, prolog size 4, PerfScore 6.00, instruction count 7, allocated bytes for code 23 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (Tier0)
; ============================================================ Unwind Info:

libraries.crossgen2.linux.x64.checked.mch

-5 (-45.45%) : 12136.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)

@@ -3,7 +3,7 @@ ; FullOpts code ; ReadyToRun compilation ; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible ; No matching PGO data ; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data @@ -13,24 +13,19 @@ ;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune> ;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ;* V03 tmp3 [V03 ] ( 0, 0 ) int -> zero-ref "field V01._value (fldOffset=0x0)" P-INDEP
-;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref "argument with side effect" -;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; ; Lcl frame size = 0 G_M7284_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp - mov rbp, rsp - ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov eax, 0xFFFD ;; size=5 bbWeight=1 PerfScore 0.25 G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
+; Total bytes of code 6, prolog size 0, PerfScore 1.25, instruction count 2, allocated bytes for code 6 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
; ============================================================ Unwind Info: @@ -38,9 +33,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-7 (-6.67%) : 17235.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
@@ -9,22 +9,25 @@ ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> rdi this class-hnd single-def <System.Diagnostics.Tracing.EventSource> -; V01 arg1 [V01,T01] ( 3, 2.50) int -> rsi single-def -; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp-0x04] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Diagnostics.Tracing.EventSource> +; V01 arg1 [V01,T01] ( 3, 3 ) int -> rsi single-def +; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp-0x1C] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> r8 ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [rbp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal" +; V06 GsCookie [V06 ] ( 1, 1 ) long -> [rbp-0x08] do-not-enreg[X] addr-exposed "GSSecurityCookie" +; V07 tmp3 [V07,T03] ( 3, 2.50) ref -> rdi single-def "shadowVar" +; V08 tmp4 [V08,T04] ( 2, 1.50) int -> rsi "shadowVar"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M63626_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 16 - lea rbp, [rsp+0x10]
+ sub rsp, 32 + lea rbp, [rsp+0x20]
mov rax, qword ptr [(reloc)]
- mov qword ptr [rbp-0x10], rax - mov dword ptr [rbp-0x04], edx
+ mov qword ptr [rbp-0x08], rax + mov dword ptr [rbp-0x1C], edx
;; size=24 bbWeight=1 PerfScore 5.75 G_M63626_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[rdi] @@ -32,15 +35,13 @@ G_M63626_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr je SHORT G_M63626_IG05 ;; size=9 bbWeight=1 PerfScore 4.00 G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
- test dword ptr [rsp], esp - sub rsp, 16 - lea r8, [rsp] - lea rdx, [rbp-0x04]
+ lea r8, [rbp-0x18] + lea rdx, [rbp-0x1C]
mov qword ptr [r8], rdx mov dword ptr [r8+0x08], 4 xor edx, edx mov dword ptr [r8+0x0C], edx
- ;; size=32 bbWeight=0.50 PerfScore 3.75
+ ;; size=25 bbWeight=0.50 PerfScore 2.12
G_M63626_IG04: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref mov ecx, 1 call [<unknown method>] @@ -49,7 +50,7 @@ G_M63626_IG04: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, G_M63626_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz lea rdi, [(reloc)] mov rdi, qword ptr [rdi]
- cmp qword ptr [rbp-0x10], rdi
+ cmp qword ptr [rbp-0x08], rdi
je SHORT G_M63626_IG06 call [CORINFO_HELP_FAIL_FAST] ;; size=22 bbWeight=1 PerfScore 8.50 @@ -57,12 +58,12 @@ G_M63626_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M63626_IG07: ; bbWeight=1, epilog, nogc, extend
- lea rsp, [rbp]
+ add rsp, 32
pop rbp ret
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 105, prolog size 21, PerfScore 25.88, instruction count 27, allocated bytes for code 105 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
+; Total bytes of code 98, prolog size 21, PerfScore 24.00, instruction count 25, allocated bytes for code 98 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
; ============================================================ Unwind Info: @@ -70,11 +71,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x0A - CountOfUnwindCodes: 3 - FrameRegister : rbp (5) - FrameOffset : 1 * 16 = 0x10
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2 + FrameRegister : none (0) + FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x0A UnwindOp: UWOP_SET_FPREG (3) OpInfo: Unused (0) - CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-7 (-6.60%) : 17238.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)

@@ -9,22 +9,25 @@ ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> rdi this class-hnd single-def <System.Diagnostics.Tracing.EventSource> -; V01 arg1 [V01,T01] ( 3, 2.50) int -> rsi single-def -; V02 arg2 [V02 ] ( 3, 2.50) long -> [rbp-0x08] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Diagnostics.Tracing.EventSource> +; V01 arg1 [V01,T01] ( 3, 3 ) int -> rsi single-def +; V02 arg2 [V02 ] ( 3, 2.50) long -> [rbp-0x20] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> r8 ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [rbp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal" +; V06 GsCookie [V06 ] ( 1, 1 ) long -> [rbp-0x08] do-not-enreg[X] addr-exposed "GSSecurityCookie" +; V07 tmp3 [V07,T03] ( 3, 2.50) ref -> rdi single-def "shadowVar" +; V08 tmp4 [V08,T04] ( 2, 1.50) int -> rsi "shadowVar"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M56019_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 16 - lea rbp, [rsp+0x10]
+ sub rsp, 32 + lea rbp, [rsp+0x20]
mov rax, qword ptr [(reloc)]
- mov qword ptr [rbp-0x10], rax - mov qword ptr [rbp-0x08], rdx
+ mov qword ptr [rbp-0x08], rax + mov qword ptr [rbp-0x20], rdx
;; size=25 bbWeight=1 PerfScore 5.75 G_M56019_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[rdi] @@ -32,15 +35,13 @@ G_M56019_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr je SHORT G_M56019_IG05 ;; size=9 bbWeight=1 PerfScore 4.00 G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
- test dword ptr [rsp], esp - sub rsp, 16 - lea r8, [rsp] - lea rdx, [rbp-0x08]
+ lea r8, [rbp-0x18] + lea rdx, [rbp-0x20]
mov qword ptr [r8], rdx mov dword ptr [r8+0x08], 8 xor edx, edx mov dword ptr [r8+0x0C], edx
- ;; size=32 bbWeight=0.50 PerfScore 3.75
+ ;; size=25 bbWeight=0.50 PerfScore 2.12
G_M56019_IG04: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref mov ecx, 1 call [<unknown method>] @@ -49,7 +50,7 @@ G_M56019_IG04: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, G_M56019_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz lea rdi, [(reloc)] mov rdi, qword ptr [rdi]
- cmp qword ptr [rbp-0x10], rdi
+ cmp qword ptr [rbp-0x08], rdi
je SHORT G_M56019_IG06 call [CORINFO_HELP_FAIL_FAST] ;; size=22 bbWeight=1 PerfScore 8.50 @@ -57,12 +58,12 @@ G_M56019_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M56019_IG07: ; bbWeight=1, epilog, nogc, extend
- lea rsp, [rbp]
+ add rsp, 32
pop rbp ret
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 106, prolog size 21, PerfScore 25.88, instruction count 27, allocated bytes for code 106 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
+; Total bytes of code 99, prolog size 21, PerfScore 24.00, instruction count 25, allocated bytes for code 99 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
; ============================================================ Unwind Info: @@ -70,11 +71,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x0A - CountOfUnwindCodes: 3 - FrameRegister : rbp (5) - FrameOffset : 1 * 16 = 0x10
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2 + FrameRegister : none (0) + FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x0A UnwindOp: UWOP_SET_FPREG (3) OpInfo: Unused (0) - CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+1 (+0.12%) : 211395.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)

@@ -267,18 +267,18 @@ G_M13748_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr jmp G_M13748_IG31 ;; size=24 bbWeight=0.50 PerfScore 4.12 G_M13748_IG28: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp qword ptr [r12+0x08], 0xD1FFAB1E
+ mov rax, qword ptr [r12+0x08] + cmp rax, 0xD1FFAB1E
jg G_M13748_IG34
- mov rax, qword ptr [r12] - shl rax, 24 - mov rcx, qword ptr [r12+0x08] - and rcx, 0xD1FFAB1E
+ mov rcx, qword ptr [r12] + shl rcx, 24 + and rax, 0xD1FFAB1E
or rax, rcx jmp SHORT G_M13748_IG31
- ;; size=40 bbWeight=0.50 PerfScore 5.50
+ ;; size=36 bbWeight=0.50 PerfScore 4.12
G_M13748_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz cmp qword ptr [r12+0x10], 0xFFFF
- jg SHORT G_M13748_IG34
+ jg G_M13748_IG34
mov rax, qword ptr [r12] shl rax, 24 movzx rcx, byte ptr [r12+0x08] @@ -287,22 +287,21 @@ G_M13748_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr movzx rcx, word ptr [r12+0x10] or rax, rcx jmp SHORT G_M13748_IG31
- ;; size=43 bbWeight=0.50 PerfScore 6.75
+ ;; size=47 bbWeight=0.50 PerfScore 6.75
G_M13748_IG30: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, qword ptr [r12+0x18] - cmp rax, 255
+ cmp qword ptr [r12+0x18], 255
jg SHORT G_M13748_IG34
- mov rcx, qword ptr [r12] - shl rcx, 24 - movzx rdx, byte ptr [r12+0x08] - shl rdx, 16 - or rcx, rdx - movzx rdx, byte ptr [r12+0x10] - shl rdx, 8 - or rcx, rdx - movzx rax, al
+ mov rax, qword ptr [r12] + shl rax, 24 + movzx rcx, byte ptr [r12+0x08] + shl rcx, 16
or rax, rcx
- ;; size=53 bbWeight=0.50 PerfScore 5.88
+ movzx rcx, byte ptr [r12+0x10] + shl rcx, 8 + or rax, rcx + movzx rcx, byte ptr [r12+0x18] + or rax, rcx + ;; size=54 bbWeight=0.50 PerfScore 7.12
G_M13748_IG31: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz lea rdi, [(reloc)] mov rdi, qword ptr [rdi] @@ -352,7 +351,7 @@ RWD00 dd G_M13748_IG27 - G_M13748_IG02 dd G_M13748_IG30 - G_M13748_IG02
-; Total bytes of code 830, prolog size 32, PerfScore 1190.50, instruction count 233, allocated bytes for code 830 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 831, prolog size 32, PerfScore 1190.38, instruction count 232, allocated bytes for code 831 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================ Unwind Info:

+1 (+0.12%) : 233396.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)

@@ -267,18 +267,18 @@ G_M13748_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr jmp G_M13748_IG31 ;; size=24 bbWeight=0.50 PerfScore 4.12 G_M13748_IG28: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp qword ptr [r12+0x08], 0xD1FFAB1E
+ mov rax, qword ptr [r12+0x08] + cmp rax, 0xD1FFAB1E
jg G_M13748_IG34
- mov rax, qword ptr [r12] - shl rax, 24 - mov rcx, qword ptr [r12+0x08] - and rcx, 0xD1FFAB1E
+ mov rcx, qword ptr [r12] + shl rcx, 24 + and rax, 0xD1FFAB1E
or rax, rcx jmp SHORT G_M13748_IG31
- ;; size=40 bbWeight=0.50 PerfScore 5.50
+ ;; size=36 bbWeight=0.50 PerfScore 4.12
G_M13748_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz cmp qword ptr [r12+0x10], 0xFFFF
- jg SHORT G_M13748_IG34
+ jg G_M13748_IG34
mov rax, qword ptr [r12] shl rax, 24 movzx rcx, byte ptr [r12+0x08] @@ -287,22 +287,21 @@ G_M13748_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr movzx rcx, word ptr [r12+0x10] or rax, rcx jmp SHORT G_M13748_IG31
- ;; size=43 bbWeight=0.50 PerfScore 6.75
+ ;; size=47 bbWeight=0.50 PerfScore 6.75
G_M13748_IG30: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, qword ptr [r12+0x18] - cmp rax, 255
+ cmp qword ptr [r12+0x18], 255
jg SHORT G_M13748_IG34
- mov rcx, qword ptr [r12] - shl rcx, 24 - movzx rdx, byte ptr [r12+0x08] - shl rdx, 16 - or rcx, rdx - movzx rdx, byte ptr [r12+0x10] - shl rdx, 8 - or rcx, rdx - movzx rax, al
+ mov rax, qword ptr [r12] + shl rax, 24 + movzx rcx, byte ptr [r12+0x08] + shl rcx, 16
or rax, rcx
- ;; size=53 bbWeight=0.50 PerfScore 5.88
+ movzx rcx, byte ptr [r12+0x10] + shl rcx, 8 + or rax, rcx + movzx rcx, byte ptr [r12+0x18] + or rax, rcx + ;; size=54 bbWeight=0.50 PerfScore 7.12
G_M13748_IG31: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz lea rdi, [(reloc)] mov rdi, qword ptr [rdi] @@ -352,7 +351,7 @@ RWD00 dd G_M13748_IG27 - G_M13748_IG02 dd G_M13748_IG30 - G_M13748_IG02
-; Total bytes of code 830, prolog size 32, PerfScore 1190.50, instruction count 233, allocated bytes for code 830 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 831, prolog size 32, PerfScore 1190.38, instruction count 232, allocated bytes for code 831 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================ Unwind Info:

+3 (+9.09%) : 26807.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)

@@ -25,17 +25,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs -[rdi] ; gcr arg pop 0 mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax + movzx rdx, dx
cmp eax, -1 mov eax, edx cmove eax, ecx
- ;; size=27 bbWeight=1 PerfScore 4.50
+ ;; size=30 bbWeight=1 PerfScore 4.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 8 ret ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 33, prolog size 1, PerfScore 6.75, instruction count 10, allocated bytes for code 33 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 7.00, instruction count 11, allocated bytes for code 36 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================ Unwind Info:

libraries.pmi.linux.x64.checked.mch

-48 (-66.67%) : 23625.dasm - System.Data.UniqueConstraint:.ctor(System.String,System.Data.DataColumn[]):this (FullOpts)

@@ -8,60 +8,29 @@ ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <System.Data.UniqueConstraint> -; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r15 class-hnd single-def <System.String> -; V02 arg2 [V02,T02] ( 3, 3 ) ref -> r14 class-hnd single-def <System.Data.DataColumn[]>
+; V00 this [V00,T00] ( 5, 5 ) ref -> rdi this class-hnd single-def <System.Data.UniqueConstraint> +; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.String> +; V02 arg2 [V02,T02] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Data.DataColumn[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) ref -> r13 "CSE - aggressive"
+; V04 cse0 [V04,T03] ( 3, 3 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M40893_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push r14 - push r13 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - mov r15, rsi - ; gcrRegs +[r15] - mov r14, rdx - ; gcrRegs +[r14] - ;; size=16 bbWeight=1 PerfScore 4.75 -G_M40893_IG02: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref - mov r13, 0xD1FFAB1E - ; gcrRegs +[r13] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r13 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r13 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi r13] - ; byrRegs -[rdi] - mov rdi, rbx - ; gcrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - mov rdx, r14 - ; gcrRegs +[rdx] - ;; size=43 bbWeight=1 PerfScore 4.50
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M40893_IG02: ; bbWeight=1, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdx rsi rdi] + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x18], rax + ;; size=18 bbWeight=1 PerfScore 2.25
G_M40893_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r13 - pop r14 - pop r15
tail.jmp [System.Data.UniqueConstraint:Create(System.String,System.Data.DataColumn[]):this] ; gcr arg pop 0
- ;; size=13 bbWeight=1 PerfScore 4.00
+ ;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 16, PerfScore 13.25, instruction count 22, allocated bytes for code 72 (MethodHash=059b6042) for method System.Data.UniqueConstraint:.ctor(System.String,System.Data.DataColumn[]):this (FullOpts)
+; Total bytes of code 24, prolog size 0, PerfScore 4.25, instruction count 4, allocated bytes for code 24 (MethodHash=059b6042) for method System.Data.UniqueConstraint:.ctor(System.String,System.Data.DataColumn[]):this (FullOpts)
; ============================================================ Unwind Info: @@ -69,12 +38,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07 - CountOfUnwindCodes: 4
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) - CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

-42 (-60.87%) : 137311.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)

@@ -7,58 +7,28 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rdi this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 5, 5 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M44061_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M44061_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x20] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=59 bbWeight=1 PerfScore 7.50
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M44061_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x10], rax + mov gword ptr [rdi+0x18], rax + mov gword ptr [rdi+0x20], rax + ;; size=26 bbWeight=1 PerfScore 4.25
G_M44061_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 69, prolog size 3, PerfScore 11.75, instruction count 20, allocated bytes for code 69 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
+; Total bytes of code 27, prolog size 0, PerfScore 5.25, instruction count 6, allocated bytes for code 27 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
; ============================================================ Unwind Info: @@ -66,10 +36,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

-34 (-60.71%) : 134703.dasm - System.Xml.XmlSqlBinaryReader+QName:Clear():this (FullOpts)

@@ -7,53 +7,29 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 5, 5 ) byref -> rdi this single-def
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <<unknown class>>
-; V04 cse0 [V04,T01] ( 4, 4 ) ref -> r15 "CSE - aggressive"
+; V04 cse0 [V04,T01] ( 4, 4 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M36408_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; byrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M36408_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x10]
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M36408_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
; byrRegs +[rdi]
- mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_CHECKED_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_CHECKED_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - mov rdi, rbx - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_CHECKED_ASSIGN_REF - ; gcrRegs -[rsi r15] - ; byrRegs -[rbx rdi] - nop - ;; size=46 bbWeight=1 PerfScore 5.50
+ mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x10], rax + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi], rax + ;; size=21 bbWeight=1 PerfScore 3.25
G_M36408_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 56, prolog size 3, PerfScore 9.75, instruction count 17, allocated bytes for code 56 (MethodHash=ae6871c7) for method System.Xml.XmlSqlBinaryReader+QName:Clear():this (FullOpts)
+; Total bytes of code 22, prolog size 0, PerfScore 4.25, instruction count 5, allocated bytes for code 22 (MethodHash=ae6871c7) for method System.Xml.XmlSqlBinaryReader+QName:Clear():this (FullOpts)
; ============================================================ Unwind Info: @@ -61,10 +37,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

+47 (+2.00%) : 257519.dasm - ParallelRunner:BuildEtwProcesses(int,int,int,int,System.Collections.Generic.List`1[ProcessInfo],int,ubyte) (FullOpts)

@@ -8,17 +8,17 @@ ; 28 inlinees with PGO data; 59 single block inlinees; 6 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T50] ( 3, 3 ) int -> r15 single-def -; V01 arg1 [V01,T51] ( 3, 3 ) int -> r14 single-def -; V02 arg2 [V02,T52] ( 3, 3 ) int -> r13 single-def -; V03 arg3 [V03,T53] ( 3, 3 ) int -> r12 single-def -; V04 arg4 [V04,T49] ( 3, 3 ) ref -> rbx class-hnd single-def <System.Collections.Generic.List`1[ProcessInfo]> -; V05 arg5 [V05,T54] ( 3, 3 ) int -> [rbp-0x2C] single-def -; V06 arg6 [V06,T76] ( 1, 1 ) ubyte -> [rbp+0x10] single-def -; V07 loc0 [V07,T06] ( 40, 36.50) ref -> [rbp-0xE0] class-hnd exact EH-live spill-single-def <ParallelRunner+<>c__DisplayClass2_0>
+; V00 arg0 [V00,T49] ( 3, 3 ) int -> r15 single-def +; V01 arg1 [V01,T50] ( 3, 3 ) int -> r14 single-def +; V02 arg2 [V02,T51] ( 3, 3 ) int -> r13 single-def +; V03 arg3 [V03,T52] ( 3, 3 ) int -> r12 single-def +; V04 arg4 [V04,T48] ( 3, 3 ) ref -> rbx class-hnd single-def <System.Collections.Generic.List`1[ProcessInfo]> +; V05 arg5 [V05,T53] ( 3, 3 ) int -> [rbp-0x2C] single-def +; V06 arg6 [V06,T73] ( 1, 1 ) ubyte -> [rbp+0x10] single-def +; V07 loc0 [V07,T06] ( 40, 36.50) ref -> [rbp-0xE8] class-hnd exact EH-live spill-single-def <ParallelRunner+<>c__DisplayClass2_0>
; V08 loc1 [V08,T09] ( 8, 26 ) int -> rbx
-; V09 loc2 [V09,T16] ( 6, 16 ) ref -> r15 class-hnd <ProcessInfo> -; V10 loc3 [V10,T04] ( 7, 72 ) ref -> [rbp-0xE8] do-not-enreg[Z] class-hnd exact EH-live <System.IO.StreamWriter>
+; V09 loc2 [V09,T17] ( 6, 16 ) ref -> r15 class-hnd <ProcessInfo> +; V10 loc3 [V10,T04] ( 6, 70 ) ref -> [rbp-0xF0] do-not-enreg[Z] class-hnd exact EH-live <System.IO.StreamWriter>
; V11 loc4 [V11 ] ( 26, 47.99) struct (40) [rbp-0x58] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler> ; V12 loc5 [V12 ] ( 9, 60 ) struct (40) [rbp-0x80] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.Dictionary`2+Enumerator[System.String,System.Collections.Generic.HashSet`1[System.String]]> ;* V13 loc6 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.HashSet`1[System.String]]> @@ -26,168 +26,165 @@ ; V15 loc8 [V15,T01] ( 2,128 ) ref -> rdx class-hnd exact <System.String> ; V16 OutArgs [V16 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V17 tmp1 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <ParallelRunner+<>c__DisplayClass2_0>
-; V18 tmp2 [V18,T44] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <Microsoft.Diagnostics.Tracing.Session.TraceEventSession> -; V19 tmp3 [V19,T45] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V18 tmp2 [V18,T43] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <Microsoft.Diagnostics.Tracing.Session.TraceEventSession> +; V19 tmp3 [V19,T44] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V20 tmp4 [V20,T31] ( 4, 8 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Action>
-; V21 tmp5 [V21,T17] ( 4, 16 ) ref -> r14 class-hnd exact "NewObj constructor temp" <System.IO.StreamWriter>
+; V21 tmp5 [V21,T12] ( 5, 20 ) ref -> r14 class-hnd exact "NewObj constructor temp" <System.IO.StreamWriter>
;* V22 tmp6 [V22 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler> ; V23 tmp7 [V23,T33] ( 2, 8 ) ref -> rdx class-hnd "dup spill" <<unknown class>>
-; V24 tmp8 [V24,T34] ( 2, 8.00) ref -> r14 class-hnd "impSpillLclRefs" <<unknown class>>
+; V24 tmp8 [V24,T34] ( 2, 8.00) ref -> r12 class-hnd "impSpillLclRefs" <<unknown class>>
;* V25 tmp9 [V25 ] ( 0, 0 ) ref -> zero-ref
-; V26 tmp10 [V26,T57] ( 2, 4.00) byref -> r12
+; V26 tmp10 [V26,T56] ( 2, 4.00) byref -> [rbp-0xF8] spill-single-def
;* V27 tmp11 [V27 ] ( 0, 0 ) ref -> zero-ref ; V28 tmp12 [V28,T32] ( 4, 8 ) ref -> rdx
-; V29 tmp13 [V29,T12] ( 5, 20 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>> -; V30 tmp14 [V30,T67] ( 3, 3 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V29 tmp13 [V29,T13] ( 5, 20 ) ref -> [rbp-0x100] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>> +; V30 tmp14 [V30,T66] ( 3, 3 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V31 tmp15 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ProcessInfo]> ;* V32 tmp16 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V33 tmp17 [V33,T10] ( 3, 24 ) ref -> rdi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ProcessInfo]>
-; V34 tmp18 [V34,T15] ( 6, 19.76) ref -> r13 class-hnd exact "Inlining Arg" <System.String>
+; V34 tmp18 [V34,T16] ( 6, 19.76) ref -> r13 class-hnd exact "Inlining Arg" <System.String>
; V35 tmp19 [V35,T35] ( 2, 8 ) ref -> r12 class-hnd exact "Inlining Arg" <<unknown class>> ;* V36 tmp20 [V36 ] ( 0, 0 ) ref -> zero-ref ;* V37 tmp21 [V37 ] ( 0, 0 ) ref -> zero-ref ;* V38 tmp22 [V38 ] ( 0, 0 ) int -> zero-ref
-; V39 tmp23 [V39,T18] ( 3, 12 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.FileStream> -;* V40 tmp24 [V40,T70] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V39 tmp23 [V39,T18] ( 3, 12 ) ref -> [rbp-0x108] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.FileStream> +;* V40 tmp24 [V40,T68] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V41 tmp25 [V41 ] ( 0, 0 ) ref -> zero-ref ;* V42 tmp26 [V42 ] ( 0, 0 ) ref -> zero-ref ;* V43 tmp27 [V43 ] ( 0, 0 ) int -> zero-ref ;* V44 tmp28 [V44 ] ( 0, 0 ) int -> zero-ref ;* V45 tmp29 [V45 ] ( 0, 0 ) int -> zero-ref ;* V46 tmp30 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp31 [V47,T68] ( 0, 0 ) ref -> zero-ref
+;* V47 tmp31 [V47,T67] ( 0, 0 ) ref -> zero-ref
;* V48 tmp32 [V48 ] ( 0, 0 ) ref -> zero-ref ;* V49 tmp33 [V49 ] ( 0, 0 ) int -> zero-ref ;* V50 tmp34 [V50 ] ( 0, 0 ) int -> zero-ref ;* V51 tmp35 [V51 ] ( 0, 0 ) int -> zero-ref
-;* V52 tmp36 [V52,T71] ( 0, 0 ) int -> zero-ref
+;* V52 tmp36 [V52,T69] ( 0, 0 ) int -> zero-ref
;* V53 tmp37 [V53 ] ( 0, 0 ) int -> zero-ref ;* V54 tmp38 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]> ;* V55 tmp39 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy> ;* V56 tmp40 [V56 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Nullable`1[int]> ;* V57 tmp41 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.IO.Strategies.FileStreamStrategy>
-; V58 tmp42 [V58,T25] ( 3, 12 ) ref -> [rbp-0x100] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.Strategies.UnixFileStreamStrategy> -; V59 tmp43 [V59,T58] ( 2, 4 ) ref -> rsi class-hnd "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
+; V58 tmp42 [V58,T25] ( 3, 12 ) ref -> [rbp-0x110] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.Strategies.UnixFileStreamStrategy> +; V59 tmp43 [V59,T57] ( 2, 4 ) ref -> rsi class-hnd "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
; V60 tmp44 [V60,T19] ( 4, 16 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.IO.Strategies.BufferedFileStreamStrategy> ;* V61 tmp45 [V61 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V62 tmp46 [V62 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V63 tmp47 [V63,T59] ( 2, 4 ) ref -> rsi class-hnd "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
+; V63 tmp47 [V63,T58] ( 2, 4 ) ref -> rsi class-hnd "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
;* V64 tmp48 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.IO.Strategies.DerivedFileStreamStrategy>
-; V65 tmp49 [V65,T36] ( 2, 8 ) ref -> rdi class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+;* V65 tmp49 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V66 tmp50 [V66 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
-; V67 tmp51 [V67,T13] ( 5, 20 ) ref -> rax class-hnd "dup spill" <ushort[]>
+; V67 tmp51 [V67,T14] ( 5, 20 ) ref -> rax class-hnd "dup spill" <ushort[]>
;* V68 tmp52 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <ushort[]>
-;* V69 tmp53 [V69,T72] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -;* V70 tmp54 [V70 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -;* V71 tmp55 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]> -;* V72 tmp56 [V72 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]> -; V73 tmp57 [V73,T20] ( 4, 16.00) int -> rdi "Inlining Arg" -;* V74 tmp58 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]> -; V75 tmp59 [V75,T28] ( 3, 12.00) int -> r12 "Inlining Arg" -; V76 tmp60 [V76,T40] ( 2, 7.98) byref -> r14 "Inlining Arg"
+;* V69 tmp53 [V69 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" +;* V70 tmp54 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]> +;* V71 tmp55 [V71 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]> +; V72 tmp56 [V72,T20] ( 4, 16.00) int -> rdi "Inlining Arg" +;* V73 tmp57 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]> +; V74 tmp58 [V74,T28] ( 3, 12.00) int -> [rbp-0x9C] spill-single-def "Inlining Arg" +; V75 tmp59 [V75,T39] ( 2, 7.98) byref -> r12 "Inlining Arg" +;* V76 tmp60 [V76 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V77 tmp61 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V78 tmp62 [V78 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V79 tmp63 [V79,T65] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -;* V80 tmp64 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]> -;* V81 tmp65 [V81 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -; V82 tmp66 [V82,T42] ( 2, 7.97) byref -> rdi "Inlining Arg" -;* V83 tmp67 [V83 ] ( 0, 0 ) long -> zero-ref "spilling arg" -; V84 tmp68 [V84,T26] ( 3, 12 ) ref -> rsi class-hnd exact "Inlining Arg" <<unknown class>> -;* V85 tmp69 [V85 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]> -; V86 tmp70 [V86,T21] ( 4, 16.00) int -> rdi "Inlining Arg" -;* V87 tmp71 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]> -; V88 tmp72 [V88,T29] ( 3, 12.00) int -> r12 "Inlining Arg" -; V89 tmp73 [V89,T41] ( 2, 7.98) byref -> r14 "Inlining Arg" -;* V90 tmp74 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V91 tmp75 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V92 tmp76 [V92,T66] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" -;* V93 tmp77 [V93 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]> -;* V94 tmp78 [V94 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -; V95 tmp79 [V95,T43] ( 2, 7.97) byref -> rdi "Inlining Arg" -;* V96 tmp80 [V96 ] ( 0, 0 ) long -> zero-ref "spilling arg" -;* V97 tmp81 [V97 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String> -;* V98 tmp82 [V98 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]> -; V99 tmp83 [V99,T60] ( 2, 4 ) ref -> r14 class-hnd exact "Inline stloc first use temp" <System.String> -;* V100 tmp84 [V100 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]> -; V101 tmp85 [V101,T22] ( 4, 16 ) int -> r14 "Inlining Arg" -;* V102 tmp86 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]> -; V103 tmp87 [V103,T37] ( 2, 8 ) byref -> r12 "Inlining Arg" -;* V104 tmp88 [V104 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V105 tmp89 [V105 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V106 tmp90 [V106 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]> -;* V107 tmp91 [V107 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]> -;* V108 tmp92 [V108 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -;* V109 tmp93 [V109 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -;* V110 tmp94 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V111 tmp95 [V111 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -; V112 tmp96 [V112,T47] ( 3, 5.93) ref -> rsi class-hnd "Inline stloc first use temp" <ushort[]> -;* V113 tmp97 [V113 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ushort]> -; V114 tmp98 [V114,T27] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" <<unknown class>> -; V115 tmp99 [V115,T38] ( 2, 8 ) struct (40) [rbp-0xC0] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+Enumerator[System.String,System.Collections.Generic.HashSet`1[System.String]]> -;* V116 tmp100 [V116 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon> -;* V117 tmp101 [V117 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.HashSet`1+Enumerator[System.String]> -; V118 tmp102 [V118,T03] ( 2, 80 ) ref -> r13 "field V13.key (fldOffset=0x0)" P-INDEP -; V119 tmp103 [V119,T07] ( 2, 32 ) ref -> rdi "field V13.value (fldOffset=0x8)" P-INDEP -; V120 tmp104 [V120 ] ( 3, 96 ) ref -> [rbp-0x98] do-not-enreg[X] addr-exposed "field V14._hashSet (fldOffset=0x0)" P-DEP -; V121 tmp105 [V121 ] ( 4,160 ) ref -> [rbp-0x90] do-not-enreg[X] addr-exposed "field V14._current (fldOffset=0x8)" P-DEP -; V122 tmp106 [V122 ] ( 3, 96 ) int -> [rbp-0x88] do-not-enreg[X] addr-exposed "field V14._version (fldOffset=0x10)" P-DEP -; V123 tmp107 [V123 ] ( 3, 96 ) int -> [rbp-0x84] do-not-enreg[X] addr-exposed "field V14._index (fldOffset=0x14)" P-DEP -;* V124 tmp108 [V124 ] ( 0, 0 ) ubyte -> zero-ref "field V54.hasValue (fldOffset=0x0)" P-INDEP -;* V125 tmp109 [V125 ] ( 0, 0 ) int -> zero-ref "field V54.value (fldOffset=0x4)" P-INDEP -;* V126 tmp110 [V126,T73] ( 0, 0 ) ubyte -> zero-ref "field V56.hasValue (fldOffset=0x0)" P-INDEP -;* V127 tmp111 [V127,T74] ( 0, 0 ) int -> zero-ref "field V56.value (fldOffset=0x4)" P-INDEP -; V128 tmp112 [V128,T55] ( 3, 4.00) byref -> r12 "field V71._reference (fldOffset=0x0)" P-INDEP -; V129 tmp113 [V129,T56] ( 3, 4.00) int -> rcx "field V71._length (fldOffset=0x8)" P-INDEP -;* V130 tmp114 [V130 ] ( 0, 0 ) byref -> zero-ref "field V72._reference (fldOffset=0x0)" P-INDEP -;* V131 tmp115 [V131 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP -;* V132 tmp116 [V132 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP -;* V133 tmp117 [V133 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP -;* V134 tmp118 [V134 ] ( 0, 0 ) byref -> zero-ref "field V80._reference (fldOffset=0x0)" P-INDEP -;* V135 tmp119 [V135 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP -;* V136 tmp120 [V136 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP -;* V137 tmp121 [V137 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP -;* V138 tmp122 [V138 ] ( 0, 0 ) byref -> zero-ref "field V87._reference (fldOffset=0x0)" P-INDEP -;* V139 tmp123 [V139 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP -;* V140 tmp124 [V140 ] ( 0, 0 ) byref -> zero-ref "field V93._reference (fldOffset=0x0)" P-INDEP -;* V141 tmp125 [V141 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0x8)" P-INDEP -;* V142 tmp126 [V142 ] ( 0, 0 ) byref -> zero-ref "field V98._reference (fldOffset=0x0)" P-INDEP -;* V143 tmp127 [V143 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP -;* V144 tmp128 [V144 ] ( 0, 0 ) byref -> zero-ref "field V100._reference (fldOffset=0x0)" P-INDEP -;* V145 tmp129 [V145 ] ( 0, 0 ) int -> zero-ref "field V100._length (fldOffset=0x8)" P-INDEP -;* V146 tmp130 [V146 ] ( 0, 0 ) byref -> zero-ref "field V102._reference (fldOffset=0x0)" P-INDEP -;* V147 tmp131 [V147 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP -;* V148 tmp132 [V148 ] ( 0, 0 ) byref -> zero-ref "field V106._reference (fldOffset=0x0)" P-INDEP -;* V149 tmp133 [V149 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP -; V150 tmp134 [V150,T61] ( 2, 4 ) byref -> rdi "field V107._reference (fldOffset=0x0)" P-INDEP -; V151 tmp135 [V151,T63] ( 2, 4 ) int -> rsi "field V107._length (fldOffset=0x8)" P-INDEP -; V152 tmp136 [V152,T05] ( 3, 48 ) ref -> rdi "field V117._hashSet (fldOffset=0x0)" P-INDEP -;* V153 tmp137 [V153,T23] ( 0, 0 ) ref -> zero-ref "field V117._current (fldOffset=0x8)" P-INDEP -; V154 tmp138 [V154,T08] ( 2, 32 ) int -> rsi "field V117._version (fldOffset=0x10)" P-INDEP -;* V155 tmp139 [V155,T24] ( 0, 0 ) int -> zero-ref "field V117._index (fldOffset=0x14)" P-INDEP -;* V156 tmp140 [V156,T69] ( 0, 0 ) ref -> zero-ref "V22.[000..008)" -;* V157 tmp141 [V157 ] ( 0, 0 ) ref -> zero-ref "V22.[008..016)" -;* V158 tmp142 [V158 ] ( 0, 0 ) int -> zero-ref "V22.[016..020)" -;* V159 tmp143 [V159 ] ( 0, 0 ) ubyte -> zero-ref "V22.[020..021)" -;* V160 tmp144 [V160 ] ( 0, 0 ) byref -> zero-ref "V22.[024..032)" -;* V161 tmp145 [V161 ] ( 0, 0 ) int -> zero-ref "V22.[032..036)" -;* V162 tmp146 [V162 ] ( 0, 0 ) ref -> zero-ref "V115.[000..008)" -; V163 tmp147 [V163,T64] ( 2, 4 ) int -> rsi "V115.[008..012)" -;* V164 tmp148 [V164 ] ( 0, 0 ) int -> zero-ref "V115.[012..016)" -;* V165 tmp149 [V165 ] ( 0, 0 ) int -> zero-ref "V115.[016..020)" -; V166 tmp150 [V166,T46] ( 3, 6 ) struct (16) [rbp-0xD0] do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Guid> -; V167 tmp151 [V167,T62] ( 2, 4 ) ref -> rbx single-def "argument with side effect" -; V168 tmp152 [V168,T11] ( 3, 24 ) ref -> rdi "arr expr" -; V169 tmp153 [V169,T78] ( 2, 0 ) ref -> rsi "argument with side effect" -; V170 tmp154 [V170,T30] ( 3, 12 ) struct ( 8) [rbp-0xD8] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]> -; V171 tmp155 [V171,T39] ( 2, 8.00) int -> rsi "argument with side effect" -; V172 tmp156 [V172,T00] ( 2,256 ) ref -> rsi "argument with side effect" -; V173 PSPSym [V173,T77] ( 1, 1 ) long -> [rbp-0x110] do-not-enreg[V] "PSPSym" -;* V174 cse0 [V174,T75] ( 0, 0 ) long -> zero-ref "CSE - conservative" -; V175 cse1 [V175,T48] ( 3, 5.93) ref -> r13 "CSE - conservative" -; V176 cse2 [V176,T02] ( 3, 96 ) long -> r14 "CSE - aggressive" -; V177 cse3 [V177,T14] ( 3, 20 ) long -> r15 "CSE - moderate"
+;* V78 tmp62 [V78,T64] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V79 tmp63 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]> +;* V80 tmp64 [V80 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +; V81 tmp65 [V81,T41] ( 2, 7.97) byref -> rdi "Inlining Arg" +; V82 tmp66 [V82,T26] ( 3, 12 ) ref -> rsi class-hnd exact "Inlining Arg" <<unknown class>> +;* V83 tmp67 [V83 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]> +; V84 tmp68 [V84,T21] ( 4, 16.00) int -> rdi "Inlining Arg" +;* V85 tmp69 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]> +; V86 tmp70 [V86,T29] ( 3, 12.00) int -> [rbp-0xA0] spill-single-def "Inlining Arg" +; V87 tmp71 [V87,T40] ( 2, 7.98) byref -> r12 "Inlining Arg" +;* V88 tmp72 [V88 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V89 tmp73 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V90 tmp74 [V90,T65] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V91 tmp75 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]> +;* V92 tmp76 [V92 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +; V93 tmp77 [V93,T42] ( 2, 7.97) byref -> rdi "Inlining Arg" +;* V94 tmp78 [V94 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String> +;* V95 tmp79 [V95 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]> +; V96 tmp80 [V96,T59] ( 2, 4 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.String> +;* V97 tmp81 [V97 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]> +; V98 tmp82 [V98,T22] ( 4, 16 ) int -> r12 "Inlining Arg" +;* V99 tmp83 [V99 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]> +; V100 tmp84 [V100,T36] ( 2, 8 ) byref -> [rbp-0x118] spill-single-def "Inlining Arg" +;* V101 tmp85 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V102 tmp86 [V102 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V103 tmp87 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]> +;* V104 tmp88 [V104 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]> +;* V105 tmp89 [V105 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" +;* V106 tmp90 [V106 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +;* V107 tmp91 [V107 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V108 tmp92 [V108 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +; V109 tmp93 [V109,T46] ( 3, 5.93) ref -> rsi class-hnd "Inline stloc first use temp" <ushort[]> +;* V110 tmp94 [V110 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ushort]>
...

+5 (+2.04%) : 30861.dasm - System.Globalization.TextInfo:ToUpperOrdinal(ushort):ushort (FullOpts)

@@ -8,7 +8,7 @@ ; 1 inlinees with PGO data; 8 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> rdi single-def
+; V00 arg0 [V00,T00] ( 4, 3.50) ushort -> rbx single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp" ;* V03 tmp2 [V03 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" @@ -19,8 +19,8 @@ ;* V08 tmp7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]> ;* V09 tmp8 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]> ; V10 tmp9 [V10,T06] ( 4, 2.50) ushort -> rax "Inline return value spill temp"
-; V11 tmp10 [V11,T02] ( 5, 3.50) int -> r15 "Inline stloc first use temp" -; V12 tmp11 [V12,T03] ( 6, 3 ) ref -> r14 class-hnd "Inline stloc first use temp" <ushort[]>
+; V11 tmp10 [V11,T01] ( 5, 3.50) int -> r14 "Inline stloc first use temp" +; V12 tmp11 [V12,T03] ( 6, 3 ) ref -> r13 class-hnd "Inline stloc first use temp" <ushort[]>
;* V13 tmp12 [V13 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP ;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP ;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP @@ -29,25 +29,26 @@ ;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP ; V19 tmp18 [V19,T04] ( 3, 3 ) ref -> rdi single-def "arr expr" ; V20 tmp19 [V20,T05] ( 3, 3 ) ref -> rdi single-def "arr expr"
-; V21 cse0 [V21,T07] ( 3, 1.50) int -> rax "CSE - moderate" -; V22 cse1 [V22,T01] ( 6, 4 ) int -> rbx "CSE - aggressive"
+; V21 cse0 [V21,T02] ( 5, 3.50) int -> r15 "CSE - aggressive" +; V22 cse1 [V22,T07] ( 3, 1.50) int -> rax "CSE - moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M59106_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp push r15 push r14
+ push r13
push rbx
- push rax
lea rbp, [rsp+0x20]
- ;; size=12 bbWeight=1 PerfScore 5.50
+ mov ebx, edi + ;; size=15 bbWeight=1 PerfScore 5.75
G_M59106_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movzx rbx, di - mov r15d, ebx - sar r15d, 8
+ movzx r15, bx + mov r14d, r15d + sar r14d, 8
jne SHORT G_M59106_IG05
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.00
G_M59106_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref test byte ptr [(reloc)], 1 ; global ptr je G_M59106_IG11 @@ -56,12 +57,12 @@ G_M59106_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> mov rdi, gword ptr [rdi] ; gcrRegs +[rdi]
- cmp ebx, dword ptr [rdi+0x08]
+ cmp r15d, dword ptr [rdi+0x08]
jae G_M59106_IG10
- mov esi, ebx
+ mov esi, r15d
movzx rax, word ptr [rdi+2*rsi+0x10] jmp SHORT G_M59106_IG09
- ;; size=31 bbWeight=0.50 PerfScore 5.25
+ ;; size=33 bbWeight=0.50 PerfScore 5.25
G_M59106_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] test byte ptr [(reloc)], 1 ; global ptr @@ -71,46 +72,46 @@ G_M59106_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field> mov rdi, gword ptr [rdi] ; gcrRegs +[rdi]
- cmp r15d, dword ptr [rdi+0x08]
+ cmp r14d, dword ptr [rdi+0x08]
jae SHORT G_M59106_IG10
- mov esi, r15d - mov r14, gword ptr [rdi+8*rsi+0x10] - ; gcrRegs +[r14]
+ mov esi, r14d + mov r13, gword ptr [rdi+8*rsi+0x10] + ; gcrRegs +[r13]
mov rdi, 0xD1FFAB1E ; gcrRegs -[rdi] mov esi, 155 call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- cmp r14, gword ptr [rdi]
+ cmp r13, gword ptr [rdi]
jne SHORT G_M59106_IG07
- mov eax, ebx
+ mov eax, r15d
jmp SHORT G_M59106_IG09
- ;; size=66 bbWeight=0.50 PerfScore 8.25 -G_M59106_IG07: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz - test r14, r14
+ ;; size=67 bbWeight=0.50 PerfScore 8.25 +G_M59106_IG07: ; bbWeight=0.50, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz + test r13, r13
jne SHORT G_M59106_IG08
- mov edi, r15d
+ mov edi, r14d
call [System.Globalization.OrdinalCasing:InitOrdinalCasingPage(int):ushort[]]
- ; gcrRegs -[r14] +[rax] - mov r14, rax - ; gcrRegs +[r14]
+ ; gcrRegs -[r13] +[rax] + mov r13, rax + ; gcrRegs +[r13]
;; size=17 bbWeight=0.50 PerfScore 2.38
-G_M59106_IG08: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+G_M59106_IG08: ; bbWeight=0.50, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] movzx rax, bl
- cmp eax, dword ptr [r14+0x08]
+ cmp eax, dword ptr [r13+0x08]
jae SHORT G_M59106_IG10
- movzx rax, word ptr [r14+2*rax+0x10]
+ movzx rax, word ptr [r13+2*rax+0x10]
;; size=15 bbWeight=0.50 PerfScore 3.12 G_M59106_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[r14] - add rsp, 8
+ ; gcrRegs -[r13]
pop rbx
+ pop r13
pop r14 pop r15 pop rbp ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=9 bbWeight=1 PerfScore 3.50
G_M59106_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 @@ -127,7 +128,7 @@ G_M59106_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref jmp G_M59106_IG06 ;; size=25 bbWeight=0 PerfScore 0.00
-; Total bytes of code 245, prolog size 12, PerfScore 33.75, instruction count 59, allocated bytes for code 245 (MethodHash=3335191d) for method System.Globalization.TextInfo:ToUpperOrdinal(ushort):ushort (FullOpts)
+; Total bytes of code 250, prolog size 13, PerfScore 34.25, instruction count 60, allocated bytes for code 250 (MethodHash=3335191d) for method System.Globalization.TextInfo:ToUpperOrdinal(ushort):ushort (FullOpts)
; ============================================================ Unwind Info: @@ -135,13 +136,13 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07
+ SizeOfProlog : 0x08
CountOfUnwindCodes: 5 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13)
CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+4 (+5.26%) : 61696.dasm - ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(ulong,ushort) (FullOpts)

@@ -8,14 +8,14 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 6, 6 ) long -> rdi single-def
-; V01 arg1 [V01,T04] ( 3, 3 ) ushort -> rsi single-def
+; V01 arg1 [V01,T03] ( 4, 4 ) ushort -> rsi single-def
; V02 loc0 [V02,T01] ( 6, 6 ) int -> rax ; V03 loc1 [V03,T02] ( 6, 6 ) int -> rcx ;* V04 loc2 [V04 ] ( 0, 0 ) int -> zero-ref ;* V05 loc3 [V05 ] ( 0, 0 ) int -> zero-ref ;* V06 loc4 [V06 ] ( 0, 0 ) int -> zero-ref ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 cse0 [V08,T03] ( 5, 5 ) int -> rdx "CSE - aggressive"
+; V08 cse0 [V08,T04] ( 4, 4 ) int -> rdx "CSE - aggressive"
; ; Lcl frame size = 0 @@ -29,29 +29,28 @@ G_M34447_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref and eax, -0x410 and ecx, -0x7100 movzx rdx, si
- mov esi, edx - and esi, 0xF000 - shr esi, 12 - or esi, eax
+ mov r8d, edx + and r8d, 0xF000 + shr r8d, 12 + or r8d, eax
mov eax, edx and eax, 0x800 shr eax, 1
- or eax, esi - mov esi, edx - and esi, 0x700 - shl esi, 4 - or esi, ecx - movzx rcx, dl - or ecx, esi
+ or eax, r8d + and edx, 0x700 + shl edx, 4 + or edx, ecx + movzx rcx, sil + or ecx, edx
mov word ptr [rdi], ax mov word ptr [rdi+0x02], cx
- ;; size=70 bbWeight=1 PerfScore 11.00
+ ;; size=74 bbWeight=1 PerfScore 10.75
G_M34447_IG03: ; bbWeight=1, epilog, nogc, extend pop rbp ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 76, prolog size 4, PerfScore 13.75, instruction count 25, allocated bytes for code 76 (MethodHash=1b677970) for method ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(ulong,ushort) (FullOpts)
+; Total bytes of code 80, prolog size 4, PerfScore 13.50, instruction count 24, allocated bytes for code 80 (MethodHash=1b677970) for method ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(ulong,ushort) (FullOpts)
; ============================================================ Unwind Info:

libraries_tests.run.linux.x64.Release.mch

-18 (-62.07%) : 496410.dasm - TestType:meth1():int (Tier0)

@@ -14,21 +14,14 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 1 - inc eax - mov ecx, 1 - inc ecx - inc ecx - add eax, ecx - add eax, 2 - inc eax - ;; size=23 bbWeight=1 PerfScore 2.00
+ mov eax, 8 + ;; size=5 bbWeight=1 PerfScore 0.25
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend pop rbp ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 29, prolog size 4, PerfScore 4.75, instruction count 12, allocated bytes for code 29 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================ Unwind Info:

-42 (-60.87%) : 56591.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (Tier1)

@@ -7,58 +7,28 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rdi this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 5, 5 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M44061_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M44061_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x20] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=59 bbWeight=1 PerfScore 7.50
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M44061_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x10], rax + mov gword ptr [rdi+0x18], rax + mov gword ptr [rdi+0x20], rax + ;; size=26 bbWeight=1 PerfScore 4.25
G_M44061_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 69, prolog size 3, PerfScore 11.75, instruction count 20, allocated bytes for code 69 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (Tier1)
+; Total bytes of code 27, prolog size 0, PerfScore 5.25, instruction count 6, allocated bytes for code 27 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (Tier1)
; ============================================================ Unwind Info: @@ -66,10 +36,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

-34 (-59.65%) : 139933.dasm - Microsoft.Extensions.Hosting.Internal.HostingEnvironment:.ctor():this (Tier1)

@@ -8,51 +8,27 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <Microsoft.Extensions.Hosting.Internal.HostingEnvironment>
+; V00 this [V00,T00] ( 5, 5 ) ref -> rdi this class-hnd single-def <Microsoft.Extensions.Hosting.Internal.HostingEnvironment>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 4, 4 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 4, 4 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M19253_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M19253_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=47 bbWeight=1 PerfScore 5.75
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M19253_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x10], rax + mov gword ptr [rdi+0x18], rax + ;; size=22 bbWeight=1 PerfScore 3.25
G_M19253_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 57, prolog size 3, PerfScore 10.00, instruction count 17, allocated bytes for code 57 (MethodHash=2188b4ca) for method Microsoft.Extensions.Hosting.Internal.HostingEnvironment:.ctor():this (Tier1)
+; Total bytes of code 23, prolog size 0, PerfScore 4.25, instruction count 5, allocated bytes for code 23 (MethodHash=2188b4ca) for method Microsoft.Extensions.Hosting.Internal.HostingEnvironment:.ctor():this (Tier1)
; ============================================================ Unwind Info: @@ -60,10 +36,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

+6 (+6.82%) : 296448.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)

@@ -29,8 +29,10 @@ G_M34188_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] mov eax, dword ptr [rbp-0x0C] sar eax, 16
+ movzx rax, ax
movsx rdx, ax mov eax, dword ptr [rbp-0x0C]
+ movzx rax, ax
movsx rsi, ax lea rdi, [rbp-0x20] call [<unknown method>] @@ -38,14 +40,14 @@ G_M34188_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rsi, qword ptr [rbp-0x20] call [<unknown method>] nop
- ;; size=55 bbWeight=1 PerfScore 16.25
+ ;; size=61 bbWeight=1 PerfScore 16.75
G_M34188_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 32 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 88, prolog size 20, PerfScore 24.00, instruction count 25, allocated bytes for code 88 (MethodHash=f76a7a73) for method System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
+; Total bytes of code 94, prolog size 20, PerfScore 24.50, instruction count 27, allocated bytes for code 94 (MethodHash=f76a7a73) for method System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
; ============================================================ Unwind Info:

+3 (+11.54%) : 296451.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)

@@ -19,15 +19,16 @@ G_M7017_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M7017_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbp-0x04] sar eax, 16
+ movzx rax, ax
cwde
- ;; size=7 bbWeight=1 PerfScore 1.75
+ ;; size=10 bbWeight=1 PerfScore 2.00
G_M7017_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 26, prolog size 10, PerfScore 6.25, instruction count 10, allocated bytes for code 26 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
+; Total bytes of code 29, prolog size 10, PerfScore 6.50, instruction count 11, allocated bytes for code 29 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
; ============================================================ Unwind Info:

+3 (+13.04%) : 296450.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)

@@ -18,15 +18,16 @@ G_M39123_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=13 bbWeight=1 PerfScore 2.75 G_M39123_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov eax, dword ptr [rbp-0x04]
+ movzx rax, ax
cwde
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=7 bbWeight=1 PerfScore 1.50
G_M39123_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 23, prolog size 10, PerfScore 5.75, instruction count 9, allocated bytes for code 23 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
+; Total bytes of code 26, prolog size 10, PerfScore 6.00, instruction count 10, allocated bytes for code 26 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
; ============================================================ Unwind Info:

librariestestsnotieredcompilation.run.linux.x64.Release.mch

-42 (-60.87%) : 4216.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)

@@ -7,58 +7,28 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rdi this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 5, 5 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M44061_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M44061_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x20] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=59 bbWeight=1 PerfScore 7.50
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M44061_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x10], rax + mov gword ptr [rdi+0x18], rax + mov gword ptr [rdi+0x20], rax + ;; size=26 bbWeight=1 PerfScore 4.25
G_M44061_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 69, prolog size 3, PerfScore 11.75, instruction count 20, allocated bytes for code 69 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
+; Total bytes of code 27, prolog size 0, PerfScore 5.25, instruction count 6, allocated bytes for code 27 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
; ============================================================ Unwind Info: @@ -66,10 +36,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

-34 (-59.65%) : 50578.dasm - Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator+LoggerParameter:.ctor():this (FullOpts)

@@ -8,51 +8,27 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator+LoggerParameter>
+; V00 this [V00,T00] ( 5, 5 ) ref -> rdi this class-hnd single-def <Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator+LoggerParameter>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 4, 4 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 4, 4 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M22718_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M22718_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=47 bbWeight=1 PerfScore 5.75
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M22718_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x10], rax + mov gword ptr [rdi+0x18], rax + ;; size=22 bbWeight=1 PerfScore 3.25
G_M22718_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 57, prolog size 3, PerfScore 10.00, instruction count 17, allocated bytes for code 57 (MethodHash=af8fa741) for method Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator+LoggerParameter:.ctor():this (FullOpts)
+; Total bytes of code 23, prolog size 0, PerfScore 4.25, instruction count 5, allocated bytes for code 23 (MethodHash=af8fa741) for method Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator+LoggerParameter:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -60,10 +36,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

-34 (-59.65%) : 248598.dasm - System.Text.Json.Serialization.Tests.RequiredKeywordTests+PersonWithRequiredMembersAndSetsRequiredMembers:.ctor():this (FullOpts)

@@ -8,51 +8,27 @@ ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <System.Text.Json.Serialization.Tests.RequiredKeywordTests+PersonWithRequiredMembersAndSetsRequiredMembers>
+; V00 this [V00,T00] ( 5, 5 ) ref -> rdi this class-hnd single-def <System.Text.Json.Serialization.Tests.RequiredKeywordTests+PersonWithRequiredMembersAndSetsRequiredMembers>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 4, 4 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 4, 4 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M63599_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M63599_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=47 bbWeight=1 PerfScore 5.75
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M63599_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x10], rax + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x18], rax + ;; size=22 bbWeight=1 PerfScore 3.25
G_M63599_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 57, prolog size 3, PerfScore 10.00, instruction count 17, allocated bytes for code 57 (MethodHash=ffe20790) for method System.Text.Json.Serialization.Tests.RequiredKeywordTests+PersonWithRequiredMembersAndSetsRequiredMembers:.ctor():this (FullOpts)
+; Total bytes of code 23, prolog size 0, PerfScore 4.25, instruction count 5, allocated bytes for code 23 (MethodHash=ffe20790) for method System.Text.Json.Serialization.Tests.RequiredKeywordTests+PersonWithRequiredMembersAndSetsRequiredMembers:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -60,10 +36,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

+24 (+2.66%) : 214448.dasm - System.Security.Cryptography.Cose.Tests.CoseHeaderMapTests+<>cDisplayClass20:<SetValueKnownHeadersThrowIfIncorrectValue>b1():this (FullOpts)

@@ -5,20 +5,20 @@ ; rbp based frame ; partially interruptible ; No matching PGO data
-; 7 inlinees with PGO data; 44 single block inlinees; 8 inlinees without PGO data
+; 7 inlinees with PGO data; 46 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments ; ; V00 this [V00,T08] ( 4, 4 ) ref -> rdi this class-hnd single-def <System.Security.Cryptography.Cose.Tests.CoseHeaderMapTests+<>c__DisplayClass2_0> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T03] ( 8, 9.00) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.Cose.CoseHeaderMap> -; V03 tmp2 [V03 ] ( 13, 16.00) struct (16) [rbp-0x38] do-not-enreg[SFA] multireg-arg must-init "impAppendStmt" <System.Security.Cryptography.Cose.CoseHeaderLabel>
+; V02 tmp1 [V02,T03] ( 10, 11.00) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.Cose.CoseHeaderMap> +;* V03 tmp2 [V03 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Security.Cryptography.Cose.CoseHeaderLabel>
;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.Cose.CoseHeaderLabel>
+; V05 tmp4 [V05 ] ( 15, 18.01) struct (16) [rbp-0x38] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.Cose.CoseHeaderLabel>
;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V07 tmp6 [V07 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V08 tmp7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]> ; V09 tmp8 [V09,T07] ( 4, 6.00) int -> r14 "Inlining Arg"
-; V10 tmp9 [V10,T18] ( 3, 3.00) struct (16) [rbp-0x48] do-not-enreg[SAR] multireg-arg multireg-ret must-init "spilled call-like call argument" <System.Security.Cryptography.Cose.CoseHeaderValue>
+; V10 tmp9 [V10,T09] ( 5, 5.01) struct (16) [rbp-0x48] do-not-enreg[SAR] multireg-arg multireg-ret must-init "spilled call-like call argument" <System.Security.Cryptography.Cose.CoseHeaderValue>
;* V11 tmp10 [V11 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "spilled call-like call argument" <System.Security.Cryptography.Cose.CoseHeaderValue> ;* V12 tmp11 [V12 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "spilled call-like call argument" <System.Security.Cryptography.Cose.CoseHeaderValue> ;* V13 tmp12 [V13 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inline return value spill temp" <System.Security.Cryptography.Cose.CoseHeaderValue> @@ -29,7 +29,7 @@ ;* V18 tmp17 [V18 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]> ;* V19 tmp18 [V19 ] ( 0, 0 ) ref -> zero-ref ;* V20 tmp19 [V20 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[int]>
-;* V21 tmp20 [V21,T35] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
+;* V21 tmp20 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <ubyte[]>
;* V22 tmp21 [V22 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlyMemory`1[ubyte]> ; V23 tmp22 [V23,T22] ( 5, 2.50) ref -> r15 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]> ;* V24 tmp23 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]> @@ -48,7 +48,7 @@ ;* V37 tmp36 [V37 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]> ;* V38 tmp37 [V38 ] ( 0, 0 ) ref -> zero-ref ;* V39 tmp38 [V39 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[int]>
-;* V40 tmp39 [V40,T36] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
+;* V40 tmp39 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <ubyte[]>
;* V41 tmp40 [V41 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlyMemory`1[ubyte]> ; V42 tmp41 [V42,T23] ( 5, 2.50) ref -> r15 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]> ;* V43 tmp42 [V43 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]> @@ -59,36 +59,36 @@ ;* V48 tmp47 [V48 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Security.Cryptography.Cose.CoseHeaderValue> ; V49 tmp48 [V49,T20] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Security.Cryptography.Cose.CoseHeaderLabel,System.Security.Cryptography.Cose.CoseHeaderValue]> ;* V50 tmp49 [V50 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V51 tmp50 [V51,T17] ( 3, 3.00) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
+; V51 tmp50 [V51,T18] ( 3, 3.00) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
;* V52 tmp51 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass5_0[int]> ; V53 tmp52 [V53,T24] ( 3, 1.50) ref -> r12 class-hnd exact single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass5_0[int]>
-; V54 tmp53 [V54,T15] ( 4, 4.01) ref -> [rbp-0x78] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>> -; V55 tmp54 [V55,T16] ( 4, 4.01) ref -> [rbp-0x80] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V54 tmp53 [V54,T16] ( 4, 4.01) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>> +; V55 tmp54 [V55,T17] ( 4, 4.01) ref -> [rbp-0x78] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
;* V56 tmp55 [V56 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Inline return value spill temp" <System.Security.Cryptography.Cose.CoseHeaderValue>
-; V57 tmp56 [V57,T06] ( 7, 7.01) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Cbor.CborWriter>
+; V57 tmp56 [V57,T06] ( 8, 8.01) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Cbor.CborWriter>
;* V58 tmp57 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Formats.Cbor.CborWriter> ;* V59 tmp58 [V59 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]> ;* V60 tmp59 [V60 ] ( 0, 0 ) ref -> zero-ref single-def
-; V61 tmp60 [V61 ] ( 3, 3.00) struct ( 8) [rbp-0x70] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
+;* V61 tmp60 [V61 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
;* V62 tmp61 [V62 ] ( 0, 0 ) ref -> zero-ref ;* V63 tmp62 [V63 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[int]>
-;* V64 tmp63 [V64,T34] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
+;* V64 tmp63 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <ubyte[]>
;* V65 tmp64 [V65 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "Inline ldloca(s) first use temp" <System.Security.Cryptography.Cose.CoseHeaderValue>
-; V66 tmp65 [V66,T00] ( 11, 11.00) ref -> [rbp-0x38] do-not-enreg[] "field V03.<LabelAsString>k__BackingField (fldOffset=0x0)" P-DEP -; V67 tmp66 [V67,T01] ( 11, 11.00) int -> [rbp-0x30] do-not-enreg[] "field V03.<LabelAsInt32>k__BackingField (fldOffset=0x8)" P-DEP -; V68 tmp67 [V68,T02] ( 11, 11.00) int -> [rbp-0x2C] do-not-enreg[] "field V03.<EncodedSize>k__BackingField (fldOffset=0xc)" P-DEP
+;* V66 tmp65 [V66 ] ( 0, 0 ) ref -> zero-ref single-def "field V03.<LabelAsString>k__BackingField (fldOffset=0x0)" P-INDEP +;* V67 tmp66 [V67 ] ( 0, 0 ) int -> zero-ref "field V03.<LabelAsInt32>k__BackingField (fldOffset=0x8)" P-INDEP +;* V68 tmp67 [V68 ] ( 0, 0 ) int -> zero-ref "field V03.<EncodedSize>k__BackingField (fldOffset=0xc)" P-INDEP
; V69 tmp68 [V69,T21] ( 4, 2.50) byref -> r15 single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V70 tmp69 [V70,T31] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP -;* V71 tmp70 [V71,T30] ( 0, 0 ) ref -> zero-ref single-def "field V05.<LabelAsString>k__BackingField (fldOffset=0x0)" P-INDEP -;* V72 tmp71 [V72,T32] ( 0, 0 ) int -> zero-ref "field V05.<LabelAsInt32>k__BackingField (fldOffset=0x8)" P-INDEP -;* V73 tmp72 [V73,T33] ( 0, 0 ) int -> zero-ref "field V05.<EncodedSize>k__BackingField (fldOffset=0xc)" P-INDEP
+;* V70 tmp69 [V70,T30] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP +; V71 tmp70 [V71,T00] ( 13, 13.01) ref -> [rbp-0x38] do-not-enreg[] "field V05.<LabelAsString>k__BackingField (fldOffset=0x0)" P-DEP +; V72 tmp71 [V72,T01] ( 13, 13.01) int -> [rbp-0x30] do-not-enreg[] "field V05.<LabelAsInt32>k__BackingField (fldOffset=0x8)" P-DEP +; V73 tmp72 [V73,T02] ( 13, 13.01) int -> [rbp-0x2C] do-not-enreg[] "field V05.<EncodedSize>k__BackingField (fldOffset=0xc)" P-DEP
;* V74 tmp73 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP ;* V75 tmp74 [V75 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP ;* V76 tmp75 [V76 ] ( 0, 0 ) ref -> zero-ref "field V16._object (fldOffset=0x0)" P-INDEP ;* V77 tmp76 [V77 ] ( 0, 0 ) int -> zero-ref "field V16._index (fldOffset=0x8)" P-INDEP ;* V78 tmp77 [V78 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0xc)" P-INDEP
-;* V79 tmp78 [V79,T37] ( 0, 0 ) ubyte -> zero-ref "field V18.hasValue (fldOffset=0x0)" P-INDEP -;* V80 tmp79 [V80,T38] ( 0, 0 ) int -> zero-ref "field V18.value (fldOffset=0x4)" P-INDEP
+;* V79 tmp78 [V79,T33] ( 0, 0 ) ubyte -> zero-ref "field V18.hasValue (fldOffset=0x0)" P-INDEP +;* V80 tmp79 [V80,T34] ( 0, 0 ) int -> zero-ref "field V18.value (fldOffset=0x4)" P-INDEP
;* V81 tmp80 [V81 ] ( 0, 0 ) ubyte -> zero-ref "field V20.hasValue (fldOffset=0x0)" P-INDEP ;* V82 tmp81 [V82 ] ( 0, 0 ) int -> zero-ref "field V20.value (fldOffset=0x4)" P-INDEP ;* V83 tmp82 [V83 ] ( 0, 0 ) ref -> zero-ref "field V22._object (fldOffset=0x0)" P-INDEP @@ -101,17 +101,17 @@ ;* V90 tmp89 [V90 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0xc)" P-INDEP ; V91 tmp90 [V91,T26] ( 2, 1 ) byref -> rsi "field V26._reference (fldOffset=0x0)" P-INDEP ; V92 tmp91 [V92,T28] ( 2, 1 ) int -> rdx "field V26._length (fldOffset=0x8)" P-INDEP
-; V93 tmp92 [V93,T09] ( 5, 4.50) ref -> [rbp-0x58] do-not-enreg[] "field V27._object (fldOffset=0x0)" P-DEP -; V94 tmp93 [V94,T11] ( 5, 4.50) int -> [rbp-0x50] do-not-enreg[] "field V27._index (fldOffset=0x8)" P-DEP -; V95 tmp94 [V95,T12] ( 5, 4.50) int -> [rbp-0x4C] do-not-enreg[] "field V27._length (fldOffset=0xc)" P-DEP
+; V93 tmp92 [V93,T10] ( 5, 4.50) ref -> [rbp-0x58] do-not-enreg[] "field V27._object (fldOffset=0x0)" P-DEP +; V94 tmp93 [V94,T12] ( 5, 4.50) int -> [rbp-0x50] do-not-enreg[] "field V27._index (fldOffset=0x8)" P-DEP +; V95 tmp94 [V95,T13] ( 5, 4.50) int -> [rbp-0x4C] do-not-enreg[] "field V27._length (fldOffset=0xc)" P-DEP
;* V96 tmp95 [V96 ] ( 0, 0 ) ref -> zero-ref "field V28._object (fldOffset=0x0)" P-INDEP ;* V97 tmp96 [V97 ] ( 0, 0 ) int -> zero-ref "field V28._index (fldOffset=0x8)" P-INDEP ;* V98 tmp97 [V98 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0xc)" P-INDEP ;* V99 tmp98 [V99 ] ( 0, 0 ) ref -> zero-ref "field V35._object (fldOffset=0x0)" P-INDEP ;* V100 tmp99 [V100 ] ( 0, 0 ) int -> zero-ref "field V35._index (fldOffset=0x8)" P-INDEP ;* V101 tmp100 [V101 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0xc)" P-INDEP
-;* V102 tmp101 [V102,T39] ( 0, 0 ) ubyte -> zero-ref "field V37.hasValue (fldOffset=0x0)" P-INDEP -;* V103 tmp102 [V103,T40] ( 0, 0 ) int -> zero-ref "field V37.value (fldOffset=0x4)" P-INDEP
+;* V102 tmp101 [V102,T35] ( 0, 0 ) ubyte -> zero-ref "field V37.hasValue (fldOffset=0x0)" P-INDEP +;* V103 tmp102 [V103,T36] ( 0, 0 ) int -> zero-ref "field V37.value (fldOffset=0x4)" P-INDEP
;* V104 tmp103 [V104 ] ( 0, 0 ) ubyte -> zero-ref "field V39.hasValue (fldOffset=0x0)" P-INDEP ;* V105 tmp104 [V105 ] ( 0, 0 ) int -> zero-ref "field V39.value (fldOffset=0x4)" P-INDEP ;* V106 tmp105 [V106 ] ( 0, 0 ) ref -> zero-ref "field V41._object (fldOffset=0x0)" P-INDEP @@ -124,14 +124,14 @@ ;* V113 tmp112 [V113 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0xc)" P-INDEP ; V114 tmp113 [V114,T27] ( 2, 1 ) byref -> rsi "field V45._reference (fldOffset=0x0)" P-INDEP ; V115 tmp114 [V115,T29] ( 2, 1 ) int -> rdx "field V45._length (fldOffset=0x8)" P-INDEP
-; V116 tmp115 [V116,T10] ( 5, 4.50) ref -> [rbp-0x68] do-not-enreg[] "field V46._object (fldOffset=0x0)" P-DEP -; V117 tmp116 [V117,T13] ( 5, 4.50) int -> [rbp-0x60] do-not-enreg[] "field V46._index (fldOffset=0x8)" P-DEP -; V118 tmp117 [V118,T14] ( 5, 4.50) int -> [rbp-0x5C] do-not-enreg[] "field V46._length (fldOffset=0xc)" P-DEP
+; V116 tmp115 [V116,T11] ( 5, 4.50) ref -> [rbp-0x68] do-not-enreg[] "field V46._object (fldOffset=0x0)" P-DEP +; V117 tmp116 [V117,T14] ( 5, 4.50) int -> [rbp-0x60] do-not-enreg[] "field V46._index (fldOffset=0x8)" P-DEP +; V118 tmp117 [V118,T15] ( 5, 4.50) int -> [rbp-0x5C] do-not-enreg[] "field V46._length (fldOffset=0xc)" P-DEP
;* V119 tmp118 [V119 ] ( 0, 0 ) ref -> zero-ref "field V47._object (fldOffset=0x0)" P-INDEP ;* V120 tmp119 [V120 ] ( 0, 0 ) int -> zero-ref "field V47._index (fldOffset=0x8)" P-INDEP ;* V121 tmp120 [V121 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0xc)" P-INDEP
-; V122 tmp121 [V122 ] ( 3, 3.00) ubyte -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V61.hasValue (fldOffset=0x0)" P-DEP -; V123 tmp122 [V123 ] ( 3, 3.00) int -> [rbp-0x6C] do-not-enreg[X] addr-exposed "field V61.value (fldOffset=0x4)" P-DEP
+;* V122 tmp121 [V122,T31] ( 0, 0 ) ubyte -> zero-ref "field V61.hasValue (fldOffset=0x0)" P-INDEP +;* V123 tmp122 [V123,T32] ( 0, 0 ) int -> zero-ref "field V61.value (fldOffset=0x4)" P-INDEP
;* V124 tmp123 [V124 ] ( 0, 0 ) ubyte -> zero-ref "field V63.hasValue (fldOffset=0x0)" P-INDEP ;* V125 tmp124 [V125 ] ( 0, 0 ) int -> zero-ref "field V63.value (fldOffset=0x4)" P-INDEP ; V126 cse0 [V126,T25] ( 3, 1.50) ref -> rsi "CSE - moderate" @@ -187,8 +187,10 @@ G_M26149_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15 mov byte ptr [r14+0x60], 1 mov dword ptr [r14+0x64], 1 mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
mov gword ptr [r14+0x28], rsi mov rsi, r15
+ ; gcrRegs -[rsi]
; byrRegs +[rsi] xor edx, edx mov rdi, r14 @@ -270,8 +272,10 @@ G_M26149_IG06: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15 mov byte ptr [r14+0x60], 1 mov dword ptr [r14+0x64], 1 mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
mov gword ptr [r14+0x28], rsi mov rsi, r15
+ ; gcrRegs -[rsi]
; byrRegs +[rsi] xor edx, edx mov rdi, r14 @@ -345,7 +349,7 @@ G_M26149_IG07: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15 mov rdi, 0xD1FFAB1E ; <unknown class> ; gcrRegs -[rdi] call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x78], rax
+ mov gword ptr [rbp-0x70], rax
; GC ptr vars +{V54} lea rdi, bword ptr [rax+0x08] ; byrRegs +[rdi] @@ -355,13 +359,13 @@ G_M26149_IG07: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15 ; gcrRegs -[rax rsi r12] ; byrRegs -[rdi] mov rdi, 0xD1FFAB1E ; code for <unknown method>
- mov r12, gword ptr [rbp-0x78]
+ mov r12, gword ptr [rbp-0x70]
; gcrRegs +[r12] mov qword ptr [r12+0x18], rdi mov rdi, 0xD1FFAB1E ; <unknown class> call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax]
- mov gword ptr [rbp-0x80], rax
+ mov gword ptr [rbp-0x78], rax
; GC ptr vars +{V55} lea rdi, bword ptr [rax+0x10] ; byrRegs +[rdi] @@ -375,7 +379,7 @@ G_M26149_IG07: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15 xor esi, esi call [System.LazyHelper:Create(int,ubyte):System.LazyHelper] ; gcrRegs +[rax]
- mov r12, gword ptr [rbp-0x80]
+ mov r12, gword ptr [rbp-0x78]
; gcrRegs +[r12] lea rdi, bword ptr [r12+0x08] ; byrRegs +[rdi] @@ -410,16 +414,13 @@ G_M26149_IG08: ; bbWeight=0.50, extend ; gcrRegs -[rax] mov dword ptr [r14+0x54], 1 mov word ptr [r14+0x5A], 0
- xor edi, edi - mov qword ptr [rbp-0x70], rdi - lea rdi, [rbp-0x70] - mov esi, 1 - call [System.Nullable`1[int]:.ctor(int):this] - mov rsi, qword ptr [rbp-0x70] - mov qword ptr [r14+0x60], rsi
+ mov byte ptr [r14+0x60], 1 + mov dword ptr [r14+0x64], 1
mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
mov gword ptr [r14+0x28], rsi mov rsi, r15
+ ; gcrRegs -[rsi]
; byrRegs +[rsi] xor edx, edx mov rdi, r14 @@ -433,18 +434,32 @@ G_M26149_IG08: ; bbWeight=0.50, extend ; gcrRegs -[rdi r14] +[rax] mov gword ptr [rbp-0x48], rax mov qword ptr [rbp-0x40], rdx
- mov rcx, gword ptr [rbp-0x48] - ; gcrRegs +[rcx] - mov r8, qword ptr [rbp-0x40]
+ cmp byte ptr [rbx], bl + mov rdi, rbx + ; gcrRegs +[rdi] + call [System.Security.Cryptography.Cose.CoseHeaderMap:ValidateIsReadOnly():this] + ; gcrRegs -[rax rdi] + mov rdi, gword ptr [rbp-0x38] + ; gcrRegs +[rdi] + mov rsi, qword ptr [rbp-0x30] + mov rdx, gword ptr [rbp-0x48] + ; gcrRegs +[rdx] + mov rcx, qword ptr [rbp-0x40] + call [<unknown method>] + ; gcrRegs -[rdx rdi]
mov rsi, gword ptr [rbp-0x38] ; gcrRegs +[rsi] mov rdx, qword ptr [rbp-0x30]
- mov rdi, rbx
+ mov rcx, gword ptr [rbp-0x48] + ; gcrRegs +[rcx] + mov r8, qword ptr [rbp-0x40] + mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
+ mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.Security.Cryptography.Cose.CoseHeaderLabel,System.Security.Cryptography.Cose.CoseHeaderValue]:Add(System.Security.Cryptography.Cose.CoseHeaderLabel,System.Security.Cryptography.Cose.CoseHeaderValue):this
cmp dword ptr [rdi], edi
- call [System.Security.Cryptography.Cose.CoseHeaderMap:Add(System.Security.Cryptography.Cose.CoseHeaderLabel,System.Security.Cryptography.Cose.CoseHeaderValue):this] - ; gcrRegs -[rax rcx rbx rsi rdi] - ;; size=122 bbWeight=0.50 PerfScore 16.28
...

+39 (+2.96%) : 116907.dasm - System.Formats.Cbor.Tests.CborWriterTests:WriteDecimalSingleValueHappyPath(System.String,System.String) (FullOpts)

@@ -5,7 +5,7 @@ ; rbp based frame ; partially interruptible ; No matching PGO data
-; 10 inlinees with PGO data; 37 single block inlinees; 11 inlinees without PGO data
+; 10 inlinees with PGO data; 38 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments ; ; V00 arg0 [V00,T07] ( 3, 3 ) ref -> rdi class-hnd single-def <System.String> @@ -34,7 +34,7 @@ ;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]> ;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.Span`1[ubyte]> ; V25 tmp20 [V25 ] ( 16, 14.50) struct (32) [rbp-0x90] do-not-enreg[XSF] must-init addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp" <System.Number+NumberBuffer>
-; V26 tmp21 [V26,T62] ( 1, 1 ) int -> [rbp-0x94] do-not-enreg[V] "GSCookie dummy for inlinee"
+; V26 tmp21 [V26,T61] ( 1, 1 ) int -> [rbp-0x94] do-not-enreg[V] "GSCookie dummy for inlinee"
;* V27 tmp22 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]> ;* V28 tmp23 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg" @@ -53,7 +53,7 @@ ;* V42 tmp37 [V42 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]> ;* V43 tmp38 [V43 ] ( 0, 0 ) ref -> zero-ref ;* V44 tmp39 [V44 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[int]>
-;* V45 tmp40 [V45,T61] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
+;* V45 tmp40 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <ubyte[]>
;* V46 tmp41 [V46 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]> ; V47 tmp42 [V47,T44] ( 4, 2.00) ref -> r13 class-hnd "Inline return value spill temp" <ubyte[]> ; V48 tmp43 [V48,T47] ( 3, 1.50) ref -> r13 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]> @@ -63,12 +63,12 @@ ; V52 tmp47 [V52,T10] ( 3, 5.00) ref -> rbx class-hnd single-def "Inlining Arg" <ubyte[]> ;* V53 tmp48 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]> ;* V54 tmp49 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-; V55 tmp50 [V55,T01] ( 5, 6 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.String>
+; V55 tmp50 [V55,T02] ( 5, 6 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.String>
;* V56 tmp51 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[ubyte]> ;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]> ;* V58 tmp53 [V58 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]> ; V59 tmp54 [V59,T12] ( 6, 4 ) byref -> r13 "Inline stloc first use temp"
-; V60 tmp55 [V60,T04] ( 7, 5 ) int -> [rbp-0xAC] ptr "Inline stloc first use temp"
+; V60 tmp55 [V60,T05] ( 7, 5 ) int -> [rbp-0xAC] ptr "Inline stloc first use temp"
;* V61 tmp56 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ptr "Inline stloc first use temp" <System.Object> ;* V62 tmp57 [V62 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]> ;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>> @@ -84,7 +84,7 @@ ;* V73 tmp68 [V73 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]> ;* V74 tmp69 [V74 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]> ; V75 tmp70 [V75,T13] ( 6, 4 ) byref -> r14 "Inline stloc first use temp"
-; V76 tmp71 [V76,T05] ( 7, 5 ) int -> r13 "Inline stloc first use temp"
+; V76 tmp71 [V76,T06] ( 7, 5 ) int -> r13 "Inline stloc first use temp"
;* V77 tmp72 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ptr "Inline stloc first use temp" <System.Object> ;* V78 tmp73 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]> ;* V79 tmp74 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>> @@ -96,102 +96,111 @@ ;* V85 tmp80 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <ubyte[]> ; V86 tmp81 [V86,T29] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" ;* V87 tmp82 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V88 tmp83 [V88,T06] ( 5, 5 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V88 tmp83 [V88,T01] ( 6, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
;* V89 tmp84 [V89 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-;* V90 tmp85 [V90 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret single-def "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+;* V90 tmp85 [V90 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V91 tmp86 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]> ;* V92 tmp87 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]> ; V93 tmp88 [V93,T38] ( 2, 2 ) int -> r15 "Inlining Arg" ; V94 tmp89 [V94,T30] ( 2, 2 ) byref -> r14 single-def "Inlining Arg"
-; V95 tmp90 [V95,T20] ( 3, 3 ) int -> [rbp-0x60] do-not-enreg[] single-def "field V02._flags (fldOffset=0x0)" P-DEP -; V96 tmp91 [V96,T21] ( 3, 3 ) int -> [rbp-0x5C] do-not-enreg[] single-def "field V02._hi32 (fldOffset=0x4)" P-DEP -; V97 tmp92 [V97,T22] ( 3, 3 ) long -> [rbp-0x58] do-not-enreg[] single-def "field V02._lo64 (fldOffset=0x8)" P-DEP -;* V98 tmp93 [V98 ] ( 0, 0 ) ref -> zero-ref single-def ptr "field V07._object (fldOffset=0x0)" P-INDEP -;* V99 tmp94 [V99 ] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x8)" P-INDEP -;* V100 tmp95 [V100 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V07._length (fldOffset=0xc)" P-INDEP -;* V101 tmp96 [V101 ] ( 0, 0 ) ref -> zero-ref single-def ptr "field V08._object (fldOffset=0x0)" P-INDEP -;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref single-def "field V08._index (fldOffset=0x8)" P-INDEP -;* V103 tmp98 [V103 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V08._length (fldOffset=0xc)" P-INDEP -; V104 tmp99 [V104,T17] ( 5, 3.50) byref -> r14 single-def "field V10._reference (fldOffset=0x0)" P-INDEP -; V105 tmp100 [V105,T18] ( 5, 3 ) int -> r15 single-def "field V10._length (fldOffset=0x8)" P-INDEP -; V106 tmp101 [V106,T31] ( 2, 2 ) byref -> r14 single-def "field V11._reference (fldOffset=0x0)" P-INDEP -; V107 tmp102 [V107,T39] ( 2, 2 ) int -> r15 single-def "field V11._length (fldOffset=0x8)" P-INDEP -; V108 tmp103 [V108,T32] ( 2, 2 ) byref -> r14 single-def "field V12._reference (fldOffset=0x0)" P-INDEP -; V109 tmp104 [V109,T40] ( 2, 2 ) int -> r15 single-def "field V12._length (fldOffset=0x8)" P-INDEP -;* V110 tmp105 [V110 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP -;* V111 tmp106 [V111 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP -; V112 tmp107 [V112 ] ( 3, 2.50) int -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V19._flags (fldOffset=0x0)" P-DEP -; V113 tmp108 [V113 ] ( 3, 2.50) int -> [rbp-0x6C] do-not-enreg[X] addr-exposed "field V19._hi32 (fldOffset=0x4)" P-DEP -; V114 tmp109 [V114 ] ( 3, 2.50) long -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V19._lo64 (fldOffset=0x8)" P-DEP -; V115 tmp110 [V115,T33] ( 2, 2 ) byref -> rdx single-def "field V23._reference (fldOffset=0x0)" P-INDEP -;* V116 tmp111 [V116,T63] ( 0, 0 ) int -> zero-ref single-def ptr "field V23._length (fldOffset=0x8)" P-INDEP -;* V117 tmp112 [V117 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP -;* V118 tmp113 [V118 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP -; V119 tmp114 [V119,T34] ( 2, 2 ) byref -> rdx single-def "field V27._reference (fldOffset=0x0)" P-INDEP -;* V120 tmp115 [V120,T64] ( 0, 0 ) int -> zero-ref single-def ptr "field V27._length (fldOffset=0x8)" P-INDEP -;* V121 tmp116 [V121 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V34._reference (fldOffset=0x0)" P-INDEP -;* V122 tmp117 [V122 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V34._length (fldOffset=0x8)" P-INDEP -;* V123 tmp118 [V123 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V40._reference (fldOffset=0x0)" P-INDEP -;* V124 tmp119 [V124 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP -;* V125 tmp120 [V125,T65] ( 0, 0 ) ubyte -> zero-ref single-def "field V42.hasValue (fldOffset=0x0)" P-INDEP -;* V126 tmp121 [V126,T66] ( 0, 0 ) int -> zero-ref single-def "field V42.value (fldOffset=0x4)" P-INDEP -;* V127 tmp122 [V127 ] ( 0, 0 ) ubyte -> zero-ref "field V44.hasValue (fldOffset=0x0)" P-INDEP -;* V128 tmp123 [V128 ] ( 0, 0 ) int -> zero-ref "field V44.value (fldOffset=0x4)" P-INDEP -; V129 tmp124 [V129,T48] ( 3, 1.50) byref -> r14 "field V46._reference (fldOffset=0x0)" P-INDEP -; V130 tmp125 [V130,T19] ( 4, 3.00) int -> r15 "field V46._length (fldOffset=0x8)" P-INDEP -; V131 tmp126 [V131,T02] ( 11, 5.50) ref -> r15 "field V53._object (fldOffset=0x0)" P-INDEP -;* V132 tmp127 [V132 ] ( 0, 0 ) int -> zero-ref "field V53._index (fldOffset=0x8)" P-INDEP -; V133 tmp128 [V133,T45] ( 4, 1.50) int -> r14 "field V53._length (fldOffset=0xc)" P-INDEP -; V134 tmp129 [V134,T03] ( 11, 5.50) ref -> rbx "field V54._object (fldOffset=0x0)" P-INDEP -;* V135 tmp130 [V135 ] ( 0, 0 ) int -> zero-ref "field V54._index (fldOffset=0x8)" P-INDEP -; V136 tmp131 [V136,T46] ( 4, 1.50) int -> r12 "field V54._length (fldOffset=0xc)" P-INDEP -;* V137 tmp132 [V137 ] ( 0, 0 ) ref -> zero-ref single-def ptr "field V56._object (fldOffset=0x0)" P-INDEP -;* V138 tmp133 [V138 ] ( 0, 0 ) int -> zero-ref single-def "field V56._index (fldOffset=0x8)" P-INDEP -;* V139 tmp134 [V139 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V56._length (fldOffset=0xc)" P-INDEP -;* V140 tmp135 [V140 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP -;* V141 tmp136 [V141 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP -;* V142 tmp137 [V142 ] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP -;* V143 tmp138 [V143 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP -; V144 tmp139 [V144,T35] ( 2, 2 ) byref -> rdi single-def "field V62._reference (fldOffset=0x0)" P-INDEP -; V145 tmp140 [V145,T41] ( 2, 2 ) int -> r15 single-def "field V62._length (fldOffset=0x8)" P-INDEP -;* V146 tmp141 [V146 ] ( 0, 0 ) byref -> zero-ref "field V64._reference (fldOffset=0x0)" P-DEP -;* V147 tmp142 [V147 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-DEP -; V148 tmp143 [V148,T51] ( 2, 1 ) byref -> r13 "field V65._reference (fldOffset=0x0)" P-INDEP -; V149 tmp144 [V149,T56] ( 2, 1 ) int -> r15 "field V65._length (fldOffset=0x8)" P-INDEP -;* V150 tmp145 [V150 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V71._reference (fldOffset=0x0)" P-INDEP -;* V151 tmp146 [V151 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP -;* V152 tmp147 [V152 ] ( 0, 0 ) ref -> zero-ref single-def ptr "field V72._object (fldOffset=0x0)" P-INDEP -;* V153 tmp148 [V153 ] ( 0, 0 ) int -> zero-ref single-def "field V72._index (fldOffset=0x8)" P-INDEP -;* V154 tmp149 [V154 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V72._length (fldOffset=0xc)" P-INDEP -;* V155 tmp150 [V155 ] ( 0, 0 ) byref -> zero-ref "field V73._reference (fldOffset=0x0)" P-INDEP -;* V156 tmp151 [V156 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP -;* V157 tmp152 [V157 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP -;* V158 tmp153 [V158 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP -; V159 tmp154 [V159,T36] ( 2, 2 ) byref -> rdi single-def "field V78._reference (fldOffset=0x0)" P-INDEP -; V160 tmp155 [V160,T42] ( 2, 2 ) int -> r13 single-def "field V78._length (fldOffset=0x8)" P-INDEP -;* V161 tmp156 [V161 ] ( 0, 0 ) byref -> zero-ref "field V80._reference (fldOffset=0x0)" P-DEP -;* V162 tmp157 [V162 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-DEP -; V163 tmp158 [V163,T52] ( 2, 1 ) byref -> r14 "field V81._reference (fldOffset=0x0)" P-INDEP -; V164 tmp159 [V164,T57] ( 2, 1 ) int -> r13 "field V81._length (fldOffset=0x8)" P-INDEP -;* V165 tmp160 [V165 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V87._reference (fldOffset=0x0)" P-INDEP -;* V166 tmp161 [V166 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP -; V167 tmp162 [V167,T53] ( 2, 1 ) byref -> r14 single-def "field V89._reference (fldOffset=0x0)" P-INDEP -; V168 tmp163 [V168,T58] ( 2, 1 ) int -> r15 single-def "field V89._length (fldOffset=0x8)" P-INDEP -; V169 tmp164 [V169,T54] ( 2, 1 ) byref -> rax "field V90._reference (fldOffset=0x0)" P-INDEP -; V170 tmp165 [V170,T59] ( 2, 1 ) int -> rcx "field V90._length (fldOffset=0x8)" P-INDEP -; V171 tmp166 [V171,T55] ( 2, 1 ) byref -> r14 single-def "field V91._reference (fldOffset=0x0)" P-INDEP -; V172 tmp167 [V172,T60] ( 2, 1 ) int -> r15 single-def "field V91._length (fldOffset=0x8)" P-INDEP -;* V173 tmp168 [V173 ] ( 0, 0 ) byref -> zero-ref "field V92._reference (fldOffset=0x0)" P-INDEP -;* V174 tmp169 [V174 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP -; V175 tmp170 [V175,T09] ( 3, 5 ) long -> r12 "Cast away GC" -; V176 GsCookie [V176 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie" -; V177 tmp172 [V177,T14] ( 4, 4 ) ref -> r15 single-def "shadowVar" -; V178 tmp173 [V178,T37] ( 2, 2 ) ref -> rbx single-def "shadowVar" -; V179 cse0 [V179,T50] ( 3, 1.50) int -> rdx "CSE - conservative" -; V180 cse1 [V180,T49] ( 3, 1.50) ref -> rsi "CSE - moderate" -; V181 rat0 [V181,T23] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
+;* V95 tmp90 [V95 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]> +; V96 tmp91 [V96 ] ( 4, 4 ) struct (16) [rbp-0xC0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]> +;* V97 tmp92 [V97 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]> +; V98 tmp93 [V98,T20] ( 3, 3 ) int -> [rbp-0x60] do-not-enreg[] single-def "field V02._flags (fldOffset=0x0)" P-DEP +; V99 tmp94 [V99,T21] ( 3, 3 ) int -> [rbp-0x5C] do-not-enreg[] single-def "field V02._hi32 (fldOffset=0x4)" P-DEP +; V100 tmp95 [V100,T22] ( 3, 3 ) long -> [rbp-0x58] do-not-enreg[] single-def "field V02._lo64 (fldOffset=0x8)" P-DEP +;* V101 tmp96 [V101 ] ( 0, 0 ) ref -> zero-ref single-def ptr "field V07._object (fldOffset=0x0)" P-INDEP +;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x8)" P-INDEP +;* V103 tmp98 [V103 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V07._length (fldOffset=0xc)" P-INDEP +;* V104 tmp99 [V104 ] ( 0, 0 ) ref -> zero-ref single-def ptr "field V08._object (fldOffset=0x0)" P-INDEP +;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref single-def "field V08._index (fldOffset=0x8)" P-INDEP +;* V106 tmp101 [V106 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V08._length (fldOffset=0xc)" P-INDEP +; V107 tmp102 [V107,T17] ( 5, 3.50) byref -> r14 single-def "field V10._reference (fldOffset=0x0)" P-INDEP +; V108 tmp103 [V108,T18] ( 5, 3 ) int -> r15 single-def "field V10._length (fldOffset=0x8)" P-INDEP +; V109 tmp104 [V109,T31] ( 2, 2 ) byref -> r14 single-def "field V11._reference (fldOffset=0x0)" P-INDEP +; V110 tmp105 [V110,T39] ( 2, 2 ) int -> r15 single-def "field V11._length (fldOffset=0x8)" P-INDEP +; V111 tmp106 [V111,T32] ( 2, 2 ) byref -> r14 single-def "field V12._reference (fldOffset=0x0)" P-INDEP +; V112 tmp107 [V112,T40] ( 2, 2 ) int -> r15 single-def "field V12._length (fldOffset=0x8)" P-INDEP +;* V113 tmp108 [V113 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP +;* V114 tmp109 [V114 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP +; V115 tmp110 [V115 ] ( 3, 2.50) int -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V19._flags (fldOffset=0x0)" P-DEP +; V116 tmp111 [V116 ] ( 3, 2.50) int -> [rbp-0x6C] do-not-enreg[X] addr-exposed "field V19._hi32 (fldOffset=0x4)" P-DEP +; V117 tmp112 [V117 ] ( 3, 2.50) long -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V19._lo64 (fldOffset=0x8)" P-DEP +; V118 tmp113 [V118,T33] ( 2, 2 ) byref -> rdx single-def "field V23._reference (fldOffset=0x0)" P-INDEP +;* V119 tmp114 [V119,T62] ( 0, 0 ) int -> zero-ref single-def ptr "field V23._length (fldOffset=0x8)" P-INDEP +;* V120 tmp115 [V120 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP +;* V121 tmp116 [V121 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP +; V122 tmp117 [V122,T34] ( 2, 2 ) byref -> rdx single-def "field V27._reference (fldOffset=0x0)" P-INDEP +;* V123 tmp118 [V123,T63] ( 0, 0 ) int -> zero-ref single-def ptr "field V27._length (fldOffset=0x8)" P-INDEP +;* V124 tmp119 [V124 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V34._reference (fldOffset=0x0)" P-INDEP +;* V125 tmp120 [V125 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V34._length (fldOffset=0x8)" P-INDEP +;* V126 tmp121 [V126 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V40._reference (fldOffset=0x0)" P-INDEP +;* V127 tmp122 [V127 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP +;* V128 tmp123 [V128,T64] ( 0, 0 ) ubyte -> zero-ref single-def "field V42.hasValue (fldOffset=0x0)" P-INDEP +;* V129 tmp124 [V129,T65] ( 0, 0 ) int -> zero-ref single-def "field V42.value (fldOffset=0x4)" P-INDEP +;* V130 tmp125 [V130 ] ( 0, 0 ) ubyte -> zero-ref "field V44.hasValue (fldOffset=0x0)" P-INDEP +;* V131 tmp126 [V131 ] ( 0, 0 ) int -> zero-ref "field V44.value (fldOffset=0x4)" P-INDEP +; V132 tmp127 [V132,T48] ( 3, 1.50) byref -> r14 "field V46._reference (fldOffset=0x0)" P-INDEP +; V133 tmp128 [V133,T19] ( 4, 3.00) int -> r15 "field V46._length (fldOffset=0x8)" P-INDEP +; V134 tmp129 [V134,T03] ( 11, 5.50) ref -> r15 "field V53._object (fldOffset=0x0)" P-INDEP +;* V135 tmp130 [V135 ] ( 0, 0 ) int -> zero-ref "field V53._index (fldOffset=0x8)" P-INDEP +; V136 tmp131 [V136,T45] ( 4, 1.50) int -> r14 "field V53._length (fldOffset=0xc)" P-INDEP +; V137 tmp132 [V137,T04] ( 11, 5.50) ref -> rbx "field V54._object (fldOffset=0x0)" P-INDEP +;* V138 tmp133 [V138 ] ( 0, 0 ) int -> zero-ref "field V54._index (fldOffset=0x8)" P-INDEP +; V139 tmp134 [V139,T46] ( 4, 1.50) int -> r12 "field V54._length (fldOffset=0xc)" P-INDEP +;* V140 tmp135 [V140 ] ( 0, 0 ) ref -> zero-ref single-def ptr "field V56._object (fldOffset=0x0)" P-INDEP +;* V141 tmp136 [V141 ] ( 0, 0 ) int -> zero-ref single-def "field V56._index (fldOffset=0x8)" P-INDEP +;* V142 tmp137 [V142 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V56._length (fldOffset=0xc)" P-INDEP +;* V143 tmp138 [V143 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP +;* V144 tmp139 [V144 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP +;* V145 tmp140 [V145 ] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP +;* V146 tmp141 [V146 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP +; V147 tmp142 [V147,T35] ( 2, 2 ) byref -> rdi single-def "field V62._reference (fldOffset=0x0)" P-INDEP +; V148 tmp143 [V148,T41] ( 2, 2 ) int -> r15 single-def "field V62._length (fldOffset=0x8)" P-INDEP +;* V149 tmp144 [V149 ] ( 0, 0 ) byref -> zero-ref "field V64._reference (fldOffset=0x0)" P-DEP +;* V150 tmp145 [V150 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-DEP +; V151 tmp146 [V151,T51] ( 2, 1 ) byref -> r13 "field V65._reference (fldOffset=0x0)" P-INDEP +; V152 tmp147 [V152,T56] ( 2, 1 ) int -> r15 "field V65._length (fldOffset=0x8)" P-INDEP +;* V153 tmp148 [V153 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V71._reference (fldOffset=0x0)" P-INDEP +;* V154 tmp149 [V154 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP +;* V155 tmp150 [V155 ] ( 0, 0 ) ref -> zero-ref single-def ptr "field V72._object (fldOffset=0x0)" P-INDEP +;* V156 tmp151 [V156 ] ( 0, 0 ) int -> zero-ref single-def "field V72._index (fldOffset=0x8)" P-INDEP +;* V157 tmp152 [V157 ] ( 0, 0 ) int -> zero-ref single-def ptr "field V72._length (fldOffset=0xc)" P-INDEP +;* V158 tmp153 [V158 ] ( 0, 0 ) byref -> zero-ref "field V73._reference (fldOffset=0x0)" P-INDEP +;* V159 tmp154 [V159 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP +;* V160 tmp155 [V160 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP +;* V161 tmp156 [V161 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP +; V162 tmp157 [V162,T36] ( 2, 2 ) byref -> rdi single-def "field V78._reference (fldOffset=0x0)" P-INDEP +; V163 tmp158 [V163,T42] ( 2, 2 ) int -> r13 single-def "field V78._length (fldOffset=0x8)" P-INDEP +;* V164 tmp159 [V164 ] ( 0, 0 ) byref -> zero-ref "field V80._reference (fldOffset=0x0)" P-DEP +;* V165 tmp160 [V165 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-DEP +; V166 tmp161 [V166,T52] ( 2, 1 ) byref -> r14 "field V81._reference (fldOffset=0x0)" P-INDEP +; V167 tmp162 [V167,T57] ( 2, 1 ) int -> r13 "field V81._length (fldOffset=0x8)" P-INDEP +;* V168 tmp163 [V168 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V87._reference (fldOffset=0x0)" P-INDEP +;* V169 tmp164 [V169 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP +; V170 tmp165 [V170,T53] ( 2, 1 ) byref -> r14 single-def "field V89._reference (fldOffset=0x0)" P-INDEP +; V171 tmp166 [V171,T58] ( 2, 1 ) int -> r15 single-def "field V89._length (fldOffset=0x8)" P-INDEP +;* V172 tmp167 [V172 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP +;* V173 tmp168 [V173 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP +; V174 tmp169 [V174,T54] ( 2, 1 ) byref -> r14 single-def "field V91._reference (fldOffset=0x0)" P-INDEP +; V175 tmp170 [V175,T59] ( 2, 1 ) int -> r15 single-def "field V91._length (fldOffset=0x8)" P-INDEP +;* V176 tmp171 [V176 ] ( 0, 0 ) byref -> zero-ref "field V92._reference (fldOffset=0x0)" P-INDEP +;* V177 tmp172 [V177 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP +; V178 tmp173 [V178,T55] ( 2, 1 ) byref -> rdx "field V95._reference (fldOffset=0x0)" P-INDEP +; V179 tmp174 [V179,T60] ( 2, 1 ) int -> rcx "field V95._length (fldOffset=0x8)" P-INDEP +; V180 tmp175 [V180 ] ( 3, 2.50) byref -> [rbp-0xC0] do-not-enreg[X] addr-exposed "field V96._reference (fldOffset=0x0)" P-DEP +; V181 tmp176 [V181 ] ( 3, 2.50) int -> [rbp-0xB8] do-not-enreg[X] addr-exposed "field V96._length (fldOffset=0x8)" P-DEP +;* V182 tmp177 [V182 ] ( 0, 0 ) byref -> zero-ref single-def "field V97._reference (fldOffset=0x0)" P-INDEP +;* V183 tmp178 [V183 ] ( 0, 0 ) int -> zero-ref single-def "field V97._length (fldOffset=0x8)" P-INDEP +; V184 tmp179 [V184,T09] ( 3, 5 ) long -> r12 "Cast away GC" +; V185 GsCookie [V185 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie" +; V186 tmp181 [V186,T14] ( 4, 4 ) ref -> r15 single-def "shadowVar" +; V187 tmp182 [V187,T37] ( 2, 2 ) ref -> rbx single-def "shadowVar" +; V188 cse0 [V188,T50] ( 3, 1.50) int -> rdx "CSE - conservative" +; V189 cse1 [V189,T49] ( 3, 1.50) ref -> rsi "CSE - moderate" +; V190 rat0 [V190,T23] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 152
+; Lcl frame size = 168
...

+49 (+3.28%) : 182804.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:SignatureTypeEncoder_FunctionPointer():this (FullOpts)

@@ -5,7 +5,7 @@ ; rbp based frame ; partially interruptible ; No matching PGO data
-; 4 inlinees with PGO data; 71 single block inlinees; 15 inlinees without PGO data
+; 4 inlinees with PGO data; 72 single block inlinees; 15 inlinees without PGO data
; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests> @@ -35,117 +35,119 @@ ;* V24 tmp20 [V24 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V25 tmp21 [V25,T29] ( 6, 5.50) int -> rax "Inline stloc first use temp" ;* V26 tmp22 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V27 tmp23 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V28 tmp24 [V28 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V29 tmp25 [V29,T54] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -; V30 tmp26 [V30,T30] ( 6, 5.50) int -> rax "Inline stloc first use temp" -;* V31 tmp27 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -; V32 tmp28 [V32,T03] ( 6, 11 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> -;* V33 tmp29 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -; V34 tmp30 [V34,T31] ( 6, 5.50) int -> rax "Inline stloc first use temp" -;* V35 tmp31 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> -;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" -; V38 tmp34 [V38,T19] ( 3, 6 ) byref -> r13 single-def "Inlining Arg" -;* V39 tmp35 [V39 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.SignatureHeader> -; V40 tmp36 [V40,T04] ( 6, 11 ) ref -> r13 class-hnd single-def "impAppendStmt" <System.Reflection.Metadata.BlobBuilder> -;* V41 tmp37 [V41 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.SignatureHeader> -;* V42 tmp38 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.Ecma335.MethodSignatureEncoder> -; V43 tmp39 [V43,T05] ( 6, 11 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> -;* V44 tmp40 [V44 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -; V45 tmp41 [V45,T32] ( 6, 5.50) int -> rax "Inline stloc first use temp" -;* V46 tmp42 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V47 tmp43 [V47 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V48 tmp44 [V48 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V49 tmp45 [V49,T55] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -; V50 tmp46 [V50,T33] ( 6, 5.50) int -> r12 "Inline stloc first use temp" -;* V51 tmp47 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V52 tmp48 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> -;* V53 tmp49 [V53 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" -; V54 tmp50 [V54,T20] ( 3, 6 ) byref -> r14 single-def "Inlining Arg" -;* V55 tmp51 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.SignatureHeader> -; V56 tmp52 [V56,T06] ( 6, 11 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Reflection.Metadata.BlobBuilder> -;* V57 tmp53 [V57 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.SignatureHeader> -;* V58 tmp54 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.Ecma335.MethodSignatureEncoder> -; V59 tmp55 [V59,T07] ( 6, 11 ) ref -> r13 class-hnd single-def "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> -;* V60 tmp56 [V60 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -; V61 tmp57 [V61,T34] ( 6, 5.50) int -> r12 "Inline stloc first use temp" -;* V62 tmp58 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V63 tmp59 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V64 tmp60 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V65 tmp61 [V65,T56] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -; V66 tmp62 [V66,T35] ( 6, 5.50) int -> r13 "Inline stloc first use temp" -;* V67 tmp63 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V68 tmp64 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> -;* V69 tmp65 [V69 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" -;* V70 tmp66 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <<unknown class>> -;* V71 tmp67 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <<unknown class>> -;* V72 tmp68 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <<unknown class>> -; V73 tmp69 [V73,T37] ( 3, 4.25) ref -> rax single-def "CASTCLASS eval op1" -; V74 tmp70 [V74,T57] ( 3, 1.25) long -> rsi "fgMakeTemp is creating a new local variable" -; V75 tmp71 [V75,T10] ( 6, 8.75) ref -> rdi class-hnd "spilling QMark2" <<unknown class>> -; V76 tmp72 [V76,T14] ( 4, 8 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.String> -;* V77 tmp73 [V77 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]> -;* V78 tmp74 [V78 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp23 [V27 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V28 tmp24 [V28,T56] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +; V29 tmp25 [V29,T30] ( 6, 5.50) int -> rax "Inline stloc first use temp" +;* V30 tmp26 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +; V31 tmp27 [V31,T03] ( 6, 11 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> +;* V32 tmp28 [V32 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V33 tmp29 [V33,T31] ( 6, 5.50) int -> rax "Inline stloc first use temp" +;* V34 tmp30 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V35 tmp31 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> +;* V36 tmp32 [V36 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" +; V37 tmp33 [V37,T19] ( 3, 6 ) byref -> r13 single-def "Inlining Arg" +;* V38 tmp34 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.SignatureHeader> +; V39 tmp35 [V39,T04] ( 6, 11 ) ref -> r13 class-hnd single-def "impAppendStmt" <System.Reflection.Metadata.BlobBuilder> +;* V40 tmp36 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.SignatureHeader> +;* V41 tmp37 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.Ecma335.MethodSignatureEncoder> +; V42 tmp38 [V42,T05] ( 6, 11 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> +;* V43 tmp39 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V44 tmp40 [V44,T32] ( 6, 5.50) int -> rax "Inline stloc first use temp" +;* V45 tmp41 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V46 tmp42 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V47 tmp43 [V47,T57] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +; V48 tmp44 [V48,T33] ( 6, 5.50) int -> r12 "Inline stloc first use temp" +;* V49 tmp45 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V50 tmp46 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> +;* V51 tmp47 [V51 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" +; V52 tmp48 [V52,T20] ( 3, 6 ) byref -> r14 single-def "Inlining Arg" +;* V53 tmp49 [V53 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.SignatureHeader> +; V54 tmp50 [V54,T06] ( 6, 11 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Reflection.Metadata.BlobBuilder> +;* V55 tmp51 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Reflection.Metadata.SignatureHeader> +;* V56 tmp52 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.Ecma335.MethodSignatureEncoder> +; V57 tmp53 [V57,T07] ( 6, 11 ) ref -> r13 class-hnd single-def "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> +;* V58 tmp54 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V59 tmp55 [V59,T34] ( 6, 5.50) int -> r12 "Inline stloc first use temp" +;* V60 tmp56 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V61 tmp57 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V62 tmp58 [V62,T58] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +; V63 tmp59 [V63,T35] ( 6, 5.50) int -> r13 "Inline stloc first use temp" +;* V64 tmp60 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V65 tmp61 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder> +;* V66 tmp62 [V66 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" +;* V67 tmp63 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <<unknown class>> +;* V68 tmp64 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <<unknown class>> +;* V69 tmp65 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <<unknown class>> +; V70 tmp66 [V70,T38] ( 3, 4.25) ref -> rax single-def "CASTCLASS eval op1" +; V71 tmp67 [V71,T59] ( 3, 1.25) long -> rsi "fgMakeTemp is creating a new local variable" +; V72 tmp68 [V72,T10] ( 6, 8.75) ref -> rdi class-hnd "spilling QMark2" <<unknown class>> +; V73 tmp69 [V73,T14] ( 4, 8 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.String> +;* V74 tmp70 [V74 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]> +;* V75 tmp71 [V75 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]> +;* V76 tmp72 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]> +;* V77 tmp73 [V77 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +;* V78 tmp74 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V79 tmp75 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V80 tmp76 [V80 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -;* V81 tmp77 [V81 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]> -;* V82 tmp78 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]> -;* V83 tmp79 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]> -; V84 tmp80 [V84,T45] ( 2, 4 ) int -> r14 "Inlining Arg" -; V85 tmp81 [V85,T39] ( 2, 4 ) byref -> r12 single-def "Inlining Arg" -;* V86 tmp82 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <<unknown class>> -; V87 tmp83 [V87,T36] ( 4, 4.75) ref -> rax single-def "CASTCLASS eval op1" -; V88 tmp84 [V88,T58] ( 3, 1.25) long -> rdi "fgMakeTemp is creating a new local variable" -;* V89 tmp85 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>> -;* V90 tmp86 [V90 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" -; V91 tmp87 [V91,T46] ( 2, 4 ) int -> rbx "Inlining Arg" -; V92 tmp88 [V92,T21] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]> -;* V93 tmp89 [V93 ] ( 0, 0 ) ref -> zero-ref single-def "field V03.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP -;* V94 tmp90 [V94 ] ( 0, 0 ) ubyte -> zero-ref "field V03.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP -;* V95 tmp91 [V95,T59] ( 0, 0 ) ref -> zero-ref single-def "field V07.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP -;* V96 tmp92 [V96 ] ( 0, 0 ) ref -> zero-ref "field V09.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP -;* V97 tmp93 [V97 ] ( 0, 0 ) ubyte -> zero-ref "field V09.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP -;* V98 tmp94 [V98 ] ( 0, 0 ) ref -> zero-ref "field V11.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP -;* V99 tmp95 [V99 ] ( 0, 0 ) ubyte -> zero-ref "field V11.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP -;* V100 tmp96 [V100 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V19._rawValue (fldOffset=0x0)" P-INDEP -;* V101 tmp97 [V101 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V21._rawValue (fldOffset=0x0)" P-INDEP -; V102 tmp98 [V102,T47] ( 2, 2 ) ref -> rsi single-def "field V22.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP -;* V103 tmp99 [V103 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V22.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP -;* V104 tmp100 [V104 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V39._rawValue (fldOffset=0x0)" P-INDEP -;* V105 tmp101 [V105 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V41._rawValue (fldOffset=0x0)" P-INDEP -;* V106 tmp102 [V106 ] ( 0, 0 ) ref -> zero-ref "field V42.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP -;* V107 tmp103 [V107 ] ( 0, 0 ) ubyte -> zero-ref "field V42.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP -;* V108 tmp104 [V108 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V55._rawValue (fldOffset=0x0)" P-INDEP -;* V109 tmp105 [V109 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V57._rawValue (fldOffset=0x0)" P-INDEP -;* V110 tmp106 [V110 ] ( 0, 0 ) ref -> zero-ref "field V58.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP -;* V111 tmp107 [V111 ] ( 0, 0 ) ubyte -> zero-ref "field V58.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP -; V112 tmp108 [V112,T48] ( 2, 2 ) byref -> r13 single-def "field V77._reference (fldOffset=0x0)" P-INDEP -;* V113 tmp109 [V113,T60] ( 0, 0 ) int -> zero-ref single-def "field V77._length (fldOffset=0x8)" P-INDEP -;* V114 tmp110 [V114 ] ( 0, 0 ) byref -> zero-ref "field V78._reference (fldOffset=0x0)" P-INDEP -;* V115 tmp111 [V115 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP -; V116 tmp112 [V116,T49] ( 2, 2 ) byref -> r13 single-def "field V79._reference (fldOffset=0x0)" P-INDEP -;* V117 tmp113 [V117,T61] ( 0, 0 ) int -> zero-ref single-def "field V79._length (fldOffset=0x8)" P-INDEP -; V118 tmp114 [V118,T50] ( 2, 2 ) byref -> rdx single-def "field V81._reference (fldOffset=0x0)" P-INDEP -; V119 tmp115 [V119,T52] ( 2, 2 ) int -> rcx single-def "field V81._length (fldOffset=0x8)" P-INDEP -; V120 tmp116 [V120,T51] ( 2, 2 ) byref -> rdx single-def "field V82._reference (fldOffset=0x0)" P-INDEP -; V121 tmp117 [V121,T53] ( 2, 2 ) int -> rcx single-def "field V82._length (fldOffset=0x8)" P-INDEP -;* V122 tmp118 [V122 ] ( 0, 0 ) byref -> zero-ref "field V83._reference (fldOffset=0x0)" P-INDEP -;* V123 tmp119 [V123 ] ( 0, 0 ) int -> zero-ref "field V83._length (fldOffset=0x8)" P-INDEP -; V124 tmp120 [V124,T22] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V125 tmp121 [V125,T23] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V126 tmp122 [V126,T24] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V127 tmp123 [V127,T40] ( 2, 4 ) ref -> rsi single-def "argument with side effect" -; V128 tmp124 [V128,T25] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V129 tmp125 [V129,T26] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V130 tmp126 [V130,T41] ( 2, 4 ) ref -> rsi single-def "argument with side effect" -; V131 tmp127 [V131,T27] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V132 tmp128 [V132,T28] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V133 tmp129 [V133,T42] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
+;* V80 tmp76 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]> +; V81 tmp77 [V81,T47] ( 2, 4 ) int -> r14 "Inlining Arg" +; V82 tmp78 [V82,T40] ( 2, 4 ) byref -> r12 single-def "Inlining Arg" +;* V83 tmp79 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <<unknown class>> +; V84 tmp80 [V84,T36] ( 4, 4.75) ref -> rax single-def "CASTCLASS eval op1" +; V85 tmp81 [V85,T60] ( 3, 1.25) long -> rdi "fgMakeTemp is creating a new local variable" +;* V86 tmp82 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>> +;* V87 tmp83 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <<unknown class>> +; V88 tmp84 [V88,T37] ( 4, 4.75) ref -> rax single-def "CASTCLASS eval op1" +; V89 tmp85 [V89,T61] ( 3, 1.25) long -> rdi "fgMakeTemp is creating a new local variable" +;* V90 tmp86 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>> +;* V91 tmp87 [V91 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" +; V92 tmp88 [V92,T48] ( 2, 4 ) int -> rbx "Inlining Arg" +; V93 tmp89 [V93,T21] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]> +;* V94 tmp90 [V94 ] ( 0, 0 ) ref -> zero-ref single-def "field V03.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP +;* V95 tmp91 [V95 ] ( 0, 0 ) ubyte -> zero-ref "field V03.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP +;* V96 tmp92 [V96,T62] ( 0, 0 ) ref -> zero-ref single-def "field V07.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP +;* V97 tmp93 [V97 ] ( 0, 0 ) ref -> zero-ref "field V09.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP +;* V98 tmp94 [V98 ] ( 0, 0 ) ubyte -> zero-ref "field V09.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP +;* V99 tmp95 [V99 ] ( 0, 0 ) ref -> zero-ref "field V11.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP +;* V100 tmp96 [V100 ] ( 0, 0 ) ubyte -> zero-ref "field V11.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP +;* V101 tmp97 [V101 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V19._rawValue (fldOffset=0x0)" P-INDEP +;* V102 tmp98 [V102 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V21._rawValue (fldOffset=0x0)" P-INDEP +; V103 tmp99 [V103,T49] ( 2, 2 ) ref -> rsi single-def "field V22.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP +;* V104 tmp100 [V104 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V22.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP +;* V105 tmp101 [V105 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V38._rawValue (fldOffset=0x0)" P-INDEP +;* V106 tmp102 [V106 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V40._rawValue (fldOffset=0x0)" P-INDEP +;* V107 tmp103 [V107 ] ( 0, 0 ) ref -> zero-ref "field V41.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP +;* V108 tmp104 [V108 ] ( 0, 0 ) ubyte -> zero-ref "field V41.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP +;* V109 tmp105 [V109 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V53._rawValue (fldOffset=0x0)" P-INDEP +;* V110 tmp106 [V110 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V55._rawValue (fldOffset=0x0)" P-INDEP +;* V111 tmp107 [V111 ] ( 0, 0 ) ref -> zero-ref "field V56.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP +;* V112 tmp108 [V112 ] ( 0, 0 ) ubyte -> zero-ref "field V56.<HasVarArgs>k__BackingField (fldOffset=0x8)" P-INDEP +; V113 tmp109 [V113,T50] ( 2, 2 ) byref -> r13 single-def "field V74._reference (fldOffset=0x0)" P-INDEP +;* V114 tmp110 [V114,T63] ( 0, 0 ) int -> zero-ref single-def "field V74._length (fldOffset=0x8)" P-INDEP +;* V115 tmp111 [V115 ] ( 0, 0 ) byref -> zero-ref "field V75._reference (fldOffset=0x0)" P-INDEP +;* V116 tmp112 [V116 ] ( 0, 0 ) int -> zero-ref "field V75._length (fldOffset=0x8)" P-INDEP +; V117 tmp113 [V117,T51] ( 2, 2 ) byref -> r13 single-def "field V76._reference (fldOffset=0x0)" P-INDEP +;* V118 tmp114 [V118,T64] ( 0, 0 ) int -> zero-ref single-def "field V76._length (fldOffset=0x8)" P-INDEP +; V119 tmp115 [V119,T52] ( 2, 2 ) byref -> rdx single-def "field V78._reference (fldOffset=0x0)" P-INDEP +; V120 tmp116 [V120,T54] ( 2, 2 ) int -> rcx single-def "field V78._length (fldOffset=0x8)" P-INDEP +; V121 tmp117 [V121,T53] ( 2, 2 ) byref -> rdx single-def "field V79._reference (fldOffset=0x0)" P-INDEP +; V122 tmp118 [V122,T55] ( 2, 2 ) int -> rcx single-def "field V79._length (fldOffset=0x8)" P-INDEP +;* V123 tmp119 [V123 ] ( 0, 0 ) byref -> zero-ref "field V80._reference (fldOffset=0x0)" P-INDEP +;* V124 tmp120 [V124 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP +; V125 tmp121 [V125,T22] ( 3, 6 ) ref -> rdi single-def "arr expr" +; V126 tmp122 [V126,T23] ( 3, 6 ) ref -> rdi single-def "arr expr" +; V127 tmp123 [V127,T24] ( 3, 6 ) ref -> rdi single-def "arr expr" +; V128 tmp124 [V128,T41] ( 2, 4 ) ref -> rsi single-def "argument with side effect" +; V129 tmp125 [V129,T25] ( 3, 6 ) ref -> rdi single-def "arr expr" +; V130 tmp126 [V130,T26] ( 3, 6 ) ref -> rdi single-def "arr expr" +; V131 tmp127 [V131,T42] ( 2, 4 ) ref -> rsi single-def "argument with side effect" +; V132 tmp128 [V132,T27] ( 3, 6 ) ref -> rdi single-def "arr expr" +; V133 tmp129 [V133,T28] ( 3, 6 ) ref -> rdi single-def "arr expr"
; V134 tmp130 [V134,T43] ( 2, 4 ) ref -> rsi single-def "argument with side effect" ; V135 tmp131 [V135,T44] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
-; V136 tmp132 [V136,T62] ( 2, 0 ) ref -> rdi single-def "argument with side effect" -; V137 cse0 [V137,T38] ( 4, 4 ) byref -> r14 "CSE - moderate"
+; V136 tmp132 [V136,T45] ( 2, 4 ) ref -> rsi single-def "argument with side effect" +; V137 tmp133 [V137,T46] ( 2, 4 ) ref -> rsi single-def "argument with side effect" +; V138 tmp134 [V138,T65] ( 2, 0 ) ref -> rdi single-def "argument with side effect" +; V139 cse0 [V139,T39] ( 4, 4 ) byref -> r14 "CSE - moderate"
; ; Lcl frame size = 24 @@ -231,7 +233,7 @@ G_M43497_IG04: ; bbWeight=1, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=6000 mov rdi, gword ptr [r12+0x10] ; gcrRegs +[rdi] cmp eax, dword ptr [rdi+0x08]
- jae G_M43497_IG25
+ jae G_M43497_IG28
mov esi, eax mov byte ptr [rdi+rsi+0x10], 27 mov r12, gword ptr [r13] @@ -259,7 +261,7 @@ G_M43497_IG06: ; bbWeight=1, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=6000 mov rdi, gword ptr [r12+0x10] ; gcrRegs +[rdi] cmp eax, dword ptr [rdi+0x08] ...

realworld.run.linux.x64.checked.mch

-42 (-60.87%) : 1794.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)

@@ -7,58 +7,28 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rdi this class-hnd single-def <System.Xml.XmlTextReaderImpl+NodeData>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 5, 5 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 5, 5 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M44061_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M44061_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x20] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=59 bbWeight=1 PerfScore 7.50
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M44061_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x10], rax + mov gword ptr [rdi+0x18], rax + mov gword ptr [rdi+0x20], rax + ;; size=26 bbWeight=1 PerfScore 4.25
G_M44061_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 69, prolog size 3, PerfScore 11.75, instruction count 20, allocated bytes for code 69 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
+; Total bytes of code 27, prolog size 0, PerfScore 5.25, instruction count 6, allocated bytes for code 27 (MethodHash=623553e2) for method System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
; ============================================================ Unwind Info: @@ -66,10 +36,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

-25 (-45.45%) : 1795.dasm - System.Xml.XmlTextReaderImpl+XmlContext:.ctor():this (FullOpts)

@@ -8,48 +8,30 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd single-def <System.Xml.XmlTextReaderImpl+XmlContext>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rdi this class-hnd single-def <System.Xml.XmlTextReaderImpl+XmlContext>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 3 ) ref -> r15 "CSE - aggressive"
+; V02 cse0 [V02,T01] ( 3, 3 ) ref -> rax "CSE - aggressive"
; ; Lcl frame size = 0 G_M52849_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=6 bbWeight=1 PerfScore 2.25 -G_M52849_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - xor edi, edi - mov dword ptr [rbx+0x20], edi - mov r15, 0xD1FFAB1E - ; gcrRegs +[r15] - lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi r15] - ; byrRegs -[rdi] - xor rax, rax
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M52849_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdi] + xor eax, eax + mov dword ptr [rdi+0x20], eax + mov rax, 0xD1FFAB1E
; gcrRegs +[rax]
- mov gword ptr [rbx+0x18], rax - ;; size=45 bbWeight=1 PerfScore 6.25
+ mov gword ptr [rdi+0x08], rax + mov gword ptr [rdi+0x10], rax + xor rax, rax + mov gword ptr [rdi+0x18], rax + ;; size=29 bbWeight=1 PerfScore 4.75
G_M52849_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 55, prolog size 3, PerfScore 10.50, instruction count 17, allocated bytes for code 55 (MethodHash=db19318e) for method System.Xml.XmlTextReaderImpl+XmlContext:.ctor():this (FullOpts)
+; Total bytes of code 30, prolog size 0, PerfScore 5.75, instruction count 8, allocated bytes for code 30 (MethodHash=db19318e) for method System.Xml.XmlTextReaderImpl+XmlContext:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -57,10 +39,8 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00 + CountOfUnwindCodes: 0
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

-45 (-35.43%) : 14425.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)

@@ -13,93 +13,62 @@ ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String> ;* V03 tmp2 [V03,T04] ( 0, 0 ) ref -> zero-ref single-def ;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref single-def
-; V05 tmp4 [V05,T03] ( 2, 4 ) ref -> r14 single-def "CASTCLASS eval op1"
+; V05 tmp4 [V05,T03] ( 2, 4 ) ref -> rdi single-def "CASTCLASS eval op1"
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
-; V07 tmp6 [V07,T02] ( 7, 4.25) ref -> r14 class-hnd exact "Inline stloc first use temp" <<unknown class>>
+; V07 tmp6 [V07,T02] ( 7, 4.25) ref -> rdi class-hnd exact "Inline stloc first use temp" <<unknown class>>
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String> ;* V09 tmp8 [V09,T05] ( 0, 0 ) ref -> zero-ref single-def ;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref single-def ; V11 cse0 [V11,T01] ( 5, 5 ) ref -> r15 "CSE - aggressive" ;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M45139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp push r15
- push r14
push rbx
- push rax - lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x10]
mov rbx, rdi ; gcrRegs +[rbx]
- ;; size=15 bbWeight=1 PerfScore 5.75
+ ;; size=12 bbWeight=1 PerfScore 3.75
G_M45139_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz mov r15, 0xD1FFAB1E ; gcrRegs +[r15]
- lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - lea rdi, bword ptr [rbx+0x10] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - mov r14, gword ptr [rbx+0x18] - ; gcrRegs +[r14] - test r14, r14 - je SHORT G_M45139_IG04 - ;; size=43 bbWeight=1 PerfScore 7.00 -G_M45139_IG03: ; bbWeight=0.25, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref - mov rdi, 0xD1FFAB1E ; <unknown class> - xor rsi, rsi - ; gcrRegs +[rsi] - cmp qword ptr [r14], rdi - cmovne r14, rsi - ;; size=19 bbWeight=0.25 PerfScore 0.94 -G_M45139_IG04: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[rsi] - lea rdi, bword ptr [rbx+0x18] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rsi] - ; byrRegs -[rdi] - test r14, r14 - je SHORT G_M45139_IG06 - ;; size=17 bbWeight=1 PerfScore 3.00 -G_M45139_IG05: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref - mov rdi, r14
+ mov gword ptr [rbx+0x10], r15 + mov gword ptr [rbx+0x10], r15 + mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
+ test rdi, rdi + je SHORT G_M45139_IG04 + ;; size=27 bbWeight=1 PerfScore 5.50 +G_M45139_IG03: ; bbWeight=0.25, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref + mov rax, 0xD1FFAB1E ; <unknown class> + xor rcx, rcx + ; gcrRegs +[rcx] + cmp qword ptr [rdi], rax + cmovne rdi, rcx + ;; size=19 bbWeight=0.25 PerfScore 0.94 +G_M45139_IG04: ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[rcx] + mov gword ptr [rbx+0x18], r15 + test rdi, rdi + je SHORT G_M45139_IG06 + ;; size=9 bbWeight=1 PerfScore 2.25 +G_M45139_IG05: ; bbWeight=0.50, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
call [<unknown method>]
- ; gcrRegs -[rdi r14] - ;; size=9 bbWeight=0.50 PerfScore 1.62
+ ; gcrRegs -[rdi] + ;; size=6 bbWeight=0.50 PerfScore 1.50
G_M45139_IG06: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- lea rdi, bword ptr [rbx+0x08] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15] - ; byrRegs -[rdi] - nop - ;; size=13 bbWeight=1 PerfScore 2.00
+ mov gword ptr [rbx+0x08], r15 + ;; size=4 bbWeight=1 PerfScore 1.00
G_M45139_IG07: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
pop rbx
- pop r14
pop r15 pop rbp ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=5 bbWeight=1 PerfScore 2.50
-; Total bytes of code 127, prolog size 12, PerfScore 23.56, instruction count 38, allocated bytes for code 127 (MethodHash=d2234fac) for method System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
+; Total bytes of code 82, prolog size 9, PerfScore 17.44, instruction count 24, allocated bytes for code 82 (MethodHash=d2234fac) for method System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
; ============================================================ Unwind Info: @@ -107,13 +76,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x07 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x04 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+28 (+1.47%) : 27143.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)

@@ -5,163 +5,154 @@ ; rbp based frame ; partially interruptible ; No matching PGO data
-; 0 inlinees with PGO data; 115 single block inlinees; 43 inlinees without PGO data
+; 0 inlinees with PGO data; 115 single block inlinees; 44 inlinees without PGO data
; Final local variable assignments ; ; V00 this [V00,T00] ( 18, 10 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator> ; V01 arg1 [V01,T08] ( 11, 6.50) ref -> r15 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V02 arg2 [V02,T17] ( 3, 3 ) ubyte -> rdx single-def -; V03 arg3 [V03,T16] ( 5, 3.50) ref -> r14 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
+; V02 arg2 [V02,T18] ( 3, 3 ) ubyte -> rdx single-def +; V03 arg3 [V03,T17] ( 5, 3.50) ref -> r14 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
; V04 loc0 [V04,T49] ( 5, 2.50) ref -> r12 class-hnd single-def <Microsoft.CodeAnalysis.ConstantValue> ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T68] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V06 tmp1 [V06,T69] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V07 tmp2 [V07,T01] ( 12, 12 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V09 tmp4 [V09,T56] ( 2, 2 ) int -> r13 "Inlining Arg" -; V10 tmp5 [V10,T61] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V11 tmp6 [V11,T18] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V09 tmp4 [V09,T57] ( 2, 2 ) int -> r13 "Inlining Arg" +; V10 tmp5 [V10,T62] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> +; V11 tmp6 [V11,T19] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V12 tmp7 [V12,T09] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> ;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V15 tmp10 [V15,T25] ( 6, 3 ) int -> r12 "Inline stloc first use temp" ;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> ;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V18 tmp13 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V23 tmp18 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -; V25 tmp20 [V25,T10] ( 6, 6 ) byref -> rdi single-def "Inlining Arg" -; V26 tmp21 [V26,T43] ( 3, 3 ) int -> rax "impAppendStmt" -;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V28 tmp23 [V28,T70] ( 2, 1 ) int -> rax "Inline return value spill temp" -; V29 tmp24 [V29,T44] ( 3, 3 ) int -> rcx "Inlining Arg" -; V30 tmp25 [V30,T31] ( 3, 3 ) byref -> r15 single-def "Inlining Arg" -; V31 tmp26 [V31,T02] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> -;* V32 tmp27 [V32 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" -; V33 tmp28 [V33,T57] ( 2, 2 ) int -> r15 "Inlining Arg" -; V34 tmp29 [V34,T62] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V35 tmp30 [V35,T19] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V36 tmp31 [V36,T11] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> -;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -; V39 tmp34 [V39,T26] ( 6, 3 ) int -> r13 "Inline stloc first use temp" -;* V40 tmp35 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V42 tmp37 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V19 tmp14 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V22 tmp17 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +; V23 tmp18 [V23,T10] ( 6, 6 ) byref -> rdi single-def "Inlining Arg" +; V24 tmp19 [V24,T43] ( 3, 3 ) int -> rax "impAppendStmt" +;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" +; V26 tmp21 [V26,T71] ( 2, 1 ) int -> rax "Inline return value spill temp" +; V27 tmp22 [V27,T44] ( 3, 3 ) int -> rcx "Inlining Arg" +; V28 tmp23 [V28,T31] ( 3, 3 ) byref -> r15 single-def "Inlining Arg" +; V29 tmp24 [V29,T02] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> +;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" +; V31 tmp26 [V31,T58] ( 2, 2 ) int -> r15 "Inlining Arg" +; V32 tmp27 [V32,T63] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> +; V33 tmp28 [V33,T20] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> +; V34 tmp29 [V34,T11] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> +;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" +;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V37 tmp32 [V37,T26] ( 6, 3 ) int -> r13 "Inline stloc first use temp" +;* V38 tmp33 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V41 tmp36 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V44 tmp39 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V45 tmp40 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V48 tmp43 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -; V49 tmp44 [V49,T12] ( 6, 6 ) byref -> rdi single-def "Inlining Arg" -; V50 tmp45 [V50,T45] ( 3, 3 ) int -> rax "impAppendStmt" -;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V52 tmp47 [V52,T71] ( 2, 1 ) int -> rax "Inline return value spill temp" -; V53 tmp48 [V53,T46] ( 3, 3 ) int -> rcx "Inlining Arg" -; V54 tmp49 [V54,T32] ( 3, 3 ) byref -> rbx single-def "Inlining Arg" -; V55 tmp50 [V55,T03] ( 12, 12 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> -;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" -; V57 tmp52 [V57,T58] ( 2, 2 ) int -> r14 "Inlining Arg" -; V58 tmp53 [V58,T63] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V59 tmp54 [V59,T20] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V60 tmp55 [V60,T13] ( 6, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> -;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V45 tmp40 [V45,T12] ( 6, 6 ) byref -> rdi single-def "Inlining Arg" +; V46 tmp41 [V46,T45] ( 3, 3 ) int -> rax "impAppendStmt" +;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" +; V48 tmp43 [V48,T72] ( 2, 1 ) int -> rax "Inline return value spill temp" +; V49 tmp44 [V49,T46] ( 3, 3 ) int -> rcx "Inlining Arg" +; V50 tmp45 [V50,T32] ( 3, 3 ) byref -> rbx single-def "Inlining Arg" +; V51 tmp46 [V51,T03] ( 12, 12 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> +;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" +; V53 tmp48 [V53,T59] ( 2, 2 ) int -> r14 "Inlining Arg" +; V54 tmp49 [V54,T64] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> +; V55 tmp50 [V55,T21] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> +; V56 tmp51 [V56,T13] ( 6, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> +;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" +;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V59 tmp54 [V59,T27] ( 6, 3 ) int -> r12 "Inline stloc first use temp" +;* V60 tmp55 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V63 tmp58 [V63,T27] ( 6, 3 ) int -> r12 "Inline stloc first use temp" -;* V64 tmp59 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp61 [V66 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V68 tmp63 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V69 tmp64 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V70 tmp65 [V70 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V71 tmp66 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V72 tmp67 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -; V73 tmp68 [V73,T14] ( 6, 6 ) byref -> rdi single-def "Inlining Arg" -; V74 tmp69 [V74,T47] ( 3, 3 ) int -> rax "impAppendStmt" -;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V76 tmp71 [V76,T72] ( 2, 1 ) int -> rax "Inline return value spill temp" -; V77 tmp72 [V77,T48] ( 3, 3 ) int -> rcx "Inlining Arg" -; V78 tmp73 [V78,T33] ( 3, 3 ) byref -> r15 single-def "Inlining Arg" -; V79 tmp74 [V79,T04] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> -;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" -; V81 tmp76 [V81,T59] ( 2, 2 ) int -> r15 "Inlining Arg" -; V82 tmp77 [V82,T64] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V83 tmp78 [V83,T21] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V84 tmp79 [V84,T15] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> -;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +; V67 tmp62 [V67,T14] ( 6, 6 ) byref -> rdi single-def "Inlining Arg" +; V68 tmp63 [V68,T47] ( 3, 3 ) int -> rax "impAppendStmt" +;* V69 tmp64 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" +; V70 tmp65 [V70,T73] ( 2, 1 ) int -> rax "Inline return value spill temp" +; V71 tmp66 [V71,T48] ( 3, 3 ) int -> rcx "Inlining Arg" +; V72 tmp67 [V72,T33] ( 3, 3 ) byref -> r15 single-def "Inlining Arg" +; V73 tmp68 [V73,T04] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> +;* V74 tmp69 [V74 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" +; V75 tmp70 [V75,T60] ( 2, 2 ) int -> r15 "Inlining Arg" +; V76 tmp71 [V76,T65] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> +; V77 tmp72 [V77,T22] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> +; V78 tmp73 [V78,T15] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> +;* V79 tmp74 [V79 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" +;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V81 tmp76 [V81,T28] ( 6, 3 ) int -> r13 "Inline stloc first use temp" +;* V82 tmp77 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V83 tmp78 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V84 tmp79 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V85 tmp80 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V86 tmp81 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V87 tmp82 [V87,T28] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
+;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V88 tmp83 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V90 tmp85 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V92 tmp87 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V93 tmp88 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V94 tmp89 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V95 tmp90 [V95 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V96 tmp91 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -; V97 tmp92 [V97,T34] ( 3, 3 ) byref -> rbx single-def "Inlining Arg" -; V98 tmp93 [V98,T51] ( 4, 2 ) ref -> r13 class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition> -; V99 tmp94 [V99,T52] ( 2, 2 ) ref -> r13 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager> -;* V100 tmp95 [V100 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]> -; V101 tmp96 [V101,T53] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference> -;* V102 tmp97 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]> -;* V103 tmp98 [V103 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]> -; V104 tmp99 [V104,T05] ( 12, 12 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> -;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" -; V106 tmp101 [V106,T60] ( 2, 2 ) int -> [rbp-0x2C] spill-single-def "Inlining Arg" -; V107 tmp102 [V107,T65] ( 3, 1.50) ref -> [rbp-0x38] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V108 tmp103 [V108,T22] ( 4, 4 ) ref -> [rbp-0x40] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V109 tmp104 [V109,T06] ( 10, 10 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> -;* V110 tmp105 [V110 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -;* V111 tmp106 [V111 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V112 tmp107 [V112 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V113 tmp108 [V113 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V114 tmp109 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V115 tmp110 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -; V116 tmp111 [V116,T29] ( 6, 3 ) int -> rdx "Inline stloc first use temp" -;* V117 tmp112 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -;* V118 tmp113 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -; V120 tmp115 [V120,T30] ( 6, 3 ) int -> rdx "Inline stloc first use temp" -;* V121 tmp116 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> -; V122 tmp117 [V122,T35] ( 3, 3 ) byref -> r12 single-def "Inlining Arg" -; V123 tmp118 [V123,T54] ( 2, 2 ) ref -> rsi class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference> -; V124 tmp119 [V124,T07] ( 10, 10 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> -; V125 tmp120 [V125,T36] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <<unknown class>> -;* V126 tmp121 [V126 ] ( 0, 0 ) ref -> zero-ref single-def -; V127 tmp122 [V127,T55] ( 2, 2 ) ref -> rcx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag> -; V128 tmp123 [V128,T69] ( 3, 1.50) int -> r12 -;* V129 tmp124 [V129 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp" -; V130 tmp125 [V130,T66] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V131 tmp126 [V131,T23] ( 4, 4 ) ref -> r15 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> -; V132 tmp127 [V132,T24] ( 4, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> -; V133 tmp128 [V133,T73] ( 2, 1 ) int -> rsi single-def "Inline stloc first use temp" -;* V134 tmp129 [V134 ] ( 0, 0 ) ref -> zero-ref single-def "field V100.array (fldOffset=0x0)" P-INDEP -;* V135 tmp130 [V135,T74] ( 0, 0 ) ref -> zero-ref single-def "field V102.array (fldOffset=0x0)" P-INDEP -;* V136 tmp131 [V136,T75] ( 0, 0 ) ref -> zero-ref single-def "field V103.array (fldOffset=0x0)" P-INDEP -; V137 tmp132 [V137,T37] ( 3, 3 ) ref -> rsi single-def "arr expr" -; V138 tmp133 [V138,T38] ( 3, 3 ) ref -> rdi single-def "arr expr" -;* V139 tmp134 [V139 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V89 tmp84 [V89,T34] ( 3, 3 ) byref -> rbx single-def "Inlining Arg" +; V90 tmp85 [V90,T52] ( 4, 2 ) ref -> r13 class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition> +; V91 tmp86 [V91,T53] ( 2, 2 ) ref -> r13 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager> +;* V92 tmp87 [V92 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]> +; V93 tmp88 [V93,T54] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference> +;* V94 tmp89 [V94 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]> +;* V95 tmp90 [V95 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]> +; V96 tmp91 [V96,T05] ( 12, 12 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> +;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" +; V98 tmp93 [V98,T61] ( 2, 2 ) int -> [rbp-0x2C] spill-single-def "Inlining Arg" +; V99 tmp94 [V99,T66] ( 3, 1.50) ref -> [rbp-0x38] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> +; V100 tmp95 [V100,T23] ( 4, 4 ) ref -> [rbp-0x40] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock> +; V101 tmp96 [V101,T06] ( 10, 10 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder> +;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" +;* V103 tmp98 [V103 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V104 tmp99 [V104 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V105 tmp100 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V106 tmp101 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V107 tmp102 [V107,T29] ( 6, 3 ) int -> rdx "Inline stloc first use temp" +;* V108 tmp103 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V110 tmp105 [V110,T30] ( 6, 3 ) int -> rdx "Inline stloc first use temp" +;* V111 tmp106 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]> +; V112 tmp107 [V112,T35] ( 3, 3 ) byref -> r12 single-def "Inlining Arg" +; V113 tmp108 [V113,T55] ( 2, 2 ) ref -> rsi class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference> +; V114 tmp109 [V114,T07] ( 10, 10 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder> +; V115 tmp110 [V115,T36] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <<unknown class>> +;* V116 tmp111 [V116 ] ( 0, 0 ) ref -> zero-ref single-def +; V117 tmp112 [V117,T56] ( 2, 2 ) ref -> rcx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag> +; V118 tmp113 [V118,T70] ( 3, 1.50) int -> r12 +;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
...

+15 (+7.65%) : 1427.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)

@@ -8,93 +8,100 @@ ; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 13, 10 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 11, 9 ) byref -> rbx this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) int -> r14 single-def ; V02 arg2 [V02,T01] ( 6, 4 ) ref -> r15 class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
-; V03 loc0 [V03 ] ( 3, 1.50) struct (16) [rbp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
+; V03 loc0 [V03 ] ( 3, 1.50) struct (16) [rbp-0x38] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V06 tmp2 [V06,T04] ( 3, 3 ) int -> r13 "impAppendStmt" -; V07 tmp3 [V07,T07] ( 2, 2 ) long -> rax "VirtualCall through function pointer" -; V08 tmp4 [V08,T08] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
+; V06 tmp2 [V06,T05] ( 3, 3 ) int -> r12 "impAppendStmt" +; V07 tmp3 [V07,T09] ( 2, 2 ) long -> rax "VirtualCall through function pointer" +; V08 tmp4 [V08,T10] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
;* V09 tmp5 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V10 tmp6 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V11 tmp7 [V11,T09] ( 2, 1 ) int -> r13 "Inline return value spill temp" -; V12 tmp8 [V12,T05] ( 3, 3 ) int -> rdi "Inlining Arg" -;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -;* V15 tmp11 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V11 tmp7 [V11,T14] ( 2, 1 ) int -> r12 "Inline return value spill temp" +; V12 tmp8 [V12,T06] ( 3, 3 ) int -> rdi "Inlining Arg" +; V13 tmp9 [V13,T08] ( 2, 2 ) byref -> r13 single-def "Inlining Arg" +; V14 tmp10 [V14,T11] ( 2, 2 ) int -> rdx "Inlining Arg" +; V15 tmp11 [V15,T12] ( 2, 2 ) long -> rdi "Inlining Arg" +; V16 tmp12 [V16,T13] ( 2, 2 ) long -> rsi "Inlining Arg"
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V18 tmp14 [V18,T06] ( 3, 3 ) int -> rcx "Inline stloc first use temp" -; V19 tmp15 [V19,T03] ( 2, 4 ) byref -> rax single-def "impAppendStmt" -; V20 tmp16 [V20 ] ( 3, 1.50) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP -; V21 tmp17 [V21 ] ( 2, 1 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP -; V22 tmp18 [V22 ] ( 2, 1 ) int -> [rbp-0x24] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP
+; V18 tmp14 [V18,T07] ( 3, 3 ) int -> rcx "Inline stloc first use temp" +; V19 tmp15 [V19,T04] ( 2, 4 ) byref -> rax single-def "impAppendStmt" +; V20 tmp16 [V20 ] ( 3, 1.50) long -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP +; V21 tmp17 [V21 ] ( 2, 1 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP +; V22 tmp18 [V22 ] ( 2, 1 ) int -> [rbp-0x2C] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP +; V23 cse0 [V23,T03] ( 6, 4 ) byref -> r13 multi-def "CSE - aggressive"
;
-; Lcl frame size = 16
+; Lcl frame size = 24
G_M19315_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp push r15 push r14 push r13
+ push r12
push rbx
- sub rsp, 16
+ sub rsp, 24
vzeroupper
- lea rbp, [rsp+0x30]
+ lea rbp, [rsp+0x40]
mov rbx, rdi ; byrRegs +[rbx] mov r14d, esi mov r15, rdx ; gcrRegs +[r15]
- ;; size=29 bbWeight=1 PerfScore 7.50 -G_M19315_IG02: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
+ ;; size=31 bbWeight=1 PerfScore 8.50 +G_M19315_IG02: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
mov edi, dword ptr [rbx+0x04] cmp edi, dword ptr [rbx+0x10]
- jne SHORT G_M19315_IG04 - ;; size=8 bbWeight=1 PerfScore 6.00
+ jne G_M19315_IG04 + ;; size=12 bbWeight=1 PerfScore 6.00
G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
- vmovups xmm0, xmmword ptr [rbx+0x08] - vmovups xmmword ptr [rbp-0x30], xmm0 - mov r13d, dword ptr [rbx+0x04] - add r13d, r13d
+ lea r13, bword ptr [rbx+0x08] + ; byrRegs +[r13] + vmovups xmm0, xmmword ptr [r13] + vmovups xmmword ptr [rbp-0x38], xmm0 + mov r12d, dword ptr [rbx+0x04] + add r12d, r12d
mov edi, dword ptr [rbx+0x10]
- cmp r13d, edi - cmovl r13d, edi
+ cmp r12d, edi + cmovl r12d, edi
mov rdi, r15 ; gcrRegs +[rdi] mov rsi, 0xD1FFAB1E ; BepuUtilities.Memory.IUnmanagedMemoryPool mov rdx, 0xD1FFAB1E ; token handle call CORINFO_HELP_VIRTUAL_FUNC_PTR ; gcrRegs -[rdi]
- lea rdx, bword ptr [rbx+0x08]
+ mov rdx, r13
; byrRegs +[rdx] mov rdi, r15 ; gcrRegs +[rdi]
- mov esi, r13d
+ mov esi, r12d
call rax ; gcrRegs -[rdi] ; byrRegs -[rdx]
- mov rdi, qword ptr [rbx+0x08] - mov rsi, qword ptr [rbp-0x30]
mov edx, dword ptr [rbx+0x04]
+ mov rdi, qword ptr [r13] + mov rsi, qword ptr [rbp-0x38]
shl edx, 2 call CORINFO_HELP_MEMCPY
+ ; byrRegs -[r13]
mov rdi, r15 ; gcrRegs +[rdi] mov rsi, 0xD1FFAB1E ; BepuUtilities.Memory.IUnmanagedMemoryPool mov rdx, 0xD1FFAB1E ; token handle call CORINFO_HELP_VIRTUAL_FUNC_PTR ; gcrRegs -[rdi]
- lea rsi, [rbp-0x30]
+ lea rsi, [rbp-0x38]
mov rdi, r15 ; gcrRegs +[rdi] call rax ; gcrRegs -[rdi r15]
- ;; size=123 bbWeight=0.50 PerfScore 13.75
+ ;; size=127 bbWeight=0.50 PerfScore 13.88
G_M19315_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
- lea rax, bword ptr [rbx+0x08]
+ lea r13, bword ptr [rbx+0x08] + ; byrRegs +[r13] + mov rax, r13
; byrRegs +[rax] mov ecx, dword ptr [rbx+0x04] lea edx, [rcx+0x01] @@ -103,18 +110,19 @@ G_M19315_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr ; byrRegs -[rax] movsxd rcx, ecx mov dword ptr [rax+4*rcx], r14d
- ;; size=23 bbWeight=1 PerfScore 7.25
+ ;; size=26 bbWeight=1 PerfScore 7.50
G_M19315_IG05: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 24
pop rbx
+ pop r12
pop r13 pop r14 pop r15 pop rbp ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 196, prolog size 20, PerfScore 38.25, instruction count 55, allocated bytes for code 196 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 211, prolog size 22, PerfScore 40.12, instruction count 59, allocated bytes for code 211 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================ Unwind Info: @@ -122,13 +130,14 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x0C - CountOfUnwindCodes: 6
+ SizeOfProlog : 0x0E + CountOfUnwindCodes: 7
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10 - CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18 + CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12)
CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)

+3 (+9.09%) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)

@@ -24,17 +24,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs -[rdi] ; gcr arg pop 0 mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax + movzx rdx, dx
cmp eax, -1 mov eax, edx cmove eax, ecx
- ;; size=27 bbWeight=1 PerfScore 4.50
+ ;; size=30 bbWeight=1 PerfScore 4.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 8 ret ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 33, prolog size 1, PerfScore 6.75, instruction count 10, allocated bytes for code 33 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 7.00, instruction count 11, allocated bytes for code 36 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================ Unwind Info:

smoke_tests.nativeaot.linux.x64.checked.mch

-5 (-45.45%) : 8944.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)

@@ -3,7 +3,7 @@ ; FullOpts code ; NativeAOT compilation ; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible ; Final local variable assignments ; @@ -11,28 +11,21 @@ ;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune> ;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ;* V03 tmp3 [V03 ] ( 0, 0 ) int -> zero-ref "field V01._value (fldOffset=0x0)" P-INDEP
-;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref "argument with side effect" -;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; ; Lcl frame size = 0 G_M7284_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp - mov rbp, rsp - ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov eax, 0xFFFD ;; size=5 bbWeight=1 PerfScore 0.25 G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
+; Total bytes of code 6, prolog size 0, PerfScore 1.25, instruction count 2, allocated bytes for code 6 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
; ============================================================ Cfi Info: >> Start offset : 0x000000 >> End offset : 0xd1ffab1e
- CodeOffset: 0x01 Op: AdjustCfaOffset Offset:0x8 - CodeOffset: 0x01 Op: RelOffset DwarfReg:0x6 Offset:0x0

-20 (-35.71%) : 18745.dasm - System.ObjectDisposedException:.ctor(System.String):this (FullOpts)

@@ -7,57 +7,41 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd exact single-def <System.ObjectDisposedException> -; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r15 class-hnd exact single-def <System.String>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rdi this class-hnd exact single-def <System.ObjectDisposedException> +; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd exact single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 4 ) ref -> rsi class-hnd exact single-def "dup spill" <System.String>
+; V03 tmp1 [V03,T02] ( 2, 4 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
;* V04 tmp2 [V04,T05] ( 0, 0 ) ref -> zero-ref single-def
-; V05 tmp3 [V05,T03] ( 2, 2 ) ref -> rsi single-def
+; V05 tmp3 [V05,T03] ( 2, 2 ) ref -> rax single-def
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
-; V07 tmp5 [V07,T04] ( 2, 2 ) ref -> rsi
+; V07 tmp5 [V07,T04] ( 2, 2 ) ref -> rax
; ; Lcl frame size = 0 G_M32605_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - mov r15, rsi - ; gcrRegs +[r15] - ;; size=9 bbWeight=1 PerfScore 2.50 -G_M32605_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref - lea rsi, gword ptr [(reloc)] - ; gcrRegs +[rsi] - mov dword ptr [rbx+0x48], 0xD1FFAB1E - lea rdi, bword ptr [rbx+0x08]
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M32605_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rsi rdi] + lea rax, gword ptr [(reloc)] + ; gcrRegs +[rax] + mov dword ptr [rdi+0x48], 0xD1FFAB1E + mov gword ptr [rdi+0x08], rax + mov dword ptr [rdi+0x48], 0xD1FFAB1E + lea rdi, bword ptr [rdi+0x50] + ; gcrRegs -[rdi]
; byrRegs +[rdi] call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi] - ; byrRegs -[rdi] - mov dword ptr [rbx+0x48], 0xD1FFAB1E - lea rdi, bword ptr [rbx+0x50] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15]
+ ; gcrRegs -[rax rsi]
; byrRegs -[rdi] nop
- ;; size=43 bbWeight=1 PerfScore 6.00
+ ;; size=35 bbWeight=1 PerfScore 5.25
G_M32605_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 56, prolog size 3, PerfScore 10.50, instruction count 16, allocated bytes for code 56 (MethodHash=011e80a2) for method System.ObjectDisposedException:.ctor(System.String):this (FullOpts)
+; Total bytes of code 36, prolog size 0, PerfScore 6.25, instruction count 8, allocated bytes for code 36 (MethodHash=011e80a2) for method System.ObjectDisposedException:.ctor(System.String):this (FullOpts)
; ============================================================ Cfi Info: >> Start offset : 0x000000 >> End offset : 0xd1ffab1e
- CodeOffset: 0x02 Op: AdjustCfaOffset Offset:0x8 - CodeOffset: 0x02 Op: RelOffset DwarfReg:0xf Offset:0x0 - CodeOffset: 0x03 Op: AdjustCfaOffset Offset:0x8 - CodeOffset: 0x03 Op: RelOffset DwarfReg:0x3 Offset:0x0

-20 (-35.71%) : 26149.dasm - System.ObjectDisposedException:.ctor(System.String):this (FullOpts)

@@ -7,57 +7,41 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00,T00] ( 6, 6 ) ref -> rbx this class-hnd exact single-def <System.ObjectDisposedException> -; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r15 class-hnd exact single-def <System.String>
+; V00 this [V00,T00] ( 6, 6 ) ref -> rdi this class-hnd exact single-def <System.ObjectDisposedException> +; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd exact single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 2, 4 ) ref -> rsi class-hnd exact single-def "dup spill" <System.String>
+; V03 tmp1 [V03,T02] ( 2, 4 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
;* V04 tmp2 [V04,T05] ( 0, 0 ) ref -> zero-ref single-def
-; V05 tmp3 [V05,T03] ( 2, 2 ) ref -> rsi single-def
+; V05 tmp3 [V05,T03] ( 2, 2 ) ref -> rax single-def
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
-; V07 tmp5 [V07,T04] ( 2, 2 ) ref -> rsi
+; V07 tmp5 [V07,T04] ( 2, 2 ) ref -> rax
; ; Lcl frame size = 0 G_M32605_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15 - push rbx - mov rbx, rdi - ; gcrRegs +[rbx] - mov r15, rsi - ; gcrRegs +[r15] - ;; size=9 bbWeight=1 PerfScore 2.50 -G_M32605_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref - lea rsi, gword ptr [(reloc)] - ; gcrRegs +[rsi] - mov dword ptr [rbx+0x48], 0xD1FFAB1E - lea rdi, bword ptr [rbx+0x08]
+ ;; size=0 bbWeight=1 PerfScore 0.00 +G_M32605_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref + ; gcrRegs +[rsi rdi] + lea rax, gword ptr [(reloc)] + ; gcrRegs +[rax] + mov dword ptr [rdi+0x48], 0xD1FFAB1E + mov gword ptr [rdi+0x08], rax + mov dword ptr [rdi+0x48], 0xD1FFAB1E + lea rdi, bword ptr [rdi+0x50] + ; gcrRegs -[rdi]
; byrRegs +[rdi] call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi] - ; byrRegs -[rdi] - mov dword ptr [rbx+0x48], 0xD1FFAB1E - lea rdi, bword ptr [rbx+0x50] - ; byrRegs +[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rbx rsi r15]
+ ; gcrRegs -[rax rsi]
; byrRegs -[rdi] nop
- ;; size=43 bbWeight=1 PerfScore 6.00
+ ;; size=35 bbWeight=1 PerfScore 5.25
G_M32605_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbx - pop r15
ret
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 56, prolog size 3, PerfScore 10.50, instruction count 16, allocated bytes for code 56 (MethodHash=011e80a2) for method System.ObjectDisposedException:.ctor(System.String):this (FullOpts)
+; Total bytes of code 36, prolog size 0, PerfScore 6.25, instruction count 8, allocated bytes for code 36 (MethodHash=011e80a2) for method System.ObjectDisposedException:.ctor(System.String):this (FullOpts)
; ============================================================ Cfi Info: >> Start offset : 0x000000 >> End offset : 0xd1ffab1e
- CodeOffset: 0x02 Op: AdjustCfaOffset Offset:0x8 - CodeOffset: 0x02 Op: RelOffset DwarfReg:0xf Offset:0x0 - CodeOffset: 0x03 Op: AdjustCfaOffset Offset:0x8 - CodeOffset: 0x03 Op: RelOffset DwarfReg:0x3 Offset:0x0

+3 (+9.38%) : 26466.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)

@@ -23,17 +23,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs -[rdi] ; gcr arg pop 0 mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax + movzx rdx, dx
cmp eax, -1 mov eax, edx cmove eax, ecx
- ;; size=26 bbWeight=1 PerfScore 2.50
+ ;; size=29 bbWeight=1 PerfScore 2.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 8 ret ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 32, prolog size 1, PerfScore 4.75, instruction count 10, allocated bytes for code 32 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 5.00, instruction count 11, allocated bytes for code 35 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================ Cfi Info:

+3 (+9.38%) : 23759.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)

@@ -23,17 +23,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs -[rdi] ; gcr arg pop 0 mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax + movzx rdx, dx
cmp eax, -1 mov eax, edx cmove eax, ecx
- ;; size=26 bbWeight=1 PerfScore 2.50
+ ;; size=29 bbWeight=1 PerfScore 2.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 8 ret ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 32, prolog size 1, PerfScore 4.75, instruction count 10, allocated bytes for code 32 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 5.00, instruction count 11, allocated bytes for code 35 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================ Cfi Info:

+3 (+9.38%) : 19024.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)

@@ -23,17 +23,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs -[rdi] ; gcr arg pop 0 mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax + movzx rdx, dx
cmp eax, -1 mov eax, edx cmove eax, ecx
- ;; size=26 bbWeight=1 PerfScore 2.50
+ ;; size=29 bbWeight=1 PerfScore 2.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 8 ret ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 32, prolog size 1, PerfScore 4.75, instruction count 10, allocated bytes for code 32 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 5.00, instruction count 11, allocated bytes for code 35 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================ Cfi Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 246 213 19 14 -13,017 +123
benchmarks.run_pgo.linux.x64.checked.mch 282 246 8 28 -3,045 +581
benchmarks.run_tiered.linux.x64.checked.mch 160 148 5 7 -1,840 +138
coreclr_tests.run.linux.x64.checked.mch 8,062 7,005 307 750 -185,293 +4,498
libraries.crossgen2.linux.x64.checked.mch 42 19 6 17 -253 +8
libraries.pmi.linux.x64.checked.mch 993 834 116 43 -35,122 +11,438
libraries_tests.run.linux.x64.Release.mch 1,808 1,573 68 167 -145,289 +2,190
librariestestsnotieredcompilation.run.linux.x64.Release.mch 5,621 5,321 175 125 -330,958 +5,572
realworld.run.linux.x64.checked.mch 187 152 19 16 -13,860 +1,202
smoke_tests.nativeaot.linux.x64.checked.mch 172 147 5 20 -3,367 +25
17,573 15,658 728 1,187 -732,044 +25,775

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 36,207 3,549 32,658 1 (0.00%) 10 (0.03%)
benchmarks.run_pgo.linux.x64.checked.mch 160,112 63,207 96,905 198 (0.12%) 215 (0.13%)
benchmarks.run_tiered.linux.x64.checked.mch 65,377 50,236 15,141 0 (0.00%) 9 (0.01%)
coreclr_tests.run.linux.x64.checked.mch 598,838 355,942 242,896 130 (0.02%) 175 (0.03%)
libraries.crossgen2.linux.x64.checked.mch 234,329 15 234,314 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.x64.checked.mch 296,883 6 296,877 3 (0.00%) 48 (0.02%)
libraries_tests.run.linux.x64.Release.mch 758,740 496,184 262,556 887 (0.12%) 1,026 (0.14%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 305,296 21,912 283,384 3 (0.00%) 147 (0.05%)
realworld.run.linux.x64.checked.mch 33,080 9 33,071 1 (0.00%) 3 (0.01%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,053 10 27,043 361 (1.32%) 361 (1.32%)
2,515,915 991,070 1,524,845 1,584 (0.06%) 1,994 (0.08%)

jit-analyze output

benchmarks.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 14323346 (overridden on cmd)
Total bytes of diff: 14310452 (overridden on cmd)
Total bytes of delta: -12894 (-0.09 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          44 : 3531.dasm (0.45 % of base)
          31 : 10364.dasm (0.56 % of base)
          15 : 10473.dasm (0.42 % of base)
           6 : 3627.dasm (0.30 % of base)
           3 : 155.dasm (9.09 % of base)
           3 : 24226.dasm (0.59 % of base)
           3 : 24227.dasm (0.59 % of base)
           3 : 27043.dasm (0.60 % of base)
           3 : 6242.dasm (0.59 % of base)
           3 : 6243.dasm (0.59 % of base)
           1 : 12344.dasm (0.05 % of base)
           1 : 14773.dasm (0.05 % of base)
           1 : 23295.dasm (0.05 % of base)
           1 : 33497.dasm (0.05 % of base)
           1 : 18316.dasm (0.05 % of base)
           1 : 25187.dasm (0.05 % of base)
           1 : 27774.dasm (0.05 % of base)
           1 : 30218.dasm (0.05 % of base)
           1 : 34879.dasm (0.05 % of base)

Top file improvements (bytes):
       -3135 : 20885.dasm (-35.13 % of base)
        -785 : 20941.dasm (-32.53 % of base)
        -741 : 4456.dasm (-6.45 % of base)
        -551 : 15789.dasm (-22.67 % of base)
        -492 : 9203.dasm (-21.08 % of base)
        -341 : 7116.dasm (-7.35 % of base)
        -228 : 4242.dasm (-12.04 % of base)
        -226 : 12446.dasm (-8.25 % of base)
        -215 : 14167.dasm (-4.46 % of base)
        -203 : 11439.dasm (-3.39 % of base)
        -190 : 14441.dasm (-0.94 % of base)
        -176 : 12436.dasm (-15.62 % of base)
        -161 : 120.dasm (-12.25 % of base)
        -159 : 9632.dasm (-10.97 % of base)
        -134 : 10319.dasm (-2.91 % of base)
        -131 : 14072.dasm (-4.70 % of base)
        -128 : 27034.dasm (-16.43 % of base)
        -122 : 6964.dasm (-3.41 % of base)
        -118 : 10303.dasm (-7.32 % of base)
         -99 : 11441.dasm (-5.46 % of base)

73 total files with Code Size differences (54 improved, 19 regressed), 14 unchanged.

Top method regressions (bytes):
          44 (0.45 % of base) : 3531.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
          31 (0.56 % of base) : 10364.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
          15 (0.42 % of base) : 10473.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteAttributes(System.Xml.Serialization.XmlSerializationReaderILGen+Member[],System.Xml.Serialization.XmlSerializationReaderILGen+Member,System.String,System.Reflection.Emit.LocalBuilder):this (FullOpts)
           6 (0.30 % of base) : 3627.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           3 (9.09 % of base) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (0.59 % of base) : 24226.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           3 (0.60 % of base) : 27043.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           3 (0.59 % of base) : 6242.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           3 (0.59 % of base) : 6243.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           3 (0.59 % of base) : 24227.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           1 (0.05 % of base) : 12344.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 14773.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 23295.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 33497.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 18316.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 25187.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 27774.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 30218.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 34879.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)

Top method improvements (bytes):
       -3135 (-35.13 % of base) : 20885.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
        -785 (-32.53 % of base) : 20941.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
        -741 (-6.45 % of base) : 4456.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -551 (-22.67 % of base) : 15789.dasm - System.Xml.Serialization.XmlCustomFormatter:.cctor() (FullOpts)
        -492 (-21.08 % of base) : 9203.dasm - MessagePack.Internal.DynamicObjectTypeBuilder+MessagePackBinaryTypeInfo:.cctor() (FullOpts)
        -341 (-7.35 % of base) : 7116.dasm - Sigil.Emit`1[System.__Canon]:VerifyAndDoArithmetic(System.String,System.Reflection.Emit.OpCode,ubyte,ubyte):this (FullOpts)
        -228 (-12.04 % of base) : 4242.dasm - System.UriParser:.cctor() (FullOpts)
        -226 (-8.25 % of base) : 12446.dasm - BenchmarkDotNet.Jobs.RunMode:.cctor() (FullOpts)
        -215 (-4.46 % of base) : 14167.dasm - Sigil.Emit`1[System.__Canon]:LoadElement(System.Type):Sigil.Emit`1[System.__Canon]:this (FullOpts)
        -203 (-3.39 % of base) : 11439.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
        -190 (-0.94 % of base) : 14441.dasm - System.Linq.Tests.PersonData:.cctor() (FullOpts)
        -176 (-15.62 % of base) : 12436.dasm - BenchmarkDotNet.Jobs.GcMode:.cctor() (FullOpts)
        -161 (-12.25 % of base) : 120.dasm - System.Globalization.CultureData:CreateCultureWithInvariantData():System.Globalization.CultureData (FullOpts)
        -159 (-10.97 % of base) : 9632.dasm - Newtonsoft.Json.Utilities.ImmutableCollectionsUtils:.cctor() (FullOpts)
        -134 (-2.91 % of base) : 10319.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteElements(System.Xml.Serialization.SourceInfo,System.String,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte):this (FullOpts)
        -131 (-4.70 % of base) : 14072.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
        -128 (-16.43 % of base) : 27034.dasm - Microsoft.Extensions.DependencyInjection.ScopeValidation:Setup():this (FullOpts)
        -122 (-3.41 % of base) : 6964.dasm - Sigil.Emit`1[System.__Canon]:StoreElement(System.Type):Sigil.Emit`1[System.__Canon]:this (FullOpts)
        -118 (-7.32 % of base) : 10303.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:GenerateTypeElement(System.Xml.Serialization.XmlTypeMapping):System.String:this (FullOpts)
         -99 (-5.46 % of base) : 11441.dasm - System.Xml.XmlTextReaderImpl:ParseElement():this (FullOpts)

Top method regressions (percentages):
           3 (9.09 % of base) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (0.60 % of base) : 27043.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           3 (0.59 % of base) : 24226.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           3 (0.59 % of base) : 6242.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           3 (0.59 % of base) : 6243.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           3 (0.59 % of base) : 24227.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
          31 (0.56 % of base) : 10364.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
          44 (0.45 % of base) : 3531.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
          15 (0.42 % of base) : 10473.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteAttributes(System.Xml.Serialization.XmlSerializationReaderILGen+Member[],System.Xml.Serialization.XmlSerializationReaderILGen+Member,System.String,System.Reflection.Emit.LocalBuilder):this (FullOpts)
           6 (0.30 % of base) : 3627.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
           1 (0.05 % of base) : 12344.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 14773.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 23295.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 33497.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 18316.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 25187.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 27774.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 30218.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 34879.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)

Top method improvements (percentages):
         -42 (-60.87 % of base) : 11424.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
         -25 (-45.45 % of base) : 11425.dasm - System.Xml.XmlTextReaderImpl+XmlContext:.ctor():this (FullOpts)
         -26 (-44.07 % of base) : 13919.dasm - System.Threading.Tests.Perf_Interlocked:Setup_CompareExchange_object_Match():this (FullOpts)
         -45 (-35.43 % of base) : 5690.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
         -13 (-35.14 % of base) : 10358.dasm - System.Reflection.Emit.RuntimeMethodBuilder:GetParameterTypes():System.Type[]:this (FullOpts)
       -3135 (-35.13 % of base) : 20885.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
         -41 (-33.88 % of base) : 18259.dasm - System.UriBuilder:.ctor():this (FullOpts)
         -24 (-33.33 % of base) : 7699.dasm - System.Diagnostics.DebuggerDisplayAttribute:.ctor(System.String):this (FullOpts)
        -785 (-32.53 % of base) : 20941.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
         -28 (-30.77 % of base) : 7619.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:GetPropertyPlaceholder():System.Text.Json.Serialization.Metadata.JsonPropertyInfo (FullOpts)
         -25 (-30.12 % of base) : 7992.dasm - System.Xml.XmlQualifiedName:.cctor() (FullOpts)
         -55 (-28.65 % of base) : 12160.dasm - System.Tests.Perf_String:Format_MultipleArgs():System.String:this (FullOpts)
         -46 (-27.88 % of base) : 5800.dasm - System.UriBuilder:.ctor(System.String,System.String):this (FullOpts)
         -53 (-27.32 % of base) : 3030.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
         -25 (-26.88 % of base) : 8149.dasm - System.Runtime.Serialization.Attributes:Reset():this (FullOpts)
         -64 (-26.56 % of base) : 330.dasm - Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark:.ctor():this (FullOpts)
         -47 (-25.13 % of base) : 11643.dasm - System.Runtime.Serialization.JsonFormatGeneratorStatics:get_WriteAttributeStringMethod():System.Reflection.MethodInfo (FullOpts)
         -25 (-25.00 % of base) : 7936.dasm - System.Xml.XmlBaseWriter+NamespaceManager:.ctor():this (FullOpts)
         -46 (-23.59 % of base) : 23292.dasm - System.UriBuilder:.ctor(System.Uri):this (FullOpts)
        -551 (-22.67 % of base) : 15789.dasm - System.Xml.Serialization.XmlCustomFormatter:.cctor() (FullOpts)


benchmarks.run_pgo.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 71225423 (overridden on cmd)
Total bytes of diff: 71222959 (overridden on cmd)
Total bytes of delta: -2464 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         421 : 147580.dasm (4.73 % of base)
         124 : 145003.dasm (1.33 % of base)
           6 : 115120.dasm (2.90 % of base)
           6 : 27031.dasm (2.90 % of base)
           6 : 49481.dasm (1.65 % of base)
           6 : 49502.dasm (1.65 % of base)
           6 : 42363.dasm (1.66 % of base)
           6 : 42391.dasm (1.66 % of base)

Top file improvements (bytes):
        -123 : 147588.dasm (-4.38 % of base)
         -83 : 3338.dasm (-3.20 % of base)
         -83 : 14918.dasm (-3.22 % of base)
         -80 : 15891.dasm (-21.22 % of base)
         -66 : 10163.dasm (-5.06 % of base)
         -66 : 4514.dasm (-6.19 % of base)
         -63 : 9715.dasm (-5.73 % of base)
         -63 : 65398.dasm (-5.73 % of base)
         -62 : 1176.dasm (-3.76 % of base)
         -62 : 5123.dasm (-5.83 % of base)
         -62 : 180.dasm (-3.76 % of base)
         -62 : 3649.dasm (-5.83 % of base)
         -46 : 65656.dasm (-4.64 % of base)
         -39 : 5480.dasm (-5.10 % of base)
         -39 : 60807.dasm (-5.10 % of base)
         -37 : 106075.dasm (-2.64 % of base)
         -32 : 147582.dasm (-3.09 % of base)
         -32 : 145005.dasm (-3.09 % of base)
         -31 : 17815.dasm (-3.82 % of base)
         -31 : 4482.dasm (-3.82 % of base)

59 total files with Code Size differences (51 improved, 8 regressed), 26 unchanged.

Top method regressions (bytes):
         421 (4.73 % of base) : 147580.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
         124 (1.33 % of base) : 145003.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
           6 (1.66 % of base) : 42363.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
           6 (1.66 % of base) : 42391.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
           6 (1.65 % of base) : 49481.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
           6 (1.65 % of base) : 49502.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
           6 (2.90 % of base) : 115120.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
           6 (2.90 % of base) : 27031.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)

Top method improvements (bytes):
        -123 (-4.38 % of base) : 147588.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryMatchAtCurrentPosition():this (Tier1)
         -83 (-3.22 % of base) : 14918.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
         -83 (-3.20 % of base) : 3338.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
         -80 (-21.22 % of base) : 15891.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
         -66 (-6.19 % of base) : 4514.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Instrumented Tier0)
         -66 (-5.06 % of base) : 10163.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Instrumented Tier0)
         -63 (-5.73 % of base) : 9715.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
         -63 (-5.73 % of base) : 65398.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
         -62 (-5.83 % of base) : 5123.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
         -62 (-5.83 % of base) : 3649.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
         -62 (-3.76 % of base) : 1176.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Instrumented Tier0)
         -62 (-3.76 % of base) : 180.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Instrumented Tier0)
         -46 (-4.64 % of base) : 65656.dasm - System.SpanHelpers:CountValueType[ubyte](byref,ubyte,int):int (Instrumented Tier0)
         -39 (-5.10 % of base) : 5480.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Instrumented Tier0)
         -39 (-5.10 % of base) : 60807.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Instrumented Tier0)
         -37 (-2.64 % of base) : 106075.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Instrumented Tier0)
         -32 (-3.09 % of base) : 147582.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier1)
         -32 (-3.09 % of base) : 145005.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier1)
         -31 (-3.82 % of base) : 17815.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
         -31 (-3.82 % of base) : 4482.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)

Top method regressions (percentages):
         421 (4.73 % of base) : 147580.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
           6 (2.90 % of base) : 115120.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
           6 (2.90 % of base) : 27031.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
           6 (1.66 % of base) : 42363.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
           6 (1.66 % of base) : 42391.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
           6 (1.65 % of base) : 49481.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
           6 (1.65 % of base) : 49502.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
         124 (1.33 % of base) : 145003.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)

Top method improvements (percentages):
         -24 (-37.50 % of base) : 1060.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
         -11 (-23.40 % of base) : 82.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
         -11 (-23.40 % of base) : 47.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
          -3 (-21.43 % of base) : 21602.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Instrumented Tier0)
          -3 (-21.43 % of base) : 2311.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
          -3 (-21.43 % of base) : 10987.dasm - System.Runtime.Intrinsics.Vector256`1[short]:get_Count():int (Tier0)
          -3 (-21.43 % of base) : 86524.dasm - System.Runtime.Intrinsics.Vector256`1[ushort]:get_Count():int (Instrumented Tier0)
         -80 (-21.22 % of base) : 15891.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
         -11 (-19.64 % of base) : 4551.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Instrumented Tier0)
         -11 (-19.64 % of base) : 1109.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
          -8 (-19.05 % of base) : 4598.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Instrumented Tier0)
          -8 (-19.05 % of base) : 1111.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Tier0)
         -21 (-18.58 % of base) : 4282.dasm - System.Span`1[uint]:Clear():this (Tier0)
          -9 (-16.67 % of base) : 81.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Instrumented Tier0)
          -9 (-16.67 % of base) : 46.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
         -21 (-15.56 % of base) : 11545.dasm - System.Span`1[ubyte]:Clear():this (Instrumented Tier0)
         -23 (-12.30 % of base) : 20349.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
          -7 (-12.07 % of base) : 42492.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Instrumented Tier0)
          -7 (-12.07 % of base) : 9651.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
          -7 (-11.86 % of base) : 102.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)


benchmarks.run_tiered.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 21423742 (overridden on cmd)
Total bytes of diff: 21422040 (overridden on cmd)
Total bytes of delta: -1702 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          76 : 51875.dasm (2.06 % of base)
          44 : 64375.dasm (0.45 % of base)
           6 : 64368.dasm (0.30 % of base)
           6 : 28399.dasm (1.99 % of base)
           6 : 30546.dasm (1.97 % of base)

Top file improvements (bytes):
         -99 : 63580.dasm (-5.46 % of base)
         -80 : 8188.dasm (-21.22 % of base)
         -79 : 4062.dasm (-3.79 % of base)
         -66 : 7173.dasm (-7.74 % of base)
         -66 : 9290.dasm (-6.02 % of base)
         -63 : 7727.dasm (-6.91 % of base)
         -62 : 173.dasm (-4.77 % of base)
         -62 : 4703.dasm (-7.29 % of base)
         -46 : 34708.dasm (-5.71 % of base)
         -39 : 13820.dasm (-7.36 % of base)
         -37 : 49491.dasm (-2.81 % of base)
         -31 : 9620.dasm (-4.48 % of base)
         -30 : 19650.dasm (-1.55 % of base)
         -30 : 1435.dasm (-2.43 % of base)
         -29 : 30362.dasm (-2.43 % of base)
         -29 : 61327.dasm (-3.35 % of base)
         -24 : 938.dasm (-37.50 % of base)
         -23 : 1152.dasm (-2.00 % of base)
         -23 : 18562.dasm (-12.30 % of base)
         -23 : 13698.dasm (-1.99 % of base)

62 total files with Code Size differences (57 improved, 5 regressed), 7 unchanged.

Top method regressions (bytes):
          76 (2.06 % of base) : 51875.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
          44 (0.45 % of base) : 64375.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
           6 (1.99 % of base) : 28399.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
           6 (1.97 % of base) : 30546.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
           6 (0.30 % of base) : 64368.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)

Top method improvements (bytes):
         -99 (-5.46 % of base) : 63580.dasm - System.Xml.XmlTextReaderImpl:ParseElement():this (Tier1)
         -80 (-21.22 % of base) : 8188.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
         -79 (-3.79 % of base) : 4062.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Tier0)
         -66 (-7.74 % of base) : 7173.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
         -66 (-6.02 % of base) : 9290.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Tier0)
         -63 (-6.91 % of base) : 7727.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Tier0)
         -62 (-7.29 % of base) : 4703.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier0)
         -62 (-4.77 % of base) : 173.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Tier0)
         -46 (-5.71 % of base) : 34708.dasm - System.SpanHelpers:CountValueType[ubyte](byref,ubyte,int):int (Tier0)
         -39 (-7.36 % of base) : 13820.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Tier0)
         -37 (-2.81 % of base) : 49491.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Tier0)
         -31 (-4.48 % of base) : 9620.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Tier0)
         -30 (-1.55 % of base) : 19650.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (Tier0)
         -30 (-2.43 % of base) : 1435.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(ulong,ulong):ulong (Tier0)
         -29 (-2.43 % of base) : 30362.dasm - System.SpanHelpers:Reverse(byref,ulong) (Tier0)
         -29 (-3.35 % of base) : 61327.dasm - System.SpanHelpers:Reverse(byref,ulong) (Tier0)
         -24 (-37.50 % of base) : 938.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
         -23 (-2.00 % of base) : 1152.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int (Tier0)
         -23 (-1.99 % of base) : 13698.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte (Tier0)
         -23 (-12.30 % of base) : 18562.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)

Top method regressions (percentages):
          76 (2.06 % of base) : 51875.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
           6 (1.99 % of base) : 28399.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
           6 (1.97 % of base) : 30546.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
          44 (0.45 % of base) : 64375.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
           6 (0.30 % of base) : 64368.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)

Top method improvements (percentages):
         -24 (-37.50 % of base) : 938.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
         -11 (-23.40 % of base) : 47.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
          -3 (-21.43 % of base) : 2069.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
          -3 (-21.43 % of base) : 5319.dasm - System.Runtime.Intrinsics.Vector256`1[short]:get_Count():int (Tier0)
         -80 (-21.22 % of base) : 8188.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
         -21 (-20.00 % of base) : 5846.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
         -11 (-19.64 % of base) : 968.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
          -8 (-19.05 % of base) : 969.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Tier0)
          -9 (-16.67 % of base) : 46.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
         -23 (-12.30 % of base) : 18562.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
          -7 (-12.07 % of base) : 5595.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
          -7 (-11.86 % of base) : 98.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
          -5 (-11.11 % of base) : 42699.dasm - System.Reflection.Metadata.ModuleDefinitionHandle:op_Implicit(System.Reflection.Metadata.ModuleDefinitionHandle):System.Reflection.Metadata.EntityHandle (Tier0)
          -5 (-11.11 % of base) : 1678.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Tier0)
          -8 (-10.53 % of base) : 2040.dasm - System.Runtime.InteropServices.MemoryMarshal:GetArrayDataReference(System.Array):byref (Tier0)
          -4 (-10.53 % of base) : 59186.dasm - System.Xml.Schema.XsdDateTime:get_ZoneMinute():int:this (Tier0)
          -3 (-8.82 % of base) : 42360.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
          -7 (-7.78 % of base) : 30436.dasm - System.Enum+<>c__63`1[uint]:<FormatNumberAsHex>b__63_0(System.Span`1[ushort],long):this (Tier0)
         -66 (-7.74 % of base) : 7173.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
          -8 (-7.48 % of base) : 45675.dasm - System.Version:GetHashCode():int:this (Tier0)


coreclr_tests.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 403160942 (overridden on cmd)
Total bytes of diff: 402980147 (overridden on cmd)
Total bytes of delta: -180795 (-0.04 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         704 : 583234.dasm (8.87 % of base)
         417 : 420322.dasm (5.00 % of base)
         364 : 583225.dasm (3.77 % of base)
         165 : 594711.dasm (10.67 % of base)
         149 : 491021.dasm (13.50 % of base)
          95 : 596384.dasm (3.18 % of base)
          91 : 493792.dasm (3.40 % of base)
          84 : 593801.dasm (1.18 % of base)
          81 : 531460.dasm (2.13 % of base)
          66 : 488045.dasm (1.57 % of base)
          51 : 488049.dasm (1.07 % of base)
          34 : 205239.dasm (0.92 % of base)
          32 : 198357.dasm (4.02 % of base)
          24 : 403161.dasm (5.99 % of base)
          21 : 584667.dasm (5.22 % of base)
          21 : 402932.dasm (5.07 % of base)
          21 : 402934.dasm (5.07 % of base)
          21 : 402936.dasm (4.98 % of base)
          21 : 402937.dasm (4.98 % of base)
          21 : 403080.dasm (5.07 % of base)

Top file improvements (bytes):
       -6800 : 537854.dasm (-12.60 % of base)
       -3387 : 420650.dasm (-14.91 % of base)
       -3135 : 503923.dasm (-35.13 % of base)
       -2558 : 298432.dasm (-4.99 % of base)
       -2198 : 537913.dasm (-15.26 % of base)
       -2189 : 537848.dasm (-15.52 % of base)
       -2189 : 537853.dasm (-15.52 % of base)
        -984 : 595681.dasm (-9.50 % of base)
        -954 : 537906.dasm (-5.56 % of base)
        -891 : 296976.dasm (-67.65 % of base)
        -854 : 542835.dasm (-45.23 % of base)
        -785 : 503981.dasm (-32.53 % of base)
        -741 : 502164.dasm (-6.45 % of base)
        -558 : 542826.dasm (-3.01 % of base)
        -413 : 521945.dasm (-27.63 % of base)
        -375 : 537904.dasm (-10.41 % of base)
        -353 : 537905.dasm (-8.32 % of base)
        -305 : 492574.dasm (-4.54 % of base)
        -305 : 492850.dasm (-4.54 % of base)
        -305 : 523115.dasm (-4.54 % of base)

81 total files with Code Size differences (52 improved, 29 regressed), 20 unchanged.

Top method regressions (bytes):
         704 (8.87 % of base) : 583234.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         417 (5.00 % of base) : 420322.dasm - FPBehaviorApp.Program:TestBitValue(uint,System.Nullable`1[double],System.Nullable`1[int]) (FullOpts)
         364 (3.77 % of base) : 583225.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         165 (10.67 % of base) : 594711.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
         149 (13.50 % of base) : 491021.dasm - SuppressGCTransitionTest:ILStubCache_GCTransition_NoGCTransition(int):int (FullOpts)
          95 (3.18 % of base) : 596384.dasm - Microsoft.Build.Evaluation.Evaluator`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:AddBeforeAndAfterTargetMappings(Microsoft.Build.Construction.ProjectTargetElement,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.LinkedListNode`1[Microsoft.Build.Construction.ProjectTargetElement]],System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.Build.BackEnd.TargetSpecification]],System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.Build.BackEnd.TargetSpecification]]):this (FullOpts)
          91 (3.40 % of base) : 493792.dasm - VectorTest:TestEntryPoint():int (FullOpts)
          84 (1.18 % of base) : 593801.dasm - SlowPathELTTests.SlowPathELTHelpers:RunTest():int (FullOpts)
          81 (2.13 % of base) : 531460.dasm - Test_throw2dimarray.App:Main():int (FullOpts)
          66 (1.57 % of base) : 488045.dasm - div_r4._div:main():int (FullOpts)
          51 (1.07 % of base) : 488049.dasm - div_r8._div:main():int (FullOpts)
          34 (0.92 % of base) : 205239.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Instrumented Tier1)
          32 (4.02 % of base) : 198357.dasm - ComWrappersTests.Common.ComWrappersHelper:Init[System.__Canon](byref,System.Object,ubyte,System.Runtime.InteropServices.ComWrappers,ulong) (Tier0)
          24 (5.99 % of base) : 403161.dasm - TypeGetType2:NegTest1():ubyte:this (FullOpts)
          21 (5.22 % of base) : 584667.dasm - ArrayInit:PosTest1():ubyte:this (FullOpts)
          21 (5.07 % of base) : 403080.dasm - MarshalSizeOf1:NegTest1():ubyte:this (FullOpts)
          21 (5.07 % of base) : 403081.dasm - MarshalSizeOf1:NegTest2():ubyte:this (FullOpts)
          21 (4.88 % of base) : 403082.dasm - MarshalSizeOf1:NegTest3():ubyte:this (FullOpts)
          21 (5.07 % of base) : 402932.dasm - MarshalSizeOf2:NegTest1():ubyte:this (FullOpts)
          21 (5.07 % of base) : 402934.dasm - MarshalSizeOf2:NegTest2():ubyte:this (FullOpts)

Top method improvements (bytes):
       -6800 (-12.60 % of base) : 537854.dasm - M:GenericClassVirtualMethod() (FullOpts)
       -3387 (-14.91 % of base) : 420650.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
       -3135 (-35.13 % of base) : 503923.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
       -2558 (-4.99 % of base) : 298432.dasm - ILGEN_0xd73e17d6:Method_0x49426e8a(ubyte,long,long,int,float,long,double,long,ulong,uint):int (Instrumented Tier0)
       -2198 (-15.26 % of base) : 537913.dasm - M:GenericClassDelegate() (FullOpts)
       -2189 (-15.52 % of base) : 537853.dasm - M:GenericClassInstanceMethod() (FullOpts)
       -2189 (-15.52 % of base) : 537848.dasm - M:GenericClassStaticMethod() (FullOpts)
        -984 (-9.50 % of base) : 595681.dasm - Program+TestReflectionInvoke:Run() (FullOpts)
        -954 (-5.56 % of base) : 537906.dasm - M:GenericClassVirtualProperty() (FullOpts)
        -891 (-67.65 % of base) : 296976.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
        -854 (-45.23 % of base) : 542835.dasm - System.Xml.Xsl.IlGen.XmlILTypeHelper:.cctor() (FullOpts)
        -785 (-32.53 % of base) : 503981.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
        -741 (-6.45 % of base) : 502164.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -558 (-3.01 % of base) : 542826.dasm - System.Xml.Xsl.IlGen.XmlILMethods:.cctor() (FullOpts)
        -413 (-27.63 % of base) : 521945.dasm - Test:Test0():int (FullOpts)
        -375 (-10.41 % of base) : 537904.dasm - M:GenericClassField() (FullOpts)
        -353 (-8.32 % of base) : 537905.dasm - M:GenericClassProperty() (FullOpts)
        -305 (-4.54 % of base) : 523115.dasm - Test_AbstractBase04:TestEntryPoint():int (FullOpts)
        -305 (-4.54 % of base) : 492574.dasm - Test_Baseclass04:TestEntryPoint():int (FullOpts)
        -305 (-4.54 % of base) : 492850.dasm - Test_class02:TestEntryPoint():int (FullOpts)

Top method regressions (percentages):
           5 (27.78 % of base) : 284622.dasm - ILGEN_622380794:main():int (Tier0)
         149 (13.50 % of base) : 491021.dasm - SuppressGCTransitionTest:ILStubCache_GCTransition_NoGCTransition(int):int (FullOpts)
         165 (10.67 % of base) : 594711.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
         704 (8.87 % of base) : 583234.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
          24 (5.99 % of base) : 403161.dasm - TypeGetType2:NegTest1():ubyte:this (FullOpts)
          21 (5.22 % of base) : 584667.dasm - ArrayInit:PosTest1():ubyte:this (FullOpts)
          17 (5.12 % of base) : 402876.dasm - TypeEquals1:NegTest1():ubyte:this (FullOpts)
          17 (5.12 % of base) : 402871.dasm - TypeEquals1:PosTest1():ubyte:this (FullOpts)
          17 (5.12 % of base) : 402875.dasm - TypeEquals1:PosTest5():ubyte:this (FullOpts)
           3 (5.08 % of base) : 287972.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
          21 (5.07 % of base) : 403080.dasm - MarshalSizeOf1:NegTest1():ubyte:this (FullOpts)
          21 (5.07 % of base) : 403081.dasm - MarshalSizeOf1:NegTest2():ubyte:this (FullOpts)
          21 (5.07 % of base) : 402932.dasm - MarshalSizeOf2:NegTest1():ubyte:this (FullOpts)
          21 (5.07 % of base) : 402934.dasm - MarshalSizeOf2:NegTest2():ubyte:this (FullOpts)
          15 (5.05 % of base) : 280473.dasm - Test_10w5d.testout1:Func_0_3_3_5_6():float (Tier0)
         417 (5.00 % of base) : 420322.dasm - FPBehaviorApp.Program:TestBitValue(uint,System.Nullable`1[double],System.Nullable`1[int]) (FullOpts)
          21 (4.98 % of base) : 402936.dasm - MarshalSizeOf2:NegTest3():ubyte:this (FullOpts)
          21 (4.98 % of base) : 402937.dasm - MarshalSizeOf2:NegTest4():ubyte:this (FullOpts)
           3 (4.92 % of base) : 285568.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
          21 (4.88 % of base) : 403082.dasm - MarshalSizeOf1:NegTest3():ubyte:this (FullOpts)

Top method improvements (percentages):
         -63 (-85.14 % of base) : 284167.dasm - _simple:main():int (Tier0)
         -70 (-81.40 % of base) : 296961.dasm - ILGEN_0xdbcacf66:Method_0x8216365b():ulong (Tier0)
         -47 (-81.03 % of base) : 285689.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
         -42 (-79.25 % of base) : 296598.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
         -38 (-77.55 % of base) : 297008.dasm - _n:main():int (Tier0)
         -36 (-76.60 % of base) : 284117.dasm - _simple:main():int (Tier0)
         -31 (-73.81 % of base) : 297016.dasm - s:main():int (Tier0)
         -29 (-72.50 % of base) : 297724.dasm - ILGEN_0x77e9b0c3:Main():int (Tier0)
         -28 (-71.79 % of base) : 296690.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
         -27 (-71.05 % of base) : 296713.dasm - ILGEN_0xc766623d:Main():int (Tier0)
         -25 (-69.44 % of base) : 284113.dasm - _simple:main():int (Tier0)
        -891 (-67.65 % of base) : 296976.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
        -121 (-66.48 % of base) : 7624.dasm - _add:main():int (Tier0)
         -82 (-66.13 % of base) : 276533.dasm - JitTest_sizeof_Target_64Bit_and_arm_il.Test:Main():int (Tier0)
         -20 (-64.52 % of base) : 284161.dasm - _simple:main():int (Tier0)
         -42 (-60.87 % of base) : 542287.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
         -42 (-60.87 % of base) : 295807.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (Tier1)
         -17 (-60.71 % of base) : 284165.dasm - _simple:main():int (Tier0)
         -16 (-59.26 % of base) : 297006.dasm - _shl:main():int (Tier0)
         -38 (-58.46 % of base) : 270314.dasm - Test_sizeof.JitTest.Test:TestEntryPoint():int (Tier0)


libraries.crossgen2.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38726572 (overridden on cmd)
Total bytes of diff: 38726327 (overridden on cmd)
Total bytes of delta: -245 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
           3 : 26807.dasm (9.09 % of base)
           1 : 211395.dasm (0.12 % of base)
           1 : 233396.dasm (0.12 % of base)
           1 : 39925.dasm (0.12 % of base)
           1 : 66269.dasm (0.03 % of base)
           1 : 95903.dasm (0.12 % of base)

Top file improvements (bytes):
         -61 : 24605.dasm (-30.35 % of base)
         -61 : 26511.dasm (-30.35 % of base)
         -61 : 26541.dasm (-30.35 % of base)
         -12 : 196332.dasm (-3.99 % of base)
          -8 : 25523.dasm (-4.79 % of base)
          -7 : 17235.dasm (-6.67 % of base)
          -7 : 17238.dasm (-6.60 % of base)
          -7 : 17241.dasm (-4.40 % of base)
          -5 : 12136.dasm (-45.45 % of base)
          -5 : 232838.dasm (-1.06 % of base)
          -5 : 127092.dasm (-1.17 % of base)
          -2 : 164390.dasm (-2.94 % of base)
          -2 : 24910.dasm (-0.95 % of base)
          -2 : 146983.dasm (-2.94 % of base)
          -2 : 200962.dasm (-1.19 % of base)
          -2 : 15316.dasm (-0.26 % of base)
          -2 : 57829.dasm (-0.79 % of base)
          -1 : 219914.dasm (-0.79 % of base)
          -1 : 7472.dasm (-0.55 % of base)

25 total files with Code Size differences (19 improved, 6 regressed), 17 unchanged.

Top method regressions (bytes):
           3 (9.09 % of base) : 26807.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           1 (0.03 % of base) : 66269.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
           1 (0.12 % of base) : 211395.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
           1 (0.12 % of base) : 233396.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
           1 (0.12 % of base) : 39925.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
           1 (0.12 % of base) : 95903.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)

Top method improvements (bytes):
         -61 (-30.35 % of base) : 26511.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
         -61 (-30.35 % of base) : 24605.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -61 (-30.35 % of base) : 26541.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -12 (-3.99 % of base) : 196332.dasm - System.Xml.Schema.XsdDateTime:ToZulu():System.DateTime:this (FullOpts)
          -8 (-4.79 % of base) : 25523.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
          -7 (-6.67 % of base) : 17235.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
          -7 (-6.60 % of base) : 17238.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
          -7 (-4.40 % of base) : 17241.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
          -5 (-1.06 % of base) : 232838.dasm - System.IO.Compression.InflaterManaged:DecodeUncompressedBlock(byref):ubyte:this (FullOpts)
          -5 (-1.17 % of base) : 127092.dasm - System.Text.EUCJPEncoding:CleanUpBytes(byref):ubyte:this (FullOpts)
          -5 (-45.45 % of base) : 12136.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
          -2 (-0.79 % of base) : 57829.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
          -2 (-2.94 % of base) : 164390.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
          -2 (-2.94 % of base) : 146983.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
          -2 (-1.19 % of base) : 200962.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
          -2 (-0.95 % of base) : 24910.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
          -2 (-0.26 % of base) : 15316.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
          -1 (-0.55 % of base) : 7472.dasm - System.Half:op_Explicit(double):System.Half (FullOpts)
          -1 (-0.79 % of base) : 219914.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)

Top method regressions (percentages):
           3 (9.09 % of base) : 26807.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           1 (0.12 % of base) : 211395.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
           1 (0.12 % of base) : 233396.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
           1 (0.12 % of base) : 39925.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
           1 (0.12 % of base) : 95903.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
           1 (0.03 % of base) : 66269.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)

Top method improvements (percentages):
          -5 (-45.45 % of base) : 12136.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
         -61 (-30.35 % of base) : 26511.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
         -61 (-30.35 % of base) : 24605.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -61 (-30.35 % of base) : 26541.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
          -7 (-6.67 % of base) : 17235.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
          -7 (-6.60 % of base) : 17238.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
          -8 (-4.79 % of base) : 25523.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
          -7 (-4.40 % of base) : 17241.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
         -12 (-3.99 % of base) : 196332.dasm - System.Xml.Schema.XsdDateTime:ToZulu():System.DateTime:this (FullOpts)
          -2 (-2.94 % of base) : 164390.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
          -2 (-2.94 % of base) : 146983.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
          -2 (-1.19 % of base) : 200962.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
          -5 (-1.17 % of base) : 127092.dasm - System.Text.EUCJPEncoding:CleanUpBytes(byref):ubyte:this (FullOpts)
          -5 (-1.06 % of base) : 232838.dasm - System.IO.Compression.InflaterManaged:DecodeUncompressedBlock(byref):ubyte:this (FullOpts)
          -2 (-0.95 % of base) : 24910.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
          -2 (-0.79 % of base) : 57829.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
          -1 (-0.79 % of base) : 219914.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
          -1 (-0.55 % of base) : 7472.dasm - System.Half:op_Explicit(double):System.Half (FullOpts)
          -2 (-0.26 % of base) : 15316.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)

25 total methods with Code Size differences (19 improved, 6 regressed).


libraries.pmi.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 60294308 (overridden on cmd)
Total bytes of diff: 60270624 (overridden on cmd)
Total bytes of delta: -23684 (-0.04 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         824 : 62151.dasm (61.77 % of base)
         728 : 62036.dasm (7.46 % of base)
         727 : 188978.dasm (8.37 % of base)
         727 : 171615.dasm (8.37 % of base)
         699 : 62067.dasm (8.70 % of base)
         611 : 62150.dasm (38.72 % of base)
         577 : 246964.dasm (9.71 % of base)
         423 : 60511.dasm (15.96 % of base)
         419 : 60508.dasm (17.07 % of base)
         419 : 60509.dasm (15.40 % of base)
         330 : 60537.dasm (9.72 % of base)
         282 : 60512.dasm (13.18 % of base)
         282 : 60539.dasm (19.56 % of base)
         282 : 60540.dasm (20.32 % of base)
         275 : 60532.dasm (11.79 % of base)
         256 : 96838.dasm (2.86 % of base)
         254 : 60523.dasm (15.16 % of base)
         250 : 60517.dasm (21.44 % of base)
         221 : 109512.dasm (17.67 % of base)
         179 : 155673.dasm (13.08 % of base)

Top file improvements (bytes):
       -3223 : 164314.dasm (-33.32 % of base)
       -3135 : 181999.dasm (-35.13 % of base)
       -1149 : 140483.dasm (-11.80 % of base)
        -854 : 145633.dasm (-45.23 % of base)
        -801 : 163087.dasm (-32.88 % of base)
        -785 : 180815.dasm (-32.53 % of base)
        -776 : 56009.dasm (-5.90 % of base)
        -741 : 220673.dasm (-6.45 % of base)
        -632 : 210403.dasm (-8.70 % of base)
        -631 : 2571.dasm (-16.88 % of base)
        -551 : 147040.dasm (-22.67 % of base)
        -500 : 41670.dasm (-4.35 % of base)
        -262 : 134667.dasm (-36.75 % of base)
        -234 : 55487.dasm (-5.10 % of base)
        -228 : 274754.dasm (-12.04 % of base)
        -225 : 150434.dasm (-2.54 % of base)
        -224 : 132198.dasm (-7.07 % of base)
        -206 : 136987.dasm (-3.43 % of base)
        -202 : 243917.dasm (-8.62 % of base)
        -187 : 257542.dasm (-4.33 % of base)

87 total files with Code Size differences (57 improved, 30 regressed), 20 unchanged.

Top method regressions (bytes):
         824 (61.77 % of base) : 62151.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
         728 (7.46 % of base) : 62036.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         727 (8.37 % of base) : 188978.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
         727 (8.37 % of base) : 171615.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
         699 (8.70 % of base) : 62067.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
         611 (38.72 % of base) : 62150.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
         577 (9.71 % of base) : 246964.dasm - ILCompiler.Reflection.ReadyToRun.SignatureDecoder:ParseHelper(System.Text.StringBuilder):this (FullOpts)
         423 (15.96 % of base) : 60511.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         419 (17.07 % of base) : 60508.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         419 (15.40 % of base) : 60509.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         330 (9.72 % of base) : 60537.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
         282 (13.18 % of base) : 60512.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         282 (19.56 % of base) : 60539.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         282 (20.32 % of base) : 60540.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         275 (11.79 % of base) : 60532.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         256 (2.86 % of base) : 96838.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
         254 (15.16 % of base) : 60523.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         250 (21.44 % of base) : 60517.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         221 (17.67 % of base) : 109512.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
         179 (13.08 % of base) : 155673.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)

Top method improvements (bytes):
       -3223 (-33.32 % of base) : 164314.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
       -3135 (-35.13 % of base) : 181999.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
       -1149 (-11.80 % of base) : 140483.dasm - System.Xml.Schema.SchemaNames:.ctor(System.Xml.XmlNameTable):this (FullOpts)
        -854 (-45.23 % of base) : 145633.dasm - System.Xml.Xsl.IlGen.XmlILTypeHelper:.cctor() (FullOpts)
        -801 (-32.88 % of base) : 163087.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
        -785 (-32.53 % of base) : 180815.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
        -776 (-5.90 % of base) : 56009.dasm - Microsoft.Diagnostics.Tracing.Parsers.AspNet.AspNetTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -741 (-6.45 % of base) : 220673.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -632 (-8.70 % of base) : 210403.dasm - System.Runtime.Serialization.DataContracts.DataContract+DataContractCriticalHelper:TryCreateBuiltInDataContract(System.String,System.String,byref):ubyte (FullOpts)
        -631 (-16.88 % of base) : 2571.dasm - System.Reflection.Metadata.MetadataReader:InitializeProjectedTypes() (FullOpts)
        -551 (-22.67 % of base) : 147040.dasm - System.Xml.Serialization.XmlCustomFormatter:.cctor() (FullOpts)
        -500 (-4.35 % of base) : 41670.dasm - Microsoft.Diagnostics.Tracing.Parsers.MicrosoftAntimalwareEngineTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -262 (-36.75 % of base) : 134667.dasm - System.Xml.XmlSqlBinaryReader:GenerateTokenTypeMap():System.Type[] (FullOpts)
        -234 (-5.10 % of base) : 55487.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -228 (-12.04 % of base) : 274754.dasm - System.UriParser:.cctor() (FullOpts)
        -225 (-2.54 % of base) : 150434.dasm - System.Runtime.CompilerServices.CallSite`1[System.__Canon]:CreateCustomUpdateDelegate(System.Reflection.MethodInfo):System.__Canon:this (FullOpts)
        -224 (-7.07 % of base) : 132198.dasm - System.Net.Security.NetSecurityTelemetry:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
        -206 (-3.43 % of base) : 136987.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
        -202 (-8.62 % of base) : 243917.dasm - System.Data.Odbc.TypeMap:.cctor() (FullOpts)
        -187 (-4.33 % of base) : 257542.dasm - PerfEventSourceListener:.ctor(Microsoft.Diagnostics.Tracing.Session.TraceEventSession,int,int):this (FullOpts)

Top method regressions (percentages):
         824 (61.77 % of base) : 62151.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
         132 (46.64 % of base) : 155687.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
         611 (38.72 % of base) : 62150.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
         136 (22.82 % of base) : 60611.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
         136 (22.78 % of base) : 155588.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
         141 (22.31 % of base) : 60528.dasm - Internal.TypeSystem.Interop.AnsiStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         141 (22.17 % of base) : 60525.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         250 (21.44 % of base) : 60517.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         282 (20.32 % of base) : 60540.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         282 (19.56 % of base) : 60539.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         170 (18.54 % of base) : 155674.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorBadImageFailure(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
         221 (17.67 % of base) : 109512.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
         419 (17.07 % of base) : 60508.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         423 (15.96 % of base) : 60511.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         419 (15.40 % of base) : 60509.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         254 (15.16 % of base) : 60523.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         282 (13.18 % of base) : 60512.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         179 (13.08 % of base) : 155673.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
         141 (12.83 % of base) : 60507.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:AllocManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
         275 (11.79 % of base) : 60532.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)

Top method improvements (percentages):
         -56 (-67.47 % of base) : 23630.dasm - System.Data.UniqueConstraint:.ctor(System.String,System.Data.DataColumn[],ubyte):this (FullOpts)
         -48 (-66.67 % of base) : 23625.dasm - System.Data.UniqueConstraint:.ctor(System.String,System.Data.DataColumn[]):this (FullOpts)
         -42 (-60.87 % of base) : 137311.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
         -34 (-60.71 % of base) : 134703.dasm - System.Xml.XmlSqlBinaryReader+QName:Clear():this (FullOpts)
         -58 (-60.42 % of base) : 23132.dasm - System.Data.ForeignKeyConstraint:.ctor(System.String,System.Data.DataColumn[],System.Data.DataColumn[]):this (FullOpts)
         -34 (-59.65 % of base) : 296210.dasm - Microsoft.Extensions.Hosting.Internal.HostingEnvironment:.ctor():this (FullOpts)
         -83 (-58.87 % of base) : 39171.dasm - Diagnostics.Tracing.StackSources.FilterParams:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 279793.dasm - System.ComponentModel.EditorAttribute:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 197887.dasm - System.Configuration.ApplicationSettingsGroup:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 229073.dasm - System.Configuration.ApplicationSettingsGroup:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 229621.dasm - System.Configuration.ConfigurationSectionGroup:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 198446.dasm - System.Configuration.ConfigurationSectionGroup:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 21226.dasm - System.Data.Constraint:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 288611.dasm - System.Runtime.Caching.Configuration.CachingSectionGroup:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 135803.dasm - System.Xml.XmlQualifiedName:.ctor():this (FullOpts)
         -43 (-57.33 % of base) : 23631.dasm - System.Data.UniqueConstraint:.ctor(System.Data.DataColumn[],ubyte):this (FullOpts)
         -35 (-54.69 % of base) : 23626.dasm - System.Data.UniqueConstraint:.ctor(System.Data.DataColumn[]):this (FullOpts)
         -34 (-53.97 % of base) : 275917.dasm - System.CodeDom.Compiler.CompilerError:.ctor():this (FullOpts)
         -85 (-53.80 % of base) : 23556.dasm - System.Data.SimpleType:.ctor(System.String):this (FullOpts)
         -26 (-53.06 % of base) : 266232.dasm - System.Net.Mime.ContentDisposition:.ctor():this (FullOpts)


libraries_tests.run.linux.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 335310491 (overridden on cmd)
Total bytes of diff: 335167392 (overridden on cmd)
Total bytes of delta: -143099 (-0.04 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         249 : 719854.dasm (2.21 % of base)
         243 : 588411.dasm (2.34 % of base)
         234 : 669548.dasm (2.28 % of base)
         229 : 667208.dasm (2.07 % of base)
         128 : 675186.dasm (0.78 % of base)
         122 : 588465.dasm (4.32 % of base)
         111 : 89855.dasm (2.10 % of base)
          94 : 92093.dasm (0.75 % of base)
          84 : 69754.dasm (2.19 % of base)
          71 : 72271.dasm (1.66 % of base)
          67 : 713723.dasm (1.66 % of base)
          66 : 704750.dasm (2.68 % of base)
          46 : 732388.dasm (0.37 % of base)
          46 : 63510.dasm (0.48 % of base)
          43 : 674854.dasm (4.11 % of base)
          31 : 465060.dasm (0.29 % of base)
          24 : 715585.dasm (0.34 % of base)
          22 : 707621.dasm (1.28 % of base)
          21 : 707689.dasm (1.70 % of base)
          21 : 707622.dasm (2.16 % of base)

Top file improvements (bytes):
      -65536 : 496389.dasm (-30.77 % of base)
       -4096 : 496146.dasm (-30.70 % of base)
       -2040 : 326818.dasm (-7.60 % of base)
        -807 : 434892.dasm (-18.06 % of base)
        -807 : 450072.dasm (-18.06 % of base)
        -807 : 450212.dasm (-18.06 % of base)
        -807 : 434423.dasm (-18.06 % of base)
        -623 : 435174.dasm (-17.13 % of base)
        -623 : 437194.dasm (-15.52 % of base)
        -623 : 437577.dasm (-15.52 % of base)
        -623 : 439885.dasm (-15.52 % of base)
        -623 : 437602.dasm (-15.52 % of base)
        -623 : 438838.dasm (-15.52 % of base)
        -623 : 439254.dasm (-15.52 % of base)
        -623 : 435798.dasm (-15.52 % of base)
        -623 : 436949.dasm (-15.52 % of base)
        -623 : 438022.dasm (-15.52 % of base)
        -623 : 438762.dasm (-15.52 % of base)
        -623 : 447782.dasm (-15.52 % of base)
        -623 : 449697.dasm (-15.52 % of base)

91 total files with Code Size differences (57 improved, 34 regressed), 20 unchanged.

Top method regressions (bytes):
         249 (2.21 % of base) : 719854.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|24_6(byref) (Tier1)
         243 (2.34 % of base) : 588411.dasm - System.Security.Cryptography.X509Certificates.Tests.TestDataGenerator:MakeTestChain(System.ReadOnlySpan`1[System.Security.Cryptography.RSA],System.Span`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.String) (Tier1)
         234 (2.28 % of base) : 669548.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (Tier1)
         229 (2.07 % of base) : 667208.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteNumbers(System.Text.Json.JsonWriterOptions,System.String):this (Tier1-OSR)
         128 (0.78 % of base) : 675186.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:InvalidJsonSingleSegment(System.String,int,int,int) (Tier1)
         122 (4.32 % of base) : 588465.dasm - System.Security.Cryptography.X509Certificates.Tests.DynamicChainTests:<BuildInvalidSignatureTwice>g__CheckChain|7_2(byref,byref,byref) (Tier1)
         111 (2.10 % of base) : 89855.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
          94 (0.75 % of base) : 92093.dasm - Microsoft.Interop.LibraryImportGenerator:CalculateStubInformation(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax,Microsoft.CodeAnalysis.IMethodSymbol,Microsoft.Interop.StubEnvironment,Microsoft.Interop.TargetFrameworkSettings,Microsoft.Interop.LibraryImportGeneratorOptions,System.Threading.CancellationToken):Microsoft.Interop.LibraryImportGenerator+IncrementalStubGenerationContext (Tier1)
          84 (2.19 % of base) : 69754.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (Tier0-FullOpts)
          71 (1.66 % of base) : 72271.dasm - System.Globalization.Tests.InvariantModeTests:TestCasing():this (Tier1-OSR)
          67 (1.66 % of base) : 713723.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
          66 (2.68 % of base) : 704750.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
          46 (0.48 % of base) : 63510.dasm - Microsoft.Interop.UnmanagedToManagedStubGenerator:GenerateStubBody(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax:this (Tier1)
          46 (0.37 % of base) : 732388.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1-OSR)
          43 (4.11 % of base) : 674854.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteStringValue_JsonEncodedText_Large(int) (Tier1-OSR)
          31 (0.29 % of base) : 465060.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (Tier1)
          24 (0.34 % of base) : 715585.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:EmitJumpTable():this (Tier1)
          22 (1.28 % of base) : 707621.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitShortCircuitingOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte,ubyte,ubyte):this (Tier1)
          21 (2.16 % of base) : 707622.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
          21 (1.70 % of base) : 707689.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)

Top method improvements (bytes):
      -65536 (-30.77 % of base) : 496389.dasm - TestType:meth1():int (Tier0)
       -4096 (-30.70 % of base) : 496146.dasm - TestType:meth1():int (Tier0)
       -2040 (-7.60 % of base) : 326818.dasm - System.Globalization.Tests.CultureInfoAll+<CultureInfo_TestData>d__102:MoveNext():ubyte:this (Tier1)
        -807 (-18.06 % of base) : 450072.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
        -807 (-18.06 % of base) : 450212.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
        -807 (-18.06 % of base) : 434892.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
        -807 (-18.06 % of base) : 434423.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 439885.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[float,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[float]](byref,float,byref,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 438838.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,int,byref,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 437194.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,long,byref,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 436949.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,long,byref,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 437577.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[uint,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[uint]](byref,uint,byref,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 437602.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[uint,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[uint]](byref,uint,byref,byref,ulong) (Instrumented Tier0)
        -623 (-17.13 % of base) : 435174.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanIntoSpan>g__Vectorized256|228_2[long,System.Numerics.Tensors.TensorPrimitives+MaxMagnitudePropagateNaNOperator`1[long]](byref,byref,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 439254.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[float,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[float]](byref,byref,float,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 438762.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 435798.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,long,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 449697.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,byref,long,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 438022.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,uint,byref,ulong) (Instrumented Tier0)
        -623 (-15.52 % of base) : 447782.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,byref,ulong,byref,ulong) (Instrumented Tier0)

Top method regressions (percentages):
           3 (13.04 % of base) : 296450.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
           3 (11.54 % of base) : 296451.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
           6 (6.82 % of base) : 296448.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
           4 (6.56 % of base) : 463629.dasm - MS.Internal.Xml.Cache.XPathNode:set_HasNamespaceDecls(ubyte):this (Tier0)
          12 (5.63 % of base) : 383046.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
           3 (5.08 % of base) : 325844.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier1)
           4 (4.40 % of base) : 466965.dasm - MS.Internal.Xml.Cache.XPathNode:set_HasNamespaceDecls(ubyte):this (Instrumented Tier0)
         122 (4.32 % of base) : 588465.dasm - System.Security.Cryptography.X509Certificates.Tests.DynamicChainTests:<BuildInvalidSignatureTwice>g__CheckChain|7_2(byref,byref,byref) (Tier1)
          43 (4.11 % of base) : 674854.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteStringValue_JsonEncodedText_Large(int) (Tier1-OSR)
           3 (3.16 % of base) : 260555.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
           6 (2.84 % of base) : 713577.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
          66 (2.68 % of base) : 704750.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
           9 (2.64 % of base) : 744756.dasm - System.Threading.ManualResetEventSlim:Set(ubyte):this (Tier1)
           2 (2.35 % of base) : 512916.dasm - System.Runtime.InteropServices.Tests.CULongTests:Ctor_NUInt_LargeValue():this (Tier0)
         243 (2.34 % of base) : 588411.dasm - System.Security.Cryptography.X509Certificates.Tests.TestDataGenerator:MakeTestChain(System.ReadOnlySpan`1[System.Security.Cryptography.RSA],System.Span`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.String) (Tier1)
         234 (2.28 % of base) : 669548.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (Tier1)
           2 (2.25 % of base) : 191020.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
           2 (2.25 % of base) : 691967.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
           5 (2.24 % of base) : 326368.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
         249 (2.21 % of base) : 719854.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|24_6(byref) (Tier1)

Top method improvements (percentages):
        -289 (-96.33 % of base) : 496411.dasm - TestType:meth1():int (Tier0)
         -66 (-62.86 % of base) : 467949.dasm - XPathTests.Common.XPathResultToken:.ctor():this (Tier1)
         -18 (-62.07 % of base) : 496410.dasm - TestType:meth1():int (Tier0)
         -42 (-60.87 % of base) : 56591.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (Tier1)
         -34 (-59.65 % of base) : 139933.dasm - Microsoft.Extensions.Hosting.Internal.HostingEnvironment:.ctor():this (Tier1)
         -34 (-59.65 % of base) : 676188.dasm - System.Text.Json.Serialization.Tests.RequiredKeywordTests+PersonWithRequiredMembersAndSetsRequiredMembers:.ctor():this (Tier1)
         -26 (-57.78 % of base) : 283141.dasm - System.Data.Constraint:.ctor():this (Tier1)
         -43 (-51.81 % of base) : 468003.dasm - MS.Internal.Xml.XPath.BaseAxisQuery:.ctor(MS.Internal.Xml.XPath.Query):this (Tier1)
         -34 (-47.89 % of base) : 267462.dasm - System.Configuration.ExeConfigurationFileMap:.ctor():this (Tier1)
         -43 (-47.25 % of base) : 470936.dasm - System.Xml.Xsl.XsltOld.OutputScope:.ctor():this (Tier1)
          -5 (-45.45 % of base) : 608423.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Instrumented Tier1)
         -25 (-45.45 % of base) : 64657.dasm - System.Xml.XmlTextReaderImpl+XmlContext:.ctor():this (Tier1)
          -9 (-45.00 % of base) : 74278.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
         -25 (-40.98 % of base) : 486909.dasm - System.Xml.AttributePSVIInfo:Reset():this (Tier1)
         -39 (-40.21 % of base) : 468355.dasm - MS.Internal.Xml.XPath.Axis:.ctor(int,MS.Internal.Xml.XPath.AstNode):this (Tier1)
         -42 (-39.62 % of base) : 472836.dasm - System.Xml.DtdParser:.ctor():this (Tier1)
         -28 (-39.44 % of base) : 62900.dasm - Microsoft.Interop.ObjectUnwrapperResolver+Marshaller:AsNativeType(Microsoft.Interop.TypePositionInfo):Microsoft.Interop.ManagedTypeInfo:this (Tier1)
         -26 (-39.39 % of base) : 400129.dasm - System.Net.CookieTokenizer:Reset():this (Tier1)
         -57 (-38.78 % of base) : 400132.dasm - System.Net.Cookie:.ctor():this (Tier1)
         -10 (-38.46 % of base) : 3295.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:.cctor() (Tier0)


librariestestsnotieredcompilation.run.linux.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 132294648 (overridden on cmd)
Total bytes of diff: 131969262 (overridden on cmd)
Total bytes of delta: -325386 (-0.25 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         584 : 174017.dasm (4.40 % of base)
         565 : 56662.dasm (7.35 % of base)
         343 : 56208.dasm (5.63 % of base)
         274 : 25617.dasm (4.07 % of base)
         215 : 191751.dasm (3.48 % of base)
         171 : 31923.dasm (1.58 % of base)
         163 : 57583.dasm (8.02 % of base)
         138 : 106151.dasm (1.23 % of base)
         124 : 218898.dasm (18.87 % of base)
         124 : 188419.dasm (8.53 % of base)
         117 : 194662.dasm (10.24 % of base)
          96 : 103987.dasm (1.71 % of base)
          88 : 53493.dasm (1.85 % of base)
          87 : 20778.dasm (0.76 % of base)
          84 : 17588.dasm (2.19 % of base)
          83 : 61688.dasm (1.41 % of base)
          72 : 98501.dasm (2.76 % of base)
          64 : 57566.dasm (6.36 % of base)
          63 : 99314.dasm (3.90 % of base)
          63 : 57629.dasm (6.05 % of base)

Top file improvements (bytes):
      -65536 : 178445.dasm (-30.77 % of base)
       -3223 : 10054.dasm (-33.32 % of base)
       -3156 : 207721.dasm (-11.81 % of base)
       -2943 : 44327.dasm (-36.82 % of base)
       -2943 : 50164.dasm (-36.63 % of base)
       -2485 : 94532.dasm (-15.41 % of base)
       -1840 : 185749.dasm (-10.48 % of base)
       -1426 : 74188.dasm (-46.56 % of base)
       -1106 : 19087.dasm (-2.83 % of base)
        -912 : 183116.dasm (-39.06 % of base)
        -854 : 170259.dasm (-45.23 % of base)
        -801 : 6482.dasm (-32.88 % of base)
        -777 : 46114.dasm (-33.11 % of base)
        -777 : 51588.dasm (-32.87 % of base)
        -751 : 167573.dasm (-7.04 % of base)
        -751 : 167649.dasm (-7.10 % of base)
        -751 : 167597.dasm (-7.10 % of base)
        -751 : 167633.dasm (-3.31 % of base)
        -751 : 167545.dasm (-7.10 % of base)
        -751 : 167637.dasm (-7.10 % of base)

85 total files with Code Size differences (58 improved, 27 regressed), 20 unchanged.

Top method regressions (bytes):
         584 (4.40 % of base) : 174017.dasm - System.Xml.XmlReaderTests.ReadCharsTests:GenerateTestXml(byref):System.String (FullOpts)
         565 (7.35 % of base) : 56662.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
         343 (5.63 % of base) : 56208.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.OptionsRuntimeTests:TestCustomGeneratedAttributes():this (FullOpts)
         274 (4.07 % of base) : 25617.dasm - Microsoft.CSharp.RuntimeBinder.Tests.UserDefinedShortCircuitOperators:CannotShortCircuitWithBoolCast():this (FullOpts)
         215 (3.48 % of base) : 191751.dasm - System.Numerics.Tests.ComplexTests:ToStringTest(double,double) (FullOpts)
         171 (1.58 % of base) : 31923.dasm - Microsoft.Extensions.Configuration.Binder.Tests.ConfigurationBinderCollectionTests:TestOptionsWithDifferentCollectionInterfaces():this (FullOpts)
         163 (8.02 % of base) : 57583.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:GetDirectories_Directory_SearchOption():this (FullOpts)
         138 (1.23 % of base) : 106151.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.generics.cnstraintegeregers.typeinference006.typeinference006.A:MainMethod():int (FullOpts)
         124 (8.53 % of base) : 188419.dasm - System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests:VerifyArchitecture():this (FullOpts)
         124 (18.87 % of base) : 218898.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
         117 (10.24 % of base) : 194662.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
          96 (1.71 % of base) : 103987.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.lambda003.lambda003.Test:MainMethod():int (FullOpts)
          88 (1.85 % of base) : 53493.dasm - Microsoft.Extensions.Logging.Test.LoggerFilterTest:.cctor() (FullOpts)
          87 (0.76 % of base) : 20778.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
          84 (2.19 % of base) : 17588.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
          83 (1.41 % of base) : 61688.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
          72 (2.76 % of base) : 98501.dasm - System.Diagnostics.Tests.DiagnosticSourceEventSourceBridgeTests+<>c:<TestDefaultActivitySource>b__3_0(System.String,System.String,System.String):this (FullOpts)
          64 (6.36 % of base) : 57566.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:CopyDirectory_SourceDirectoryName_DestinationDirectoryName_OverwriteTrue():this (FullOpts)
          63 (6.05 % of base) : 57629.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:MoveDirectory_SourceDirectoryName_DestinationDirectoryName_OverwriteTrue():this (FullOpts)
          63 (3.90 % of base) : 99314.dasm - System.Diagnostics.FileVersionInfo:ToString():System.String:this (FullOpts)

Top method improvements (bytes):
      -65536 (-30.77 % of base) : 178445.dasm - TestType:meth1():int (Tier0-MinOpts)
       -3223 (-33.32 % of base) : 10054.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
       -3156 (-11.81 % of base) : 207721.dasm - System.Tests.UriCreateStringTests+<Path_Query_Fragment_TestData>d__8:MoveNext():ubyte:this (FullOpts)
       -2943 (-36.82 % of base) : 44327.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
       -2943 (-36.63 % of base) : 50164.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
       -2485 (-15.41 % of base) : 94532.dasm - System.Data.Tests.Common.DbConnectionStringBuilderTest:EmbeddedCharTest6():this (FullOpts)
       -1840 (-10.48 % of base) : 185749.dasm - System.Reflection.Tests.TypeTests+<GetMethods_TestData>d__11:MoveNext():ubyte:this (FullOpts)
       -1426 (-46.56 % of base) : 74188.dasm - System.Collections.Tests.ArrayList_SynchronizedTests:.cctor() (FullOpts)
       -1106 (-2.83 % of base) : 19087.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (FullOpts)
        -912 (-39.06 % of base) : 183116.dasm - System.Reflection.Metadata.Tests.MemoryBlockTests:BinarySearch():this (FullOpts)
        -854 (-45.23 % of base) : 170259.dasm - System.Xml.Xsl.IlGen.XmlILTypeHelper:.cctor() (FullOpts)
        -801 (-32.88 % of base) : 6482.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
        -777 (-33.11 % of base) : 46114.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
        -777 (-32.87 % of base) : 51588.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
        -751 (-7.10 % of base) : 167637.dasm - XPathTests.FunctionalTests.Location.Paths.AxesCombinationsTests:AxesCombinationsTest2109(int) (FullOpts)
        -751 (-7.04 % of base) : 167573.dasm - XPathTests.FunctionalTests.Location.Paths.AxesCombinationsTests:AxesCombinationsTest2112(int) (FullOpts)
        -751 (-3.31 % of base) : 167633.dasm - XPathTests.FunctionalTests.Location.Paths.AxesCombinationsTests:AxesCombinationsTest2126(int) (FullOpts)
        -751 (-7.10 % of base) : 167597.dasm - XPathTests.FunctionalTests.Location.Paths.AxesCombinationsTests:AxesCombinationsTest2128(int) (FullOpts)
        -751 (-7.10 % of base) : 167545.dasm - XPathTests.FunctionalTests.Location.Paths.AxesCombinationsTests:AxesCombinationsTest2130(int) (FullOpts)
        -751 (-7.10 % of base) : 167649.dasm - XPathTests.FunctionalTests.Location.Paths.AxesCombinationsTests:AxesCombinationsTest2160(int) (FullOpts)

Top method regressions (percentages):
         124 (18.87 % of base) : 218898.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
         117 (10.24 % of base) : 194662.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
         124 (8.53 % of base) : 188419.dasm - System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests:VerifyArchitecture():this (FullOpts)
         163 (8.02 % of base) : 57583.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:GetDirectories_Directory_SearchOption():this (FullOpts)
         565 (7.35 % of base) : 56662.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
          64 (6.36 % of base) : 57566.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:CopyDirectory_SourceDirectoryName_DestinationDirectoryName_OverwriteTrue():this (FullOpts)
          63 (6.05 % of base) : 57629.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:MoveDirectory_SourceDirectoryName_DestinationDirectoryName_OverwriteTrue():this (FullOpts)
         343 (5.63 % of base) : 56208.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.OptionsRuntimeTests:TestCustomGeneratedAttributes():this (FullOpts)
         584 (4.40 % of base) : 174017.dasm - System.Xml.XmlReaderTests.ReadCharsTests:GenerateTestXml(byref):System.String (FullOpts)
         274 (4.07 % of base) : 25617.dasm - Microsoft.CSharp.RuntimeBinder.Tests.UserDefinedShortCircuitOperators:CannotShortCircuitWithBoolCast():this (FullOpts)
          63 (3.90 % of base) : 99314.dasm - System.Diagnostics.FileVersionInfo:ToString():System.String:this (FullOpts)
         215 (3.48 % of base) : 191751.dasm - System.Numerics.Tests.ComplexTests:ToStringTest(double,double) (FullOpts)
          49 (3.28 % of base) : 182804.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:SignatureTypeEncoder_FunctionPointer():this (FullOpts)
          39 (2.96 % of base) : 116907.dasm - System.Formats.Cbor.Tests.CborWriterTests:WriteDecimal_SingleValue_HappyPath(System.String,System.String) (FullOpts)
          72 (2.76 % of base) : 98501.dasm - System.Diagnostics.Tests.DiagnosticSourceEventSourceBridgeTests+<>c:<TestDefaultActivitySource>b__3_0(System.String,System.String,System.String):this (FullOpts)
          24 (2.66 % of base) : 214445.dasm - System.Security.Cryptography.Cose.Tests.CoseHeaderMapTests+<>c__DisplayClass2_0:<SetValue_KnownHeaders_ThrowIf_IncorrectValue>b__0():this (FullOpts)
          24 (2.66 % of base) : 214448.dasm - System.Security.Cryptography.Cose.Tests.CoseHeaderMapTests+<>c__DisplayClass2_0:<SetValue_KnownHeaders_ThrowIf_IncorrectValue>b__1():this (FullOpts)
          14 (2.64 % of base) : 57165.dasm - Microsoft.Extensions.Primitives.StringSegmentTest:get_CompareLesserData():Xunit.TheoryData`2[Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegmentComparer] (FullOpts)
          53 (2.51 % of base) : 152704.dasm - System.Net.Quic.Tests.QuicTestBase:.cctor() (FullOpts)
          33 (2.34 % of base) : 151699.dasm - System.Net.NetworkInformation.Tests.PingTest:PingResultValidator(System.Net.NetworkInformation.PingReply,System.Net.IPAddress[],Xunit.Abstractions.ITestOutputHelper) (FullOpts)

Top method improvements (percentages):
         -66 (-62.86 % of base) : 167105.dasm - XPathTests.Common.XPathResultToken:.ctor():this (FullOpts)
         -42 (-60.87 % of base) : 4216.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
         -34 (-59.65 % of base) : 38180.dasm - Microsoft.Extensions.Hosting.Internal.HostingEnvironment:.ctor():this (FullOpts)
         -34 (-59.65 % of base) : 44923.dasm - Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator+LoggerParameter:.ctor():this (FullOpts)
         -34 (-59.65 % of base) : 50578.dasm - Microsoft.Extensions.Logging.Generators.LoggerMessageGenerator+LoggerParameter:.ctor():this (FullOpts)
         -34 (-59.65 % of base) : 248598.dasm - System.Text.Json.Serialization.Tests.RequiredKeywordTests+PersonWithRequiredMembersAndSetsRequiredMembers:.ctor():this (FullOpts)
         -34 (-59.65 % of base) : 257196.dasm - System.Text.Json.Serialization.Tests.RequiredKeywordTests+PersonWithRequiredMembersAndSetsRequiredMembers:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 198550.dasm - SerializationTypes.SimpleBaseDerived:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 305222.dasm - SerializationTypes.SimpleBaseDerived:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 166805.dasm - SerializationTypes.SimpleBaseDerived:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 197180.dasm - SerializationTypes.SimpleBaseDerived:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 166806.dasm - SerializationTypes.SimpleBaseDerived2:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 198551.dasm - SerializationTypes.SimpleBaseDerived2:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 305223.dasm - SerializationTypes.SimpleBaseDerived2:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 197181.dasm - SerializationTypes.SimpleBaseDerived2:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 84923.dasm - System.ComponentModel.EditorAttribute:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 95144.dasm - System.Data.Constraint:.ctor():this (FullOpts)
         -26 (-57.78 % of base) : 98066.dasm - System.Diagnostics.Tests.DebugTests+WriteLogger:Clear():this (FullOpts)
         -34 (-53.97 % of base) : 63683.dasm - System.CodeDom.Compiler.CompilerError:.ctor():this (FullOpts)
         -85 (-53.80 % of base) : 92127.dasm - System.Data.SimpleType:.ctor(System.String):this (FullOpts)


realworld.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13168403 (overridden on cmd)
Total bytes of diff: 13155745 (overridden on cmd)
Total bytes of delta: -12658 (-0.10 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         565 : 26808.dasm (7.35 % of base)
         216 : 27365.dasm (2.60 % of base)
          76 : 16545.dasm (2.06 % of base)
          66 : 30725.dasm (0.56 % of base)
          54 : 27142.dasm (1.19 % of base)
          34 : 26538.dasm (0.91 % of base)
          34 : 26837.dasm (1.35 % of base)
          34 : 26840.dasm (1.07 % of base)
          31 : 26809.dasm (0.74 % of base)
          28 : 27143.dasm (1.47 % of base)
          19 : 26544.dasm (1.26 % of base)
          15 : 1427.dasm (7.65 % of base)
           7 : 26687.dasm (0.34 % of base)
           7 : 26794.dasm (0.20 % of base)
           6 : 5096.dasm (0.89 % of base)
           5 : 7520.dasm (0.31 % of base)
           3 : 155.dasm (9.09 % of base)
           1 : 11198.dasm (0.05 % of base)
           1 : 29492.dasm (0.05 % of base)

Top file improvements (bytes):
       -3135 : 19442.dasm (-35.13 % of base)
       -2254 : 29593.dasm (-14.64 % of base)
       -1106 : 29896.dasm (-24.22 % of base)
        -785 : 22763.dasm (-32.53 % of base)
        -741 : 18545.dasm (-6.45 % of base)
        -420 : 16349.dasm (-21.35 % of base)
        -351 : 2644.dasm (-2.96 % of base)
        -283 : 29508.dasm (-2.95 % of base)
        -228 : 1806.dasm (-12.04 % of base)
        -226 : 11299.dasm (-8.25 % of base)
        -197 : 1950.dasm (-3.29 % of base)
        -195 : 11544.dasm (-24.19 % of base)
        -195 : 31298.dasm (-6.48 % of base)
        -176 : 11289.dasm (-15.62 % of base)
        -161 : 120.dasm (-12.25 % of base)
        -150 : 29929.dasm (-1.09 % of base)
        -132 : 30293.dasm (-62.56 % of base)
        -101 : 12280.dasm (-34.24 % of base)
         -91 : 11259.dasm (-4.38 % of base)
         -91 : 1986.dasm (-4.86 % of base)

59 total files with Code Size differences (40 improved, 19 regressed), 16 unchanged.

Top method regressions (bytes):
         565 (7.35 % of base) : 26808.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
         216 (2.60 % of base) : 27365.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          76 (2.06 % of base) : 16545.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
          66 (0.56 % of base) : 30725.dasm - System.Management.Automation.Runspaces.Help_Format_Ps1Xml+<GetFormatData>d__0:MoveNext():ubyte:this (FullOpts)
          54 (1.19 % of base) : 27142.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
          34 (0.91 % of base) : 26538.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
          34 (1.35 % of base) : 26837.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
          34 (1.07 % of base) : 26840.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
          31 (0.74 % of base) : 26809.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
          28 (1.47 % of base) : 27143.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
          19 (1.26 % of base) : 26544.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
          15 (7.65 % of base) : 1427.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
           7 (0.20 % of base) : 26794.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
           7 (0.34 % of base) : 26687.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
           6 (0.89 % of base) : 5096.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@9344-646:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
           5 (0.31 % of base) : 7520.dasm - FSharp.Compiler.ParseAndCheckInputs:f@846-44(FSharp.Compiler.ParseAndCheckInputs+TcState,FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.CompilerImports+TcImports,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.CompilerConfig+TcConfig,ubyte,Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]],FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,ubyte],Microsoft.FSharp.Core.Unit):Internal.Utilities.Library.Cancellable`1[System.Tuple`2[System.Tuple`4[FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckDeclarations+TopAttribs,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TypedImplFile],FSharp.Compiler.TypedTree+ModuleOrNamespaceType],FSharp.Compiler.ParseAndCheckInputs+TcState]] (FullOpts)
           3 (9.09 % of base) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           1 (0.05 % of base) : 11198.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 29492.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)

Top method improvements (bytes):
       -3135 (-35.13 % of base) : 19442.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
       -2254 (-14.64 % of base) : 29593.dasm - System.Management.Automation.Runspaces.InitialSessionState:get_BuiltInAliases():System.Management.Automation.Runspaces.SessionStateAliasEntry[] (FullOpts)
       -1106 (-24.22 % of base) : 29896.dasm - System.Management.Automation.LanguagePrimitives:.cctor() (FullOpts)
        -785 (-32.53 % of base) : 22763.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
        -741 (-6.45 % of base) : 18545.dasm - System.Text.RegularExpressions.RegexCompiler:.cctor() (FullOpts)
        -420 (-21.35 % of base) : 16349.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DocumentationCommentXmlTokens:.cctor() (FullOpts)
        -351 (-2.96 % of base) : 2644.dasm - FSharp.Compiler.CompilerOptions:internalFlags(FSharp.Compiler.CompilerConfig+TcConfigBuilder):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOption] (FullOpts)
        -283 (-2.95 % of base) : 29508.dasm - System.Management.Automation.Runspaces.InitialSessionState:.cctor() (FullOpts)
        -228 (-12.04 % of base) : 1806.dasm - System.UriParser:.cctor() (FullOpts)
        -226 (-8.25 % of base) : 11299.dasm - BenchmarkDotNet.Jobs.RunMode:.cctor() (FullOpts)
        -197 (-3.29 % of base) : 1950.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
        -195 (-24.19 % of base) : 11544.dasm - ILLinkBenchmarks.BasicBenchmark:.ctor():this (FullOpts)
        -195 (-6.48 % of base) : 31298.dasm - System.Management.Automation.Language.TokenTraits:.cctor() (FullOpts)
        -176 (-15.62 % of base) : 11289.dasm - BenchmarkDotNet.Jobs.GcMode:.cctor() (FullOpts)
        -161 (-12.25 % of base) : 120.dasm - System.Globalization.CultureData:CreateCultureWithInvariantData():System.Globalization.CultureData (FullOpts)
        -150 (-1.09 % of base) : 29929.dasm - System.Management.Automation.Language.CachedReflectionInfo:.cctor() (FullOpts)
        -132 (-62.56 % of base) : 30293.dasm - System.Management.Automation.LogContext:.ctor():this (FullOpts)
        -101 (-34.24 % of base) : 12280.dasm - System.SpanHelpers:Fill[SixLabors.ImageSharp.PixelFormats.Rgba32](byref,ulong,SixLabors.ImageSharp.PixelFormats.Rgba32) (FullOpts)
         -91 (-4.38 % of base) : 11259.dasm - BenchmarkDotNet.Jobs.EnvironmentMode:.cctor() (FullOpts)
         -91 (-4.86 % of base) : 1986.dasm - System.Xml.XmlTextReaderImpl:ParseElement():this (FullOpts)

Top method regressions (percentages):
           3 (9.09 % of base) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
          15 (7.65 % of base) : 1427.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
         565 (7.35 % of base) : 26808.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
         216 (2.60 % of base) : 27365.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          76 (2.06 % of base) : 16545.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
          28 (1.47 % of base) : 27143.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
          34 (1.35 % of base) : 26837.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
          19 (1.26 % of base) : 26544.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
          54 (1.19 % of base) : 27142.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
          34 (1.07 % of base) : 26840.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
          34 (0.91 % of base) : 26538.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
           6 (0.89 % of base) : 5096.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@9344-646:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
          31 (0.74 % of base) : 26809.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
          66 (0.56 % of base) : 30725.dasm - System.Management.Automation.Runspaces.Help_Format_Ps1Xml+<GetFormatData>d__0:MoveNext():ubyte:this (FullOpts)
           7 (0.34 % of base) : 26687.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
           5 (0.31 % of base) : 7520.dasm - FSharp.Compiler.ParseAndCheckInputs:f@846-44(FSharp.Compiler.ParseAndCheckInputs+TcState,FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.CompilerImports+TcImports,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.CompilerConfig+TcConfig,ubyte,Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]],FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,ubyte],Microsoft.FSharp.Core.Unit):Internal.Utilities.Library.Cancellable`1[System.Tuple`2[System.Tuple`4[FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckDeclarations+TopAttribs,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TypedImplFile],FSharp.Compiler.TypedTree+ModuleOrNamespaceType],FSharp.Compiler.ParseAndCheckInputs+TcState]] (FullOpts)
           7 (0.20 % of base) : 26794.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
           1 (0.05 % of base) : 11198.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
           1 (0.05 % of base) : 29492.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)

Top method improvements (percentages):
        -132 (-62.56 % of base) : 30293.dasm - System.Management.Automation.LogContext:.ctor():this (FullOpts)
         -42 (-60.87 % of base) : 1794.dasm - System.Xml.XmlTextReaderImpl+NodeData:ClearName():this (FullOpts)
         -25 (-45.45 % of base) : 1795.dasm - System.Xml.XmlTextReaderImpl+XmlContext:.ctor():this (FullOpts)
         -50 (-42.02 % of base) : 29530.dasm - System.Management.Automation.PSStyle+FormattingData:.ctor():this (FullOpts)
         -45 (-35.43 % of base) : 14425.dasm - System.Net.SystemNetworkCredential:.ctor():this (FullOpts)
       -3135 (-35.13 % of base) : 19442.dasm - Microsoft.CodeAnalysis.WellKnownMembers:.cctor() (FullOpts)
        -101 (-34.24 % of base) : 12280.dasm - System.SpanHelpers:Fill[SixLabors.ImageSharp.PixelFormats.Rgba32](byref,ulong,SixLabors.ImageSharp.PixelFormats.Rgba32) (FullOpts)
        -785 (-32.53 % of base) : 22763.dasm - Microsoft.CodeAnalysis.SpecialMembers:.cctor() (FullOpts)
         -69 (-31.08 % of base) : 12435.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (FullOpts)
         -46 (-27.88 % of base) : 14493.dasm - System.UriBuilder:.ctor(System.String,System.String):this (FullOpts)
         -53 (-27.32 % of base) : 12242.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
       -1106 (-24.22 % of base) : 29896.dasm - System.Management.Automation.LanguagePrimitives:.cctor() (FullOpts)
        -195 (-24.19 % of base) : 11544.dasm - ILLinkBenchmarks.BasicBenchmark:.ctor():this (FullOpts)
         -36 (-21.82 % of base) : 30131.dasm - System.Management.Automation.AliasInfo:.ctor(System.String,System.String,System.Management.Automation.ExecutionContext,int):this (FullOpts)
        -420 (-21.35 % of base) : 16349.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DocumentationCommentXmlTokens:.cctor() (FullOpts)
         -25 (-20.83 % of base) : 17677.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:get_XmlCarriageReturnLineFeed():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
         -30 (-20.00 % of base) : 30119.dasm - System.Management.Automation.CommandInfo:.ctor(System.String,int):this (FullOpts)
         -31 (-19.62 % of base) : 31440.dasm - System.Management.Automation.Language.VariableAnalysis+Block:.ctor():this (FullOpts)
         -22 (-17.89 % of base) : 14387.dasm - System.Net.Http.Headers.ProductInfoHeaderParser:.cctor() (FullOpts)
         -47 (-17.87 % of base) : 14854.dasm - System.Net.Security.SslStream:.cctor() (FullOpts)


smoke_tests.nativeaot.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 4064942 (overridden on cmd)
Total bytes of diff: 4061600 (overridden on cmd)
Total bytes of delta: -3342 (-0.08 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          13 : 5822.dasm (6.10 % of base)
           3 : 9553.dasm (9.38 % of base)
           3 : 23759.dasm (9.38 % of base)
           3 : 19024.dasm (9.38 % of base)
           3 : 26466.dasm (9.38 % of base)

Top file improvements (bytes):
        -187 : 21931.dasm (-4.73 % of base)
        -160 : 16380.dasm (-21.77 % of base)
        -146 : 13447.dasm (-1.75 % of base)
        -146 : 16937.dasm (-1.75 % of base)
        -129 : 27229.dasm (-19.28 % of base)
        -129 : 24520.dasm (-19.28 % of base)
        -129 : 2848.dasm (-19.28 % of base)
        -129 : 19796.dasm (-19.28 % of base)
        -111 : 13799.dasm (-3.39 % of base)
        -111 : 17093.dasm (-3.39 % of base)
         -90 : 6390.dasm (-7.71 % of base)
         -61 : 8495.dasm (-30.35 % of base)
         -61 : 18063.dasm (-29.33 % of base)
         -56 : 20127.dasm (-0.84 % of base)
         -56 : 21698.dasm (-0.84 % of base)
         -46 : 16455.dasm (-14.79 % of base)
         -42 : 2633.dasm (-6.44 % of base)
         -39 : 13796.dasm (-2.22 % of base)
         -39 : 14742.dasm (-6.15 % of base)
         -39 : 17090.dasm (-2.22 % of base)

53 total files with Code Size differences (48 improved, 5 regressed), 20 unchanged.

Top method regressions (bytes):
          13 (6.10 % of base) : 5822.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
           3 (9.38 % of base) : 9553.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (9.38 % of base) : 23759.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (9.38 % of base) : 19024.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (9.38 % of base) : 26466.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)

Top method improvements (bytes):
        -187 (-4.73 % of base) : 21931.dasm - System.Runtime.InteropServices.Marshal:GetExceptionForHRInternal(int,long):System.Exception (FullOpts)
        -160 (-21.77 % of base) : 16380.dasm - System.Uri:GetException(int):System.UriFormatException (FullOpts)
        -146 (-1.75 % of base) : 13447.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
        -146 (-1.75 % of base) : 16937.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
        -129 (-19.28 % of base) : 27229.dasm - System.Runtime.Loader.LibraryNameVariation+<DetermineLibraryNameVariations>d__5:MoveNext():ubyte:this (FullOpts)
        -129 (-19.28 % of base) : 24520.dasm - System.Runtime.Loader.LibraryNameVariation+<DetermineLibraryNameVariations>d__5:MoveNext():ubyte:this (FullOpts)
        -129 (-19.28 % of base) : 2848.dasm - System.Runtime.Loader.LibraryNameVariation+<DetermineLibraryNameVariations>d__5:MoveNext():ubyte:this (FullOpts)
        -129 (-19.28 % of base) : 19796.dasm - System.Runtime.Loader.LibraryNameVariation+<DetermineLibraryNameVariations>d__5:MoveNext():ubyte:this (FullOpts)
        -111 (-3.39 % of base) : 13799.dasm - Generics+TestFieldAccess:TestStaticFields() (FullOpts)
        -111 (-3.39 % of base) : 17093.dasm - Generics+TestFieldAccess:TestStaticFields() (FullOpts)
         -90 (-7.71 % of base) : 6390.dasm - System.Reflection.Runtime.MethodInfos.CustomMethodMapper+StringActions:get_Map():System.Collections.Generic.Dictionary`2[System.Reflection.MethodBase,System.Reflection.Runtime.MethodInfos.CustomMethodInvokerAction] (FullOpts)
         -61 (-30.35 % of base) : 8495.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -61 (-29.33 % of base) : 18063.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -56 (-0.84 % of base) : 20127.dasm - ReflectionTest+TestReflectionInvoke:Run() (FullOpts)
         -56 (-0.84 % of base) : 21698.dasm - ReflectionTest+TestReflectionInvoke:Run() (FullOpts)
         -46 (-14.79 % of base) : 16455.dasm - System.ThrowHelper:GetArraySegmentCtorValidationFailedException(System.Array,int,int):System.Exception (FullOpts)
         -42 (-6.44 % of base) : 2633.dasm - System.Reflection.Runtime.ParameterInfos.RuntimeFatMethodParameterInfo+<get_CustomAttributes>d__2:MoveNext():ubyte:this (FullOpts)
         -39 (-2.22 % of base) : 13796.dasm - Generics+TestFieldAccess:TestDynamicInvokeStubs() (FullOpts)
         -39 (-2.22 % of base) : 17090.dasm - Generics+TestFieldAccess:TestDynamicInvokeStubs() (FullOpts)
         -39 (-6.15 % of base) : 14742.dasm - System.Linq.Expressions.Interpreter.CallInstruction:GetArrayAccessor(System.Reflection.MethodInfo,int):System.Linq.Expressions.Interpreter.CallInstruction (FullOpts)

Top method regressions (percentages):
           3 (9.38 % of base) : 9553.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (9.38 % of base) : 23759.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (9.38 % of base) : 19024.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (9.38 % of base) : 26466.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
          13 (6.10 % of base) : 5822.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)

Top method improvements (percentages):
          -5 (-45.45 % of base) : 8944.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
         -20 (-35.71 % of base) : 10432.dasm - System.ObjectDisposedException:.ctor(System.String):this (FullOpts)
         -20 (-35.71 % of base) : 23467.dasm - System.ObjectDisposedException:.ctor(System.String):this (FullOpts)
         -20 (-35.71 % of base) : 26149.dasm - System.ObjectDisposedException:.ctor(System.String):this (FullOpts)
         -20 (-35.71 % of base) : 18745.dasm - System.ObjectDisposedException:.ctor(System.String):this (FullOpts)
          -5 (-33.33 % of base) : 20414.dasm - System.Threading.Thread:HasStarted():ubyte:this (FullOpts)
         -61 (-30.35 % of base) : 8495.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -61 (-29.33 % of base) : 18063.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -10 (-27.78 % of base) : 11559.dasm - System.DivideByZeroException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 1494.dasm - System.MissingMemberException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 1779.dasm - System.MissingMethodException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 11556.dasm - System.OverflowException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 23161.dasm - System.OverflowException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 25953.dasm - System.OverflowException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 18425.dasm - System.OverflowException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 26117.dasm - System.PlatformNotSupportedException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 23407.dasm - System.PlatformNotSupportedException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 10491.dasm - System.PlatformNotSupportedException:.ctor():this (FullOpts)
         -10 (-27.78 % of base) : 18662.dasm - System.PlatformNotSupportedException:.ctor():this (FullOpts)
        -160 (-21.77 % of base) : 16380.dasm - System.Uri:GetException(int):System.UriFormatException (FullOpts)