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)