forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[X64] [MichalPetryka] Return type from exact method context for call returns #414
Comments
Top method regressions2 (0.13 % of base) - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltArgument(System.Xml.Xsl.XmlQueryType,System.Object,System.Type):System.Object ; Assembly listing for method System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltArgument(System.Xml.Xsl.XmlQueryType,System.Object,System.Type):System.Object (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 20 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T05] ( 4, 4 ) ref -> rdi class-hnd single-def <System.Xml.Xsl.XmlQueryType>
+; V00 arg0 [V00,T06] ( 4, 4 ) ref -> rdi class-hnd single-def <System.Xml.Xsl.XmlQueryType>
; V01 arg1 [V01,T02] ( 21, 11.50) ref -> rbx class-hnd <System.Object>
-; V02 arg2 [V02,T04] ( 10, 5 ) ref -> r15 class-hnd single-def <System.Type>
+; V02 arg2 [V02,T05] ( 10, 5 ) ref -> r15 class-hnd single-def <System.Type>
; V03 loc0 [V03,T07] ( 6, 4 ) int -> rax
; V04 loc1 [V04,T03] ( 5, 9.50) ref -> r15 class-hnd single-def <System.Collections.Generic.IList`1[System.Xml.XPath.XPathNavigator]>
-; V05 loc2 [V05,T06] ( 3, 5 ) ref -> rbx class-hnd exact single-def <System.Xml.XPath.XPathNavigator[]>
-; V06 loc3 [V06,T00] ( 6, 20.50) int -> r14
+; V05 loc2 [V05,T04] ( 4, 9 ) ref -> rbx class-hnd exact single-def <System.Xml.XPath.XPathNavigator[]>
+;* V06 loc3 [V06,T48] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07,T47] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IList`1[System.Xml.XPath.XPathItem]>
; V08 loc5 [V08,T16] ( 5, 2.50) ref -> r15 class-hnd single-def <System.Xml.XPath.XPathItem>
; V09 loc6 [V09,T18] ( 4, 2 ) ref -> rax class-hnd single-def <System.Xml.Xsl.Runtime.RtfNavigator>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V11 tmp1 [V11,T13] ( 3, 3 ) ref -> r15 class-hnd exact single-def "Single-def Box Helper" <System.DateTime>
; V12 tmp2 [V12,T08] ( 4, 4 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <MS.Internal.Xml.XPath.XPathArrayIterator>
; V13 tmp3 [V13,T09] ( 4, 4 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <MS.Internal.Xml.XPath.XPathArrayIterator>
-; V14 tmp4 [V14,T50] ( 3, 0 ) ref -> r14 class-hnd exact single-def "dup spill" <System.String[]>
-; V15 tmp5 [V15,T54] ( 2, 0 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
-; V16 tmp6 [V16,T55] ( 2, 0 ) ref -> rax class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
-; V17 tmp7 [V17,T51] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.XslTransformException>
-; V18 tmp8 [V18,T10] ( 4, 4 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <MS.Internal.Xml.XPath.XPathArrayIterator>
-; V19 tmp9 [V19,T22] ( 3, 2 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V20 tmp10 [V20 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Xml.Schema.XsdDateTime>
-; V21 tmp11 [V21 ] ( 13, 6.50) struct (56) [rbp-0x60] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Xml.Schema.XsdDateTime+Parser>
-; V22 tmp12 [V22,T52] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Xml.Schema.XsdDateTimeFlags>
-; V23 tmp13 [V23,T56] ( 2, 0 ) ref -> r15 class-hnd exact single-def "impImportAndPushBox" <System.String>
-; V24 tmp14 [V24,T53] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.FormatException>
-;* V25 tmp15 [V25 ] ( 0, 0 ) struct (56) zero-ref do-not-enreg[SF] "Inlining Arg" <System.Xml.Schema.XsdDateTime+Parser>
-;* V26 tmp16 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
-;* V27 tmp17 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V14 tmp4 [V14,T51] ( 3, 0 ) ref -> r14 class-hnd exact single-def "dup spill" <System.String[]>
+; V15 tmp5 [V15,T55] ( 2, 0 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
+; V16 tmp6 [V16,T56] ( 2, 0 ) ref -> rax class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
+; V17 tmp7 [V17,T52] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.XslTransformException>
+; V18 tmp8 [V18,T01] ( 2, 16 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" <System.Xml.XPath.XPathNavigator>
+; V19 tmp9 [V19,T10] ( 4, 4 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <MS.Internal.Xml.XPath.XPathArrayIterator>
+; V20 tmp10 [V20,T22] ( 3, 2 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V21 tmp11 [V21 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Xml.Schema.XsdDateTime>
+; V22 tmp12 [V22 ] ( 13, 6.50) struct (56) [rbp-0x60] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Xml.Schema.XsdDateTime+Parser>
+; V23 tmp13 [V23,T53] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <System.Xml.Schema.XsdDateTimeFlags>
+; V24 tmp14 [V24,T57] ( 2, 0 ) ref -> r15 class-hnd exact single-def "impImportAndPushBox" <System.String>
+; V25 tmp15 [V25,T54] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.FormatException>
+;* V26 tmp16 [V26 ] ( 0, 0 ) struct (56) zero-ref do-not-enreg[SF] "Inlining Arg" <System.Xml.Schema.XsdDateTime+Parser>
+;* V27 tmp17 [V27 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
;* V28 tmp18 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V29 tmp19 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V30 tmp20 [V30 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V31 tmp21 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V32 tmp22 [V32 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V33 tmp23 [V33,T26] ( 2, 2 ) long -> r12 "impAppendStmt"
-;* V34 tmp24 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V35 tmp25 [V35 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[uint]>
-;* V36 tmp26 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-;* V37 tmp27 [V37 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V33 tmp23 [V33 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V34 tmp24 [V34,T26] ( 2, 2 ) long -> r12 "impAppendStmt"
+;* V35 tmp25 [V35 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V36 tmp26 [V36 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[uint]>
+;* V37 tmp27 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
;* V38 tmp28 [V38 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V39 tmp29 [V39,T39] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V40 tmp30 [V40 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
+;* V39 tmp29 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V40 tmp30 [V40,T39] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V41 tmp31 [V41 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-; V42 tmp32 [V42,T14] ( 3, 3 ) int -> rdi "dup spill"
-; V43 tmp33 [V43,T28] ( 3, 1.50) int -> r10 "Inline stloc first use temp"
-;* V44 tmp34 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V42 tmp32 [V42 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
+; V43 tmp33 [V43,T14] ( 3, 3 ) int -> rdi "dup spill"
+; V44 tmp34 [V44,T28] ( 3, 1.50) int -> r10 "Inline stloc first use temp"
;* V45 tmp35 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V46 tmp36 [V46 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V47 tmp37 [V47,T15] ( 3, 3 ) long -> rax "dup spill"
-;* V48 tmp38 [V48 ] ( 0, 0 ) long -> zero-ref
-;* V49 tmp39 [V49 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
-;* V50 tmp40 [V50 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V51 tmp41 [V51,T23] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Object>
-; V52 tmp42 [V52,T24] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Object>
-; V53 tmp43 [V53,T25] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Object>
-; V54 tmp44 [V54,T29] ( 3, 1.50) long -> [rbp-0x68] "field V20._dt (fldOffset=0x0)" P-INDEP
-; V55 tmp45 [V55,T40] ( 2, 1 ) int -> rbx "field V20._extra (fldOffset=0x8)" P-INDEP
-; V56 tmp46 [V56,T20] ( 4, 2 ) long -> r12 "field V26._dateData (fldOffset=0x0)" P-INDEP
-; V57 tmp47 [V57,T19] ( 4, 2 ) byref -> r10 "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V58 tmp48 [V58,T41] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-;* V59 tmp49 [V59 ] ( 0, 0 ) byref -> zero-ref single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-;* V60 tmp50 [V60 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
-; V61 tmp51 [V61,T37] ( 2, 1 ) byref -> r10 single-def "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V62 tmp52 [V62,T48] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
-; V63 tmp53 [V63,T38] ( 2, 1 ) byref -> r10 single-def "field V41._reference (fldOffset=0x0)" P-INDEP
-;* V64 tmp54 [V64,T49] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
-; V65 tmp55 [V65,T42] ( 2, 1 ) long -> rax "field V49._dateData (fldOffset=0x0)" P-INDEP
-; V66 tmp56 [V66,T43] ( 2, 1 ) int -> rbx "V25.[008..012)"
-; V67 tmp57 [V67,T11] ( 7, 3.50) int -> rdi "V25.[012..016)"
-; V68 tmp58 [V68,T17] ( 5, 2.50) int -> rax "V25.[016..020)"
-; V69 tmp59 [V69,T21] ( 4, 2 ) int -> rcx "V25.[020..024)"
-; V70 tmp60 [V70,T30] ( 3, 1.50) int -> rdx "V25.[024..028)"
-; V71 tmp61 [V71,T31] ( 3, 1.50) int -> rsi "V25.[028..032)"
-; V72 tmp62 [V72,T32] ( 3, 1.50) int -> r8 "V25.[032..036)"
-; V73 tmp63 [V73,T33] ( 3, 1.50) int -> r9 "V25.[036..040)"
-; V74 tmp64 [V74,T44] ( 2, 1 ) int -> r15 "V25.[040..044)"
-; V75 tmp65 [V75,T45] ( 2, 1 ) int -> r14 "V25.[044..048)"
-; V76 tmp66 [V76,T46] ( 2, 1 ) int -> r13 "V25.[048..052)"
-; V77 tmp67 [V77,T57] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V78 tmp68 [V78,T27] ( 2, 2 ) long -> rsi "argument with side effect"
-; V79 tmp69 [V79,T01] ( 2, 16 ) ref -> rdx "argument with side effect"
+;* V46 tmp36 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V47 tmp37 [V47 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V48 tmp38 [V48,T15] ( 3, 3 ) long -> rax "dup spill"
+;* V49 tmp39 [V49 ] ( 0, 0 ) long -> zero-ref
+;* V50 tmp40 [V50 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
+;* V51 tmp41 [V51 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V52 tmp42 [V52,T23] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Object>
+; V53 tmp43 [V53,T24] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Object>
+; V54 tmp44 [V54,T25] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Object>
+; V55 tmp45 [V55,T29] ( 3, 1.50) long -> [rbp-0x68] "field V21._dt (fldOffset=0x0)" P-INDEP
+; V56 tmp46 [V56,T40] ( 2, 1 ) int -> rbx "field V21._extra (fldOffset=0x8)" P-INDEP
+; V57 tmp47 [V57,T20] ( 4, 2 ) long -> r12 "field V27._dateData (fldOffset=0x0)" P-INDEP
+; V58 tmp48 [V58,T19] ( 4, 2 ) byref -> r10 "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V59 tmp49 [V59,T41] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
+;* V60 tmp50 [V60 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
+;* V61 tmp51 [V61 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
+; V62 tmp52 [V62,T37] ( 2, 1 ) byref -> r10 single-def "field V41._reference (fldOffset=0x0)" P-INDEP
+;* V63 tmp53 [V63,T49] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
+; V64 tmp54 [V64,T38] ( 2, 1 ) byref -> r10 single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V65 tmp55 [V65,T50] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
+; V66 tmp56 [V66,T42] ( 2, 1 ) long -> rax "field V50._dateData (fldOffset=0x0)" P-INDEP
+; V67 tmp57 [V67,T43] ( 2, 1 ) int -> rbx "V26.[008..012)"
+; V68 tmp58 [V68,T11] ( 7, 3.50) int -> rdi "V26.[012..016)"
+; V69 tmp59 [V69,T17] ( 5, 2.50) int -> rax "V26.[016..020)"
+; V70 tmp60 [V70,T21] ( 4, 2 ) int -> rcx "V26.[020..024)"
+; V71 tmp61 [V71,T30] ( 3, 1.50) int -> rdx "V26.[024..028)"
+; V72 tmp62 [V72,T31] ( 3, 1.50) int -> rsi "V26.[028..032)"
+; V73 tmp63 [V73,T32] ( 3, 1.50) int -> r8 "V26.[032..036)"
+; V74 tmp64 [V74,T33] ( 3, 1.50) int -> r9 "V26.[036..040)"
+; V75 tmp65 [V75,T44] ( 2, 1 ) int -> r15 "V26.[040..044)"
+; V76 tmp66 [V76,T45] ( 2, 1 ) int -> r14 "V26.[044..048)"
+; V77 tmp67 [V77,T46] ( 2, 1 ) int -> r13 "V26.[048..052)"
+; V78 tmp68 [V78,T58] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V79 tmp69 [V79,T27] ( 2, 2 ) long -> rsi "argument with side effect"
; V80 cse0 [V80,T34] ( 3, 1.50) int -> rax "CSE #04: conservative"
; V81 cse1 [V81,T35] ( 3, 1.50) long -> r14 "CSE #08: conservative"
-; V82 rat0 [V82,T12] ( 4, 3.50) ref -> r14 "replacement local"
-; V83 rat1 [V83,T36] ( 3, 1 ) long -> rdi "CSE for expectedClsNode"
+; V82 rat0 [V82,T00] ( 7, 24.50) long -> r14 "Widened IV V06"
+; V83 rat1 [V83,T12] ( 4, 3.50) ref -> r14 "replacement local"
+; V84 rat2 [V84,T36] ( 3, 1 ) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 72
G_M4320_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 72
lea rbp, [rsp+0x70]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x60], ymm8
vmovdqa xmmword ptr [rbp-0x40], xmm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov rbx, rsi
mov r15, rdx
;; size=46 bbWeight=1 PerfScore 12.83
G_M4320_IG02:
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x58]
call [rax+0x38]System.Xml.Xsl.XmlQueryType:get_TypeCode():int:this
cmp eax, 2
jle G_M4320_IG11
;; size=19 bbWeight=1 PerfScore 8.25
G_M4320_IG03:
cmp eax, 12
jne G_M4320_IG10
mov rdi, 0xD1FFAB1E ; 'System.DateTime'
cmp r15, rdi
jne G_M4320_IG19
mov r14, rbx
test r14, r14
je SHORT G_M4320_IG05
;; size=36 bbWeight=0.50 PerfScore 2.12
G_M4320_IG04:
mov rdi, 0xD1FFAB1E ; System.String
cmp qword ptr [r14], rdi
jne G_M4320_IG25
;; size=19 bbWeight=0.25 PerfScore 1.06
G_M4320_IG05:
vxorps ymm0, ymm0, ymm0
vmovdqu ymmword ptr [rbp-0x60], ymm0
vmovdqu ymmword ptr [rbp-0x48], ymm0
lea rdi, [rbp-0x60]
mov rsi, r14
mov edx, 255
mov rax, 0xD1FFAB1E ; code for System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this
call [rax]System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this
test eax, eax
je G_M4320_IG24
mov ebx, dword ptr [rbp-0x58]
mov edi, dword ptr [rbp-0x54]
mov eax, dword ptr [rbp-0x50]
mov ecx, dword ptr [rbp-0x4C]
mov edx, dword ptr [rbp-0x48]
mov esi, dword ptr [rbp-0x44]
mov r8d, dword ptr [rbp-0x40]
mov r9d, dword ptr [rbp-0x3C]
mov r15d, dword ptr [rbp-0x38]
mov r14d, dword ptr [rbp-0x34]
mov r13d, dword ptr [rbp-0x30]
mov r10d, edi
sub r10d, 1
cmp r10d, 0x270E
ja G_M4320_IG23
mov r10d, eax
sub r10d, 1
cmp r10d, 11
ja G_M4320_IG23
test ecx, ecx
jle G_M4320_IG23
test dil, 3
jne SHORT G_M4320_IG07
test dil, 15
je SHORT G_M4320_IG06
mov r10d, edi
imul r10, r10, 0xD1FFAB1E
shr r10, 35
imul r10d, r10d, 25
mov r11d, edi
sub r11d, r10d
je SHORT G_M4320_IG07
;; size=167 bbWeight=0.50 PerfScore 16.17
G_M4320_IG06:
mov r10, 0xD1FFAB1E ; static handle
jmp SHORT G_M4320_IG08
;; size=12 bbWeight=0.50 PerfScore 1.12
G_M4320_IG07:
mov r10, 0xD1FFAB1E ; static handle
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M4320_IG08:
mov r11d, eax
mov r11d, dword ptr [r10+4*r11]
lea r12d, [rax-0x01]
cmp r12d, 13
jae G_M4320_IG27
dec eax
mov eax, dword ptr [r10+4*rax]
sub r11d, eax
cmp r11d, ecx
jb G_M4320_IG23
dec edi
mov r10d, edi
imul r10, r10, 0xD1FFAB1E
shr r10, 37
imul edi, edi, 0x5B5
shr edi, 2
sub edi, r10d
shr r10d, 2
add edi, r10d
add edi, eax
lea edi, [rdi+rcx-0x01]
mov r12d, edi
mov rdi, 0xD1FFAB1E
imul r12, rdi
cmp edx, 24
jae G_M4320_IG22
cmp esi, 60
jae G_M4320_IG22
cmp r8d, 60
jae G_M4320_IG22
imul edi, edx, 0xE10
imul eax, esi, 60
add edi, eax
add edi, r8d
imul rdi, rdi, 0xD1FFAB1E
add r12, rdi
mov rax, r12
test r9d, r9d
mov qword ptr [rbp-0x68], rax
je SHORT G_M4320_IG09
mov rax, 0xD1FFAB1E
and rax, r12
movsxd rdi, r9d
add rax, rdi
mov rdi, 0xD1FFAB1E
cmp rax, rdi
ja G_M4320_IG21
mov rdi, 0xD1FFAB1E
and rdi, r12
or rax, rdi
mov qword ptr [rbp-0x68], rax
;; size=219 bbWeight=0.50 PerfScore 17.62
G_M4320_IG09:
shl ebx, 24
shl r15d, 16
or ebx, r15d
shl r14d, 8
or ebx, r14d
or ebx, r13d
mov rdi, 0xD1FFAB1E ; System.DateTime
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, qword ptr [rbp-0x68]
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime
call [rax]System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime
mov qword ptr [r15+0x08], rax
mov rbx, r15
jmp G_M4320_IG19
;; size=68 bbWeight=0.50 PerfScore 5.75
G_M4320_IG10:
cmp eax, 16
jne G_M4320_IG19
mov rdx, 0xD1FFAB1E ; 'System.Double'
cmp r15, rdx
je G_M4320_IG19
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
mov rdi, rbx
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
call [rax]System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
mov rbx, rax
jmp G_M4320_IG19
;; size=67 bbWeight=0.50 PerfScore 5.50
G_M4320_IG11:
cmp eax, 1
jne G_M4320_IG15
mov rsi, 0xD1FFAB1E ; 'System.Object'
cmp r15, rsi
jne G_M4320_IG26
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.IList`1[System.Xml.XPath.XPathItem]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov rdi, rbx
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
call [r11]System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
cmp eax, 1
je SHORT G_M4320_IG12
mov rdi, 0xD1FFAB1E ; MS.Internal.Xml.XPath.XPathArrayIterator
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Collections.IList
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov dword ptr [r15+0x08], -1
lea rdi, bword ptr [r15+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rbx, r15
jmp G_M4320_IG19
;; size=145 bbWeight=0.50 PerfScore 10.75
G_M4320_IG12:
mov rdi, rbx
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IList`1[System.__Canon]:get_Item(int):System.__Canon:this
xor esi, esi
call [r11]System.Collections.Generic.IList`1[System.__Canon]:get_Item(int):System.__Canon:this
mov r15, rax
mov rdi, r15
mov rax, qword ptr [r15]
mov r14, qword ptr [rax+0x40]
call [r14+0x20]System.Xml.XPath.XPathItem:get_IsNode():ubyte:this
test eax, eax
jne SHORT G_M4320_IG13
mov rdi, r15
call [r14+0x38]System.Xml.XPath.XPathItem:get_TypedValue():System.Object:this
mov rbx, rax
jmp G_M4320_IG19
;; size=54 bbWeight=0.50 PerfScore 9.00
G_M4320_IG13:
mov rsi, r15
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.Runtime.RtfNavigator
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
jne SHORT G_M4320_IG14
mov rdi, 0xD1FFAB1E ; MS.Internal.Xml.XPath.XPathArrayIterator
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Collections.IList
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov dword ptr [r15+0x08], -1
lea rdi, bword ptr [r15+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rbx, r15
jmp G_M4320_IG19
;; size=101 bbWeight=0.50 PerfScore 7.62
G_M4320_IG14:
mov rdi, rax
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0xB8]
call [rax+0x08]System.Xml.Xsl.Runtime.RtfNavigator:ToNavigator():System.Xml.XPath.XPathNavigator:this
mov rbx, rax
jmp G_M4320_IG19
;; size=24 bbWeight=0.50 PerfScore 4.75
G_M4320_IG15:
cmp eax, 2
jne G_M4320_IG19
mov rsi, 0xD1FFAB1E ; 'System.Xml.XPath.XPathNodeIterator'
cmp r15, rsi
je G_M4320_IG18
mov rsi, 0xD1FFAB1E ; 'System.Xml.XPath.XPathNavigator[]'
cmp r15, rsi
jne G_M4320_IG19
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.IList`1[System.Xml.XPath.XPathNavigator]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov r15, rax
mov rdi, r15
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
call [r11]System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
movsxd rsi, eax
mov rdi, 0xD1FFAB1E ; System.Xml.XPath.XPathNavigator[]
call CORINFO_HELP_NEWARR_1_OBJ
mov rbx, rax
xor r14d, r14d
mov rdi, r15
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
test eax, eax
jle SHORT G_M4320_IG17
;; size=135 bbWeight=0.50 PerfScore 9.25
G_M4320_IG16:
mov rdi, r15
mov esi, r14d
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IList`1[System.__Canon]:get_Item(int):System.__Canon:this
call [r11]System.Collections.Generic.IList`1[System.__Canon]:get_Item(int):System.__Canon:this
- mov rdx, rax
- movsxd rsi, r14d
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rax]CORINFO_HELP_ARRADDR_ST
+ cmp r14d, dword ptr [rbx+0x08]
+ jae G_M4320_IG27
+ lea rdi, bword ptr [rbx+8*r14+0x10]
+ mov rsi, rax
+ call CORINFO_HELP_ASSIGN_REF
inc r14d
mov rdi, r15
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
call [r11]System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
cmp eax, r14d
jg SHORT G_M4320_IG16
- ;; size=64 bbWeight=4 PerfScore 51.00
+ ;; size=66 bbWeight=4 PerfScore 60.00
G_M4320_IG17:
jmp SHORT G_M4320_IG19
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M4320_IG18:
mov rdi, 0xD1FFAB1E ; MS.Internal.Xml.XPath.XPathArrayIterator
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Collections.IList
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov dword ptr [r15+0x08], -1
lea rdi, bword ptr [r15+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rbx, r15
;; size=66 bbWeight=0.50 PerfScore 4.12
G_M4320_IG19:
mov rax, rbx
;; size=3 bbWeight=1 PerfScore 0.25
G_M4320_IG20:
add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M4320_IG21:
xor edi, edi
mov rax, 0xD1FFAB1E ; code for System.DateTime:ThrowDateArithmetic(int)
call [rax]System.DateTime:ThrowDateArithmetic(int)
int3
;; size=15 bbWeight=0 PerfScore 0.00
G_M4320_IG22:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_BadHourMinuteSecond()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_BadHourMinuteSecond()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M4320_IG23:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_BadYearMonthDay()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_BadYearMonthDay()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M4320_IG24:
mov rdi, 0xD1FFAB1E ; System.Xml.Schema.XsdDateTimeFlags
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_XmlConvert_BadFormat():System.String
call [rax]System.SR:get_XmlConvert_BadFormat():System.String
mov r15, rax
mov dword ptr [rbx+0x08], 255
mov rdi, 0xD1FFAB1E ; System.FormatException
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdx, rbx
mov rdi, r15
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object,System.Object):System.String
mov rsi, rax
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.FormatException:.ctor(System.String):this
call [rax]System.FormatException:.ctor(System.String):this
mov rdi, r13
call CORINFO_HELP_THROW
int3
;; size=106 bbWeight=0 PerfScore 0.00
G_M4320_IG25:
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=16 bbWeight=0 PerfScore 0.00
G_M4320_IG26:
mov rax, 0xD1FFAB1E ; code for System.SR:get_Xslt_UnsupportedClrType():System.String
call [rax]System.SR:get_Xslt_UnsupportedClrType():System.String
mov rbx, rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Reflection.MemberInfo:get_Name():System.String:this
lea rdi, bword ptr [r14+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.XslTransformException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, r15
mov rsi, rbx
mov rdx, r14
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.XslTransformException:.ctor(System.String,System.String[]):this
call [rax]System.Xml.Xsl.XslTransformException:.ctor(System.String,System.String[]):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=111 bbWeight=0 PerfScore 0.00
G_M4320_IG27:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1552, prolog size 40, PerfScore 172.56, instruction count 349, allocated bytes for code 1552 (MethodHash=581aef1f) for method System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltArgument(System.Xml.Xsl.XmlQueryType,System.Object,System.Type):System.Object (FullOpts)
+; Total bytes of code 1554, prolog size 40, PerfScore 181.56, instruction count 349, allocated bytes for code 1554 (MethodHash=581aef1f) for method System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltArgument(System.Xml.Xsl.XmlQueryType,System.Object,System.Type):System.Object (FullOpts) |
Top method improvements-8 (-5.26 % of base) - System.Xml.Xsl.Runtime.XsltLibrary:FormatMessage(System.String,System.Collections.Generic.IList`1[System.String]):System.String:this ; Assembly listing for method System.Xml.Xsl.Runtime.XsltLibrary:FormatMessage(System.String,System.Collections.Generic.IList`1[System.String]):System.String:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Xml.Xsl.Runtime.XsltLibrary>
; V01 arg1 [V01,T05] ( 3, 3 ) ref -> r15 class-hnd single-def <System.String>
; V02 arg2 [V02,T02] ( 4, 7 ) ref -> rbx class-hnd single-def <System.Collections.Generic.IList`1[System.String]>
; V03 loc0 [V03,T03] ( 4, 7 ) ref -> r14 class-hnd exact single-def <System.String[]>
-; V04 loc1 [V04,T00] ( 6, 21 ) int -> r13
+;* V04 loc1 [V04,T07] ( 0, 0 ) int -> zero-ref
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T06] ( 2, 4 ) long -> rsi "argument with side effect"
-; V07 tmp2 [V07,T01] ( 2, 16 ) ref -> rdx "argument with side effect"
+; V06 tmp1 [V06,T01] ( 2, 16 ) ref -> rax class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
+; V07 tmp2 [V07,T06] ( 2, 4 ) long -> rsi "argument with side effect"
; V08 cse0 [V08,T04] ( 3, 6 ) int -> r12 "CSE #01: aggressive"
+; V09 rat0 [V09,T00] ( 6, 21 ) long -> r13 "Widened IV V04"
;
; Lcl frame size = 8
G_M4053_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov r15, rsi
mov rbx, rdx
;; size=22 bbWeight=1 PerfScore 8.00
G_M4053_IG02:
mov rdi, rbx
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
call [r11]System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
movsxd rsi, eax
mov rdi, 0xD1FFAB1E ; System.String[]
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
xor r13d, r13d
mov r12d, dword ptr [r14+0x08]
test r12d, r12d
jle SHORT G_M4053_IG04
;; size=49 bbWeight=1 PerfScore 8.75
G_M4053_IG03:
mov rdi, rbx
mov esi, r13d
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IList`1[System.__Canon]:get_Item(int):System.__Canon:this
call [r11]System.Collections.Generic.IList`1[System.__Canon]:get_Item(int):System.__Canon:this
- mov rdx, rax
- movsxd rsi, r13d
- mov rdi, r14
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rax]CORINFO_HELP_ARRADDR_ST
+ lea rdi, bword ptr [r14+8*r13+0x10]
+ mov rsi, rax
+ call CORINFO_HELP_ASSIGN_REF
inc r13d
cmp r12d, r13d
jg SHORT G_M4053_IG03
- ;; size=48 bbWeight=4 PerfScore 37.00
+ ;; size=40 bbWeight=4 PerfScore 30.00
G_M4053_IG04:
mov rdi, r15
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.XslTransformException:CreateMessage(System.String,System.String[]):System.String
;; size=16 bbWeight=1 PerfScore 0.75
G_M4053_IG05:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Xsl.XslTransformException:CreateMessage(System.String,System.String[]):System.String
;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 152, prolog size 16, PerfScore 59.75, instruction count 44, allocated bytes for code 152 (MethodHash=2adff02a) for method System.Xml.Xsl.Runtime.XsltLibrary:FormatMessage(System.String,System.Collections.Generic.IList`1[System.String]):System.String:this (FullOpts)
+; Total bytes of code 144, prolog size 16, PerfScore 52.75, instruction count 42, allocated bytes for code 144 (MethodHash=2adff02a) for method System.Xml.Xsl.Runtime.XsltLibrary:FormatMessage(System.String,System.Collections.Generic.IList`1[System.String]):System.String:this (FullOpts) -2 (-1.59 % of base) - System.Runtime.Caching.MemoryCache:get_AllSRefTargets():System.Object[]:this ; Assembly listing for method System.Runtime.Caching.MemoryCache:get_AllSRefTargets():System.Object[]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T03] ( 5, 11 ) ref -> rbx this class-hnd single-def <System.Runtime.Caching.MemoryCache>
-; V01 loc0 [V01,T04] ( 3, 6 ) ref -> r14 class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore[]>
+; V01 loc0 [V01,T04] ( 4, 10 ) ref -> r14 class-hnd exact single-def <System.Runtime.Caching.MemoryCacheStore[]>
;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Runtime.Caching.MemoryCacheStore[]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T01] ( 3, 24 ) ref -> rdi "arr expr"
-; V06 tmp2 [V06,T02] ( 2, 16 ) ref -> rdx "argument with side effect"
+; V05 tmp1 [V05,T02] ( 2, 16 ) ref -> rax class-hnd exact "Strict ordering of exceptions for Array store" <System.Runtime.Caching.MemoryCacheStore>
+; V06 tmp2 [V06,T01] ( 3, 24 ) ref -> rdi "arr expr"
; V07 cse0 [V07,T05] ( 3, 3 ) int -> r15 "CSE #01: aggressive"
-; V08 rat0 [V08,T00] ( 7, 25 ) long -> r13 "Widened IV V02"
+; V08 rat0 [V08,T00] ( 8, 29 ) long -> r13 "Widened IV V02"
;
; Lcl frame size = 0
G_M34564_IG01:
push rbp
push r15
push r14
push r13
push rbx
lea rbp, [rsp+0x20]
mov rbx, rdi
;; size=16 bbWeight=1 PerfScore 5.75
G_M34564_IG02:
mov r15d, dword ptr [rbx+0x38]
movsxd rsi, r15d
mov rdi, 0xD1FFAB1E ; System.Runtime.Caching.MemoryCacheStore[]
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
xor r13d, r13d
test r15d, r15d
jle SHORT G_M34564_IG04
;; size=33 bbWeight=1 PerfScore 5.25
G_M34564_IG03:
mov rdi, gword ptr [rbx+0x08]
cmp r13d, dword ptr [rdi+0x08]
jae SHORT G_M34564_IG06
mov rdi, gword ptr [rdi+8*r13+0x10]
mov rax, 0xD1FFAB1E ; code for System.Runtime.Caching.GCHandleRef`1[System.__Canon]:get_Target():System.__Canon:this
cmp dword ptr [rdi], edi
call [rax]System.Runtime.Caching.GCHandleRef`1[System.__Canon]:get_Target():System.__Canon:this
- mov rdx, rax
- movsxd rsi, r13d
- mov rdi, r14
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rax]CORINFO_HELP_ARRADDR_ST
+ cmp r13d, dword ptr [r14+0x08]
+ jae SHORT G_M34564_IG06
+ lea rdi, bword ptr [r14+8*r13+0x10]
+ mov rsi, rax
+ call CORINFO_HELP_ASSIGN_REF
inc r13d
cmp r13d, dword ptr [rbx+0x38]
jl SHORT G_M34564_IG03
- ;; size=59 bbWeight=4 PerfScore 90.00
+ ;; size=57 bbWeight=4 PerfScore 99.00
G_M34564_IG04:
mov rax, r14
;; size=3 bbWeight=1 PerfScore 0.25
G_M34564_IG05:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 3.50
G_M34564_IG06:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 126, prolog size 13, PerfScore 104.75, instruction count 39, allocated bytes for code 126 (MethodHash=ba7878fb) for method System.Runtime.Caching.MemoryCache:get_AllSRefTargets():System.Object[]:this (FullOpts)
+; Total bytes of code 124, prolog size 13, PerfScore 113.75, instruction count 39, allocated bytes for code 124 (MethodHash=ba7878fb) for method System.Runtime.Caching.MemoryCache:get_AllSRefTargets():System.Object[]:this (FullOpts) -1 (-0.08 % of base) - System.Runtime.Serialization.DataContracts.ClassDataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this ; Assembly listing for method System.Runtime.Serialization.DataContracts.ClassDataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 30 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 13, 18.50) ref -> rbx this class-hnd single-def <System.Runtime.Serialization.DataContracts.ClassDataContract>
; V01 arg1 [V01,T20] ( 7, 4.75) ref -> r14 class-hnd single-def <System.Object>
; V02 arg2 [V02,T14] ( 6, 6 ) ref -> r15 class-hnd single-def <System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]>
; V03 loc0 [V03,T03] ( 13, 16.50) ref -> r14 class-hnd exact <System.Runtime.Serialization.DataContracts.ClassDataContract>
; V04 loc1 [V04,T11] ( 7, 12 ) ref -> r12 class-hnd exact <System.Collections.Generic.Dictionary`2[System.String,System.Runtime.Serialization.DataContracts.DataMember]>
; V05 loc2 [V05,T10] ( 8, 13 ) ref -> r13 class-hnd exact <System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]>
; V06 loc3 [V06,T02] ( 6, 20.50) int -> [rbp-0x2C]
; V07 loc4 [V07,T01] ( 7, 20.50) int -> [rbp-0x30]
; V08 loc5 [V08,T15] ( 3, 6 ) ref -> [rbp-0x38] ld-addr-op class-hnd spill-single-def <System.Runtime.Serialization.DataContracts.DataMember>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Runtime.Serialization.DataContracts.ClassDataContract>
-; V11 tmp2 [V11,T24] ( 3, 3 ) ref -> r12 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[System.String,System.Runtime.Serialization.DataContracts.DataMember]>
-; V12 tmp3 [V12,T25] ( 3, 3 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]>
+; V11 tmp2 [V11,T25] ( 3, 3 ) ref -> r12 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[System.String,System.Runtime.Serialization.DataContracts.DataMember]>
+; V12 tmp3 [V12,T26] ( 3, 3 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]>
; V13 tmp4 [V13,T04] ( 2, 16 ) ref -> [rbp-0x40] class-hnd exact spill-single-def "non-inline candidate call" <System.String>
;* V14 tmp5 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.Runtime.Serialization.DataContracts.DataMember>
;* V15 tmp6 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Runtime.Serialization.DataContracts.ClassDataContract>
;* V16 tmp7 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper>
;* V18 tmp9 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper>
-; V19 tmp10 [V19,T29] ( 2, 2 ) ref -> r13 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]>
+; V19 tmp10 [V19,T30] ( 2, 2 ) ref -> r13 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]>
;* V20 tmp11 [V20 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
+;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.DataMember>
;* V22 tmp13 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.DataMember+CriticalHelper>
-; V23 tmp14 [V23,T05] ( 2, 16 ) ref -> rdx class-hnd "Inlining Arg" <System.__Canon>
+; V23 tmp14 [V23,T05] ( 2, 16 ) ref -> rdx class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.DataMember>
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]>
-;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
+;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.DataMember>
;* V26 tmp17 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.DataMember+CriticalHelper>
;* V27 tmp18 [V27,T23] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V28 tmp19 [V28,T06] ( 2, 16 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
; V29 tmp20 [V29,T13] ( 3, 10 ) byref -> rax "Inline stloc first use temp"
;* V30 tmp21 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.DataMember>
;* V31 tmp22 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.DataMember+CriticalHelper>
-; V32 tmp23 [V32,T21] ( 3, 6 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.Runtime.Serialization.DataContracts.DataMember[]>
-; V33 tmp24 [V33,T16] ( 4, 8 ) int -> rcx "Inline stloc first use temp"
-; V34 tmp25 [V34,T12] ( 3, 12 ) ref -> rax class-hnd "Inlining Arg" <System.__Canon>
+; V32 tmp23 [V32,T21] ( 3, 6 ) ref -> rcx class-hnd "Inline stloc first use temp" <System.Runtime.Serialization.DataContracts.DataMember[]>
+; V33 tmp24 [V33,T16] ( 4, 8 ) int -> rdx "Inline stloc first use temp"
+; V34 tmp25 [V34,T12] ( 3, 12 ) ref -> rax class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.DataMember>
;* V35 tmp26 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]>
;* V36 tmp27 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.Runtime.Serialization.DataContracts.DataMember]>
-; V37 tmp28 [V37,T30] ( 2, 2 ) ref -> rdi class-hnd exact "dup spill" <System.Collections.Generic.Dictionary`2+ValueCollection[System.__Canon,System.__Canon]>
-; V38 tmp29 [V38,T28] ( 4, 2 ) ref -> rdi
+; V37 tmp28 [V37,T31] ( 2, 2 ) ref -> rdi class-hnd exact "dup spill" <System.Collections.Generic.Dictionary`2+ValueCollection[System.__Canon,System.__Canon]>
+; V38 tmp29 [V38,T29] ( 4, 2 ) ref -> rdi
; V39 tmp30 [V39,T22] ( 4, 4 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.Runtime.Serialization.DataContracts.DataMember]>
;* V40 tmp31 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.Runtime.Serialization.DataContracts.DataMember]>
;* V41 tmp32 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper>
;* V42 tmp33 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper>
;* V43 tmp34 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper>
;* V44 tmp35 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper>
;* V45 tmp36 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper>
-; V46 tmp37 [V46,T26] ( 3, 3 ) int -> rax "Single return block return value"
+; V46 tmp37 [V46,T27] ( 3, 3 ) int -> rax "Single return block return value"
; V47 tmp38 [V47,T07] ( 2, 16 ) ref -> rdi "argument with side effect"
; V48 tmp39 [V48,T08] ( 2, 16 ) ref -> rdi "argument with side effect"
; V49 tmp40 [V49,T09] ( 2, 16 ) ref -> rdi "argument with side effect"
; V50 tmp41 [V50,T17] ( 2, 8 ) ref -> rdi "argument with side effect"
; V51 tmp42 [V51,T18] ( 2, 8 ) ref -> rdi "argument with side effect"
; V52 tmp43 [V52,T19] ( 2, 8 ) ref -> rsi "argument with side effect"
-; V53 cse0 [V53,T31] ( 3, 1.50) ref -> rdi "CSE #07: moderate"
-; V54 cse1 [V54,T27] ( 5, 2.50) ref -> rsi multi-def "CSE #05: moderate"
+; V53 cse0 [V53,T32] ( 3, 1.50) ref -> rdi "CSE #08: moderate"
+; V54 cse1 [V54,T28] ( 5, 2.50) ref -> rsi multi-def "CSE #06: moderate"
+; V55 cse2 [V55,T24] ( 2, 4 ) int -> rdi "CSE #04: moderate"
;
; Lcl frame size = 40
G_M24286_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
mov rbx, rdi
mov r14, rsi
mov r15, rdx
;; size=28 bbWeight=1 PerfScore 7.50
G_M24286_IG02:
mov rdi, rbx
mov rsi, r14
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.DataContract:IsEqualOrChecked(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this
call [rax]System.Runtime.Serialization.DataContracts.DataContract:IsEqualOrChecked(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this
test eax, eax
jne G_M24286_IG25
;; size=29 bbWeight=1 PerfScore 5.25
G_M24286_IG03:
mov rdi, rbx
mov rsi, r14
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.DataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this
call [rax]System.Runtime.Serialization.DataContracts.DataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this
test eax, eax
je G_M24286_IG23
test r14, r14
je G_M24286_IG23
;; size=38 bbWeight=0.50 PerfScore 3.25
G_M24286_IG04:
mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.DataContracts.ClassDataContract
cmp qword ptr [r14], rdi
jne G_M24286_IG23
;; size=19 bbWeight=0.25 PerfScore 1.06
G_M24286_IG05:
mov rdi, gword ptr [rbx+0x40]
cmp byte ptr [rdi+0xC9], 0
jne G_M24286_IG18
mov rdi, gword ptr [r14+0x40]
cmp byte ptr [rdi+0xC9], 0
jne G_M24286_IG23
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
test rax, rax
je G_M24286_IG17
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
test rax, rax
je G_M24286_IG16
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov r13, rax
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Dictionary`2[System.String,System.Runtime.Serialization.DataContracts.DataMember]
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov esi, dword ptr [r13+0x10]
mov rdi, r12
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M24286_IG27
;; size=176 bbWeight=0.50 PerfScore 19.12
G_M24286_IG06:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
xor eax, eax
mov dword ptr [rbp-0x2C], eax
mov rdi, rbx
mov rcx, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rcx]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
cmp dword ptr [rax+0x10], 0
jle G_M24286_IG08
;; size=52 bbWeight=0.50 PerfScore 6.25
G_M24286_IG07:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov rdi, rax
mov esi, dword ptr [rbp-0x2C]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
mov rdi, gword ptr [rax+0x08]
mov rax, gword ptr [rdi+0x10]
mov gword ptr [rbp-0x40], rax
mov rdi, rbx
mov rcx, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rcx]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov rdi, rax
mov esi, dword ptr [rbp-0x2C]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
mov rdx, rax
mov rdi, r12
mov rsi, gword ptr [rbp-0x40]
mov ecx, 2
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,ubyte):ubyte:this
mov esi, dword ptr [rbp-0x2C]
inc esi
mov dword ptr [rbp-0x2C], esi
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov edi, dword ptr [rbp-0x2C]
cmp dword ptr [rax+0x10], edi
mov dword ptr [rbp-0x2C], edi
jg G_M24286_IG07
;; size=147 bbWeight=4 PerfScore 175.00
G_M24286_IG08:
xor eax, eax
mov dword ptr [rbp-0x30], eax
mov rdi, r14
mov rcx, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rcx]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
cmp dword ptr [rax+0x10], 0
jle G_M24286_IG14
;; size=30 bbWeight=0.50 PerfScore 4.38
G_M24286_IG09:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov rdi, rax
mov esi, dword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
mov rdi, gword ptr [rax+0x08]
mov rsi, gword ptr [rdi+0x10]
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this
test rax, rax
jne SHORT G_M24286_IG12
;; size=63 bbWeight=4 PerfScore 79.00
G_M24286_IG10:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov rdi, rax
mov esi, dword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
inc dword ptr [r13+0x14]
- mov rdi, gword ptr [r13+0x08]
- mov ecx, dword ptr [r13+0x10]
- cmp dword ptr [rdi+0x08], ecx
+ mov rcx, gword ptr [r13+0x08]
+ mov edx, dword ptr [r13+0x10]
+ mov edi, dword ptr [rcx+0x08]
+ cmp edi, edx
ja SHORT G_M24286_IG11
mov rdi, r13
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
jmp G_M24286_IG13
- ;; size=75 bbWeight=2 PerfScore 55.50
+ ;; size=77 bbWeight=2 PerfScore 54.00
G_M24286_IG11:
- lea esi, [rcx+0x01]
- mov dword ptr [r13+0x10], esi
- movsxd rsi, ecx
- mov rdx, rax
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rax]CORINFO_HELP_ARRADDR_ST
+ lea edi, [rdx+0x01]
+ mov dword ptr [r13+0x10], edi
+ mov edi, edx
+ lea rdi, bword ptr [rcx+8*rdi+0x10]
+ mov rsi, rax
+ call CORINFO_HELP_ASSIGN_REF
jmp SHORT G_M24286_IG13
- ;; size=27 bbWeight=2 PerfScore 14.50
+ ;; size=24 bbWeight=2 PerfScore 12.00
G_M24286_IG12:
mov rax, gword ptr [rax]
mov gword ptr [rbp-0x38], rax
mov rdi, r14
mov rcx, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rcx]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov rdi, rax
mov esi, dword ptr [rbp-0x30]
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
mov rsi, rax
mov rdi, gword ptr [rbp-0x38]
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.DataMember:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Runtime.Serialization.DataContracts.DataMember:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this
test eax, eax
je G_M24286_IG23
mov rsi, gword ptr [rbp-0x38]
mov rsi, gword ptr [rsi+0x08]
mov rsi, gword ptr [rsi+0x10]
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this
;; size=101 bbWeight=2 PerfScore 63.00
G_M24286_IG13:
mov esi, dword ptr [rbp-0x30]
inc esi
mov dword ptr [rbp-0x30], esi
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov edi, dword ptr [rbp-0x30]
cmp dword ptr [rax+0x10], edi
mov dword ptr [rbp-0x30], edi
jg G_M24286_IG09
;; size=38 bbWeight=4 PerfScore 47.00
G_M24286_IG14:
mov rdi, gword ptr [r12+0x28]
test rdi, rdi
jne SHORT G_M24286_IG15
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.Runtime.Serialization.DataContracts.DataMember]
call CORINFO_HELP_NEWSFAST
mov rdi, rax
mov gword ptr [rbp-0x48], rdi
lea rdi, bword ptr [rdi+0x08]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r12+0x28]
mov rsi, gword ptr [rbp-0x48]
call CORINFO_HELP_ASSIGN_REF
mov r12, gword ptr [rbp-0x48]
mov rdi, r12
;; size=65 bbWeight=0.50 PerfScore 5.62
G_M24286_IG15:
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:IsEveryDataMemberOptional(System.Collections.Generic.IEnumerable`1[System.Runtime.Serialization.DataContracts.DataMember]):ubyte
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:IsEveryDataMemberOptional(System.Collections.Generic.IEnumerable`1[System.Runtime.Serialization.DataContracts.DataMember]):ubyte
test eax, eax
je G_M24286_IG23
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:IsEveryDataMemberOptional(System.Collections.Generic.IEnumerable`1[System.Runtime.Serialization.DataContracts.DataMember]):ubyte
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:IsEveryDataMemberOptional(System.Collections.Generic.IEnumerable`1[System.Runtime.Serialization.DataContracts.DataMember]):ubyte
test eax, eax
je G_M24286_IG23
jmp SHORT G_M24286_IG19
;; size=45 bbWeight=0.50 PerfScore 5.62
G_M24286_IG16:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:IsEveryDataMemberOptional(System.Collections.Generic.IEnumerable`1[System.Runtime.Serialization.DataContracts.DataMember]):ubyte
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:IsEveryDataMemberOptional(System.Collections.Generic.IEnumerable`1[System.Runtime.Serialization.DataContracts.DataMember]):ubyte
test eax, eax
jne SHORT G_M24286_IG19
jmp G_M24286_IG23
;; size=39 bbWeight=0.50 PerfScore 5.12
G_M24286_IG17:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
test rax, rax
je SHORT G_M24286_IG19
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:get_Members():System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:IsEveryDataMemberOptional(System.Collections.Generic.IEnumerable`1[System.Runtime.Serialization.DataContracts.DataMember]):ubyte
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:IsEveryDataMemberOptional(System.Collections.Generic.IEnumerable`1[System.Runtime.Serialization.DataContracts.DataMember]):ubyte
test eax, eax
jne SHORT G_M24286_IG19
jmp SHORT G_M24286_IG23
;; size=56 bbWeight=0.50 PerfScore 7.50
G_M24286_IG18:
mov rdi, gword ptr [r14+0x40]
cmp byte ptr [rdi+0xC9], 0
je SHORT G_M24286_IG23
;; size=13 bbWeight=0.50 PerfScore 3.00
G_M24286_IG19:
mov rdi, gword ptr [rbx+0x40]
mov rdi, gword ptr [rdi+0x50]
test rdi, rdi
je SHORT G_M24286_IG20
mov rsi, gword ptr [r14+0x40]
mov rsi, gword ptr [rsi+0x50]
test rsi, rsi
je SHORT G_M24286_IG23
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.DataContracts.ClassDataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Runtime.Serialization.DataContracts.ClassDataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this
jmp SHORT G_M24286_IG21
;; size=45 bbWeight=0.50 PerfScore 9.50
G_M24286_IG20:
mov rax, gword ptr [r14+0x40]
mov rsi, gword ptr [rax+0x50]
test rsi, rsi
sete al
movzx rax, al
;; size=17 bbWeight=0.50 PerfScore 2.75
G_M24286_IG21:
movzx rax, al
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M24286_IG22:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M24286_IG23:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M24286_IG24:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M24286_IG25:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M24286_IG26:
add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M24286_IG27:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M24286_IG06
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1178, prolog size 19, PerfScore 526.69, instruction count 290, allocated bytes for code 1178 (MethodHash=ec08a121) for method System.Runtime.Serialization.DataContracts.ClassDataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this (FullOpts)
+; Total bytes of code 1177, prolog size 19, PerfScore 522.69, instruction count 291, allocated bytes for code 1177 (MethodHash=ec08a121) for method System.Runtime.Serialization.DataContracts.ClassDataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this (FullOpts) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 29 minutes.
dotnet/runtime#100041
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: