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
[JitDiff X64] [EgorBo] Improve GetObjectType in VN #886
Comments
Top method improvements-51 (-35.17 % of base) - System.Xml.Xsl.Qil.QilPatternFactory:Invoke(System.Xml.Xsl.Qil.QilFunction,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this ; Assembly listing for method System.Xml.Xsl.Qil.QilPatternFactory:Invoke(System.Xml.Xsl.Qil.QilFunction,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Xml.Xsl.Qil.QilPatternFactory>
-; V01 arg1 [V01,T03] ( 3, 3 ) ref -> rbx class-hnd single-def <System.Xml.Xsl.Qil.QilFunction>
-; V02 arg2 [V02,T04] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Xml.Xsl.Qil.QilList>
+; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Xml.Xsl.Qil.QilPatternFactory>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rbx class-hnd single-def <System.Xml.Xsl.Qil.QilFunction>
+; V02 arg2 [V02,T03] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Xml.Xsl.Qil.QilList>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T00] ( 7, 14 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.Qil.QilInvoke>
;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.Qil.QilFactory>
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.Qil.QilFunction>
-; V07 tmp4 [V07,T06] ( 2, 4 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Xml.Xsl.XmlQueryType>
-; V08 rat0 [V08,T05] ( 3, 4 ) ref -> rsi "Spilling to split statement for tree"
-; V09 rat1 [V09,T01] ( 4, 7 ) ref -> rdi "replacement local"
-; V10 rat2 [V10,T07] ( 3, 2 ) long -> rax "CSE for expectedClsNode"
+; V07 tmp4 [V07,T04] ( 2, 4 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Xml.Xsl.XmlQueryType>
+; V08 cse0 [V08,T05] ( 2, 2 ) ref -> rdi "CSE #01: aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M22727_IG01:
- push rbp
push r15
push r14
push rbx
- push rax
- lea rbp, [rsp+0x20]
mov rbx, rsi
mov r15, rdx
- ;; size=18 bbWeight=1 PerfScore 6.00
+ ;; size=11 bbWeight=1 PerfScore 3.50
G_M22727_IG02:
mov rdi, gword ptr [rdi+0x08]
cmp byte ptr [rdi], dil
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.Qil.QilInvoke
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov dword ptr [r14+0x20], 66
lea rdi, bword ptr [r14+0x28]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x30]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
- mov rsi, gword ptr [r14+0x28]
- mov rdi, rsi
- test rdi, rdi
- je SHORT G_M22727_IG04
- ;; size=69 bbWeight=1 PerfScore 14.50
-G_M22727_IG03:
- mov rax, 0xD1FFAB1E ; System.Xml.Xsl.Qil.QilFunction
- cmp qword ptr [rdi], rax
- jne SHORT G_M22727_IG06
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M22727_IG04:
+ mov rdi, gword ptr [r14+0x28]
mov rsi, gword ptr [rdi+0x08]
lea rdi, bword ptr [r14+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rax, r14
- ;; size=16 bbWeight=1 PerfScore 3.75
-G_M22727_IG05:
- add rsp, 8
+ ;; size=77 bbWeight=1 PerfScore 16.75
+G_M22727_IG03:
pop rbx
pop r14
pop r15
- pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
-G_M22727_IG06:
- mov rdi, rax
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
- call [rax]CORINFO_HELP_CHKCASTCLASS
- int3
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=6 bbWeight=1 PerfScore 2.50
-; Total bytes of code 145, prolog size 12, PerfScore 29.62, instruction count 41, allocated bytes for code 145 (MethodHash=f11ba738) for method System.Xml.Xsl.Qil.QilPatternFactory:Invoke(System.Xml.Xsl.Qil.QilFunction,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
+; Total bytes of code 94, prolog size 5, PerfScore 22.75, instruction count 26, allocated bytes for code 94 (MethodHash=f11ba738) for method System.Xml.Xsl.Qil.QilPatternFactory:Invoke(System.Xml.Xsl.Qil.QilFunction,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
; ============================================================ -47 (-8.90 % of base) - System.Xml.Xsl.Qil.QilPatternFactory:Choice(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this ; Assembly listing for method System.Xml.Xsl.Qil.QilPatternFactory:Choice(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 10 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 6, 4.50) ref -> rdi this class-hnd single-def <System.Xml.Xsl.Qil.QilPatternFactory>
; V01 arg1 [V01,T03] ( 5, 3.50) ref -> r15 class-hnd single-def <System.Xml.Xsl.Qil.QilNode>
; V02 arg2 [V02,T00] ( 8, 5 ) ref -> rbx class-hnd single-def <System.Xml.Xsl.Qil.QilList>
-; V03 loc0 [V03,T21] ( 3, 1.50) int -> r14
+; V03 loc0 [V03,T19] ( 3, 1.50) int -> r14
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T09] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilFactory>
-; V06 tmp2 [V06,T10] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilIterator>
-; V07 tmp3 [V07,T11] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilFactory>
+; V05 tmp1 [V05,T07] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilFactory>
+; V06 tmp2 [V06,T08] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilIterator>
+; V07 tmp3 [V07,T09] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilFactory>
;* V08 tmp4 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Xml.Xsl.Qil.QilFactory>
-; V09 tmp5 [V09,T12] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilBinary>
-; V10 tmp6 [V10,T13] ( 2, 2 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilNode>
-; V11 tmp7 [V11,T25] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.IndexOutOfRangeException>
-; V12 tmp8 [V12,T26] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IndexOutOfRangeException>
-; V13 tmp9 [V13,T27] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IndexOutOfRangeException>
+; V09 tmp5 [V09,T10] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilBinary>
+; V10 tmp6 [V10,T11] ( 2, 2 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Xml.Xsl.Qil.QilNode>
+; V11 tmp7 [V11,T23] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.IndexOutOfRangeException>
+; V12 tmp8 [V12,T24] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IndexOutOfRangeException>
+; V13 tmp9 [V13,T25] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IndexOutOfRangeException>
; V14 tmp10 [V14,T01] ( 7, 7 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.Qil.QilChoice>
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Xsl.Qil.QilFactory>
-; V16 tmp12 [V16,T14] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Xml.Xsl.XmlQueryType>
-; V17 tmp13 [V17,T06] ( 3, 3 ) ref -> rdx single-def "arr expr"
-; V18 tmp14 [V18,T15] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
-; V19 tmp15 [V19,T16] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
-; V20 tmp16 [V20,T17] ( 2, 2 ) ref -> r13 single-def "argument with side effect"
-; V21 tmp17 [V21,T07] ( 3, 3 ) ref -> rdi single-def "arr expr"
-; V22 tmp18 [V22,T18] ( 2, 2 ) ref -> rdx single-def "arr expr"
-; V23 tmp19 [V23,T19] ( 2, 2 ) ref -> rcx single-def "argument with side effect"
+; V16 tmp12 [V16,T12] ( 2, 2 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Xml.Xsl.XmlQueryType>
+; V17 tmp13 [V17,T05] ( 3, 3 ) ref -> rdx single-def "arr expr"
+; V18 tmp14 [V18,T13] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
+; V19 tmp15 [V19,T14] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
+; V20 tmp16 [V20,T15] ( 2, 2 ) ref -> r13 single-def "argument with side effect"
+; V21 tmp17 [V21,T06] ( 3, 3 ) ref -> rdi single-def "arr expr"
+; V22 tmp18 [V22,T16] ( 2, 2 ) ref -> rdx single-def "arr expr"
+; V23 tmp19 [V23,T17] ( 2, 2 ) ref -> rcx single-def "argument with side effect"
; V24 cse0 [V24,T04] ( 9, 4.50) ref -> rdi multi-def "CSE #01: aggressive"
-; V25 cse1 [V25,T22] ( 3, 1.50) int -> rcx "CSE #02: moderate"
-; V26 cse2 [V26,T20] ( 3, 1.50) ref -> rdx "CSE #04: moderate"
-; V27 cse3 [V27,T23] ( 3, 1.50) int -> rax "CSE #05: moderate"
-; V28 rat0 [V28,T08] ( 3, 2 ) ref -> rsi "Spilling to split statement for tree"
-; V29 rat1 [V29,T05] ( 4, 3.50) ref -> rdi "replacement local"
-; V30 rat2 [V30,T24] ( 3, 1 ) long -> rax "CSE for expectedClsNode"
+; V25 cse1 [V25,T20] ( 3, 1.50) int -> rcx "CSE #02: moderate"
+; V26 cse2 [V26,T18] ( 3, 1.50) ref -> rdx "CSE #04: moderate"
+; V27 cse3 [V27,T22] ( 2, 1 ) ref -> rdi "CSE #06: moderate"
+; V28 cse4 [V28,T21] ( 3, 1.50) int -> rax "CSE #05: moderate"
;
; Lcl frame size = 0
G_M37246_IG01:
push rbp
push r15
push r14
push r13
push rbx
lea rbp, [rsp+0x20]
mov r15, rsi
mov rbx, rdx
;; size=19 bbWeight=1 PerfScore 6.00
G_M37246_IG02:
cmp byte ptr [rdi+0x10], 0
jne SHORT G_M37246_IG06
;; size=6 bbWeight=1 PerfScore 4.00
G_M37246_IG03:
mov r14d, dword ptr [rbx+0x24]
cmp r14d, 1
jne SHORT G_M37246_IG05
mov rdi, gword ptr [rdi+0x08]
mov r14, rdi
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Qil.QilFactory:Let(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilIterator:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Qil.QilFactory:Let(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilIterator:this
mov rsi, rax
cmp dword ptr [rbx+0x24], 0
- jle G_M37246_IG12
+ jle G_M37246_IG10
mov rdx, gword ptr [rbx+0x28]
cmp dword ptr [rdx+0x08], 0
- jbe G_M37246_IG16
+ jbe G_M37246_IG13
mov rdx, gword ptr [rdx+0x10]
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Qil.QilFactory:Loop(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilLoop:this
;; size=78 bbWeight=0.50 PerfScore 12.38
G_M37246_IG04:
pop rbx
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Xsl.Qil.QilFactory:Loop(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilLoop:this
;; size=11 bbWeight=0.50 PerfScore 2.25
G_M37246_IG05:
cmp r14d, 2
- je G_M37246_IG10
- ;; size=10 bbWeight=0.50 PerfScore 0.62
+ je SHORT G_M37246_IG08
+ ;; size=6 bbWeight=0.50 PerfScore 0.62
G_M37246_IG06:
mov rdi, gword ptr [rdi+0x08]
cmp byte ptr [rdi], dil
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.Qil.QilChoice
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov dword ptr [r14+0x20], 32
lea rdi, bword ptr [r14+0x28]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x30]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- mov rsi, gword ptr [r14+0x30]
- mov rdi, rsi
- test rdi, rdi
- je SHORT G_M37246_IG08
- ;; size=69 bbWeight=0.50 PerfScore 7.25
-G_M37246_IG07:
- mov rax, 0xD1FFAB1E ; System.Xml.Xsl.Qil.QilList
- cmp qword ptr [rdi], rax
- jne G_M37246_IG13
- ;; size=19 bbWeight=0.25 PerfScore 1.06
-G_M37246_IG08:
+ mov rdi, gword ptr [r14+0x30]
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Qil.QilList:get_XmlType():System.Xml.Xsl.XmlQueryType:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Qil.QilList:get_XmlType():System.Xml.Xsl.XmlQueryType:this
lea rdi, bword ptr [r14+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rax, r14
- ;; size=29 bbWeight=0.50 PerfScore 4.12
-G_M37246_IG09:
+ ;; size=90 bbWeight=0.50 PerfScore 10.62
+G_M37246_IG07:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=9 bbWeight=0.50 PerfScore 1.75
-G_M37246_IG10:
+G_M37246_IG08:
mov rdi, gword ptr [rdi+0x08]
mov r14, rdi
mov r13, rdi
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Qil.QilFactory:LiteralInt32(int):System.Xml.Xsl.Qil.QilLiteral:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Qil.QilFactory:LiteralInt32(int):System.Xml.Xsl.Qil.QilLiteral:this
mov rdx, rax
mov rdi, r13
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Qil.QilFactory:Eq(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilBinary:this
cmp dword ptr [rdi], edi
call [rax]System.Xml.Xsl.Qil.QilFactory:Eq(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilBinary:this
mov rsi, rax
mov ecx, dword ptr [rbx+0x24]
test ecx, ecx
- jle G_M37246_IG15
+ jle G_M37246_IG12
mov rdx, gword ptr [rbx+0x28]
mov rdi, rdx
mov eax, dword ptr [rdi+0x08]
test eax, eax
- je G_M37246_IG16
+ je G_M37246_IG13
mov rdi, gword ptr [rdi+0x10]
cmp ecx, 1
- jle SHORT G_M37246_IG14
+ jle SHORT G_M37246_IG11
cmp eax, 1
- jbe G_M37246_IG16
+ jbe G_M37246_IG13
mov rcx, gword ptr [rdx+0x18]
mov rdx, rdi
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.Qil.QilFactory:Conditional(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilTernary:this
;; size=119 bbWeight=0.50 PerfScore 16.12
-G_M37246_IG11:
+G_M37246_IG09:
pop rbx
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Xml.Xsl.Qil.QilFactory:Conditional(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilTernary:this
;; size=11 bbWeight=0.50 PerfScore 2.25
-G_M37246_IG12:
+G_M37246_IG10:
mov rdi, 0xD1FFAB1E ; System.IndexOutOfRangeException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IndexOutOfRangeException:.ctor():this
call [rax]System.IndexOutOfRangeException:.ctor():this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=42 bbWeight=0 PerfScore 0.00
+G_M37246_IG11:
+ mov rdi, 0xD1FFAB1E ; System.IndexOutOfRangeException
+ call CORINFO_HELP_NEWSFAST
+ mov rbx, rax
+ mov rdi, rbx
+ mov rax, 0xD1FFAB1E ; code for System.IndexOutOfRangeException:.ctor():this
+ call [rax]System.IndexOutOfRangeException:.ctor():this
+ mov rdi, rbx
+ call CORINFO_HELP_THROW
+ int3
+ ;; size=42 bbWeight=0 PerfScore 0.00
+G_M37246_IG12:
+ mov rdi, 0xD1FFAB1E ; System.IndexOutOfRangeException
+ call CORINFO_HELP_NEWSFAST
+ mov rbx, rax
+ mov rdi, rbx
+ mov rax, 0xD1FFAB1E ; code for System.IndexOutOfRangeException:.ctor():this
+ call [rax]System.IndexOutOfRangeException:.ctor():this
+ mov rdi, rbx
+ call CORINFO_HELP_THROW
+ int3
+ ;; size=42 bbWeight=0 PerfScore 0.00
G_M37246_IG13:
- mov rdi, rax
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
- call [rax]CORINFO_HELP_CHKCASTCLASS
- int3
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M37246_IG14:
- mov rdi, 0xD1FFAB1E ; System.IndexOutOfRangeException
- call CORINFO_HELP_NEWSFAST
- mov rbx, rax
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.IndexOutOfRangeException:.ctor():this
- call [rax]System.IndexOutOfRangeException:.ctor():this
- mov rdi, rbx
- call CORINFO_HELP_THROW
- int3
- ;; size=42 bbWeight=0 PerfScore 0.00
-G_M37246_IG15:
- mov rdi, 0xD1FFAB1E ; System.IndexOutOfRangeException
- call CORINFO_HELP_NEWSFAST
- mov rbx, rax
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.IndexOutOfRangeException:.ctor():this
- call [rax]System.IndexOutOfRangeException:.ctor():this
- mov rdi, rbx
- call CORINFO_HELP_THROW
- int3
- ;; size=42 bbWeight=0 PerfScore 0.00
-G_M37246_IG16:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 528, prolog size 13, PerfScore 57.81, instruction count 138, allocated bytes for code 528 (MethodHash=7e656e81) for method System.Xml.Xsl.Qil.QilPatternFactory:Choice(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
+; Total bytes of code 481, prolog size 13, PerfScore 56.00, instruction count 128, allocated bytes for code 481 (MethodHash=7e656e81) for method System.Xml.Xsl.Qil.QilPatternFactory:Choice(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
; ============================================================ -25 (-10.12 % of base) - System.Collections.ObjectModel.ReadOnlyObservableCollection`1[double]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[double]):this ; Assembly listing for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[double]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[double]):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 7 ) ref -> rbx this class-hnd single-def <System.Collections.ObjectModel.ReadOnlyObservableCollection`1[double]>
; V01 arg1 [V01,T03] ( 4, 4 ) ref -> rsi class-hnd single-def <System.Collections.ObjectModel.ObservableCollection`1[double]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Specialized.NotifyCollectionChangedEventHandler>
; V04 tmp2 [V04,T04] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[double]>
; V05 tmp3 [V05,T02] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.PropertyChangedEventHandler>
; V06 tmp4 [V06,T05] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[double]>
+; V07 cse0 [V07,T06] ( 2, 2 ) ref -> r14 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M18815_IG01:
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov rbx, rdi
;; size=15 bbWeight=1 PerfScore 5.75
G_M18815_IG02:
test rsi, rsi
je G_M18815_IG04
lea rdi, bword ptr [rbx+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.NotifyCollectionChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
- mov rsi, gword ptr [rbx+0x08]
- mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.INotifyCollectionChanged
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
- call [rax]CORINFO_HELP_CHKCASTINTERFACE
- mov r14, rax
+ mov r14, gword ptr [rbx+0x08]
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[double]:HandleCollectionChanged(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
call [r11]System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
mov rdi, 0xD1FFAB1E ; System.ComponentModel.PropertyChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rsi, gword ptr [rbx+0x08]
mov rdi, 0xD1FFAB1E ; System.ComponentModel.INotifyPropertyChanged
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov r14, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[double]:HandlePropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
cmp dword ptr [rdi], edi
- ;; size=201 bbWeight=1 PerfScore 30.75
+ ;; size=176 bbWeight=1 PerfScore 27.00
G_M18815_IG03:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
tail.jmp [r11]System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
;; size=13 bbWeight=1 PerfScore 4.25
G_M18815_IG04:
mov edi, 20
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 247, prolog size 12, PerfScore 42.62, instruction count 55, allocated bytes for code 247 (MethodHash=6d2bb680) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[double]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[double]):this (FullOpts)
+; Total bytes of code 222, prolog size 12, PerfScore 38.88, instruction count 51, allocated bytes for code 222 (MethodHash=6d2bb680) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[double]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[double]):this (FullOpts)
; ============================================================ -25 (-10.12 % of base) - System.Collections.ObjectModel.ReadOnlyObservableCollection`1[int]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[int]):this ; Assembly listing for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[int]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[int]):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 7 ) ref -> rbx this class-hnd single-def <System.Collections.ObjectModel.ReadOnlyObservableCollection`1[int]>
; V01 arg1 [V01,T03] ( 4, 4 ) ref -> rsi class-hnd single-def <System.Collections.ObjectModel.ObservableCollection`1[int]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Specialized.NotifyCollectionChangedEventHandler>
; V04 tmp2 [V04,T04] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[int]>
; V05 tmp3 [V05,T02] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.PropertyChangedEventHandler>
; V06 tmp4 [V06,T05] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[int]>
+; V07 cse0 [V07,T06] ( 2, 2 ) ref -> r14 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M16671_IG01:
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov rbx, rdi
;; size=15 bbWeight=1 PerfScore 5.75
G_M16671_IG02:
test rsi, rsi
je G_M16671_IG04
lea rdi, bword ptr [rbx+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.NotifyCollectionChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
- mov rsi, gword ptr [rbx+0x08]
- mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.INotifyCollectionChanged
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
- call [rax]CORINFO_HELP_CHKCASTINTERFACE
- mov r14, rax
+ mov r14, gword ptr [rbx+0x08]
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[int]:HandleCollectionChanged(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
call [r11]System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
mov rdi, 0xD1FFAB1E ; System.ComponentModel.PropertyChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rsi, gword ptr [rbx+0x08]
mov rdi, 0xD1FFAB1E ; System.ComponentModel.INotifyPropertyChanged
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov r14, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[int]:HandlePropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
cmp dword ptr [rdi], edi
- ;; size=201 bbWeight=1 PerfScore 30.75
+ ;; size=176 bbWeight=1 PerfScore 27.00
G_M16671_IG03:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
tail.jmp [r11]System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
;; size=13 bbWeight=1 PerfScore 4.25
G_M16671_IG04:
mov edi, 20
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 247, prolog size 12, PerfScore 42.62, instruction count 55, allocated bytes for code 247 (MethodHash=9abdbee0) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[int]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[int]):this (FullOpts)
+; Total bytes of code 222, prolog size 12, PerfScore 38.88, instruction count 51, allocated bytes for code 222 (MethodHash=9abdbee0) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[int]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[int]):this (FullOpts)
; ============================================================ -25 (-10.12 % of base) - System.Collections.ObjectModel.ReadOnlyObservableCollection`1[long]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[long]):this ; Assembly listing for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[long]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[long]):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 7 ) ref -> rbx this class-hnd single-def <System.Collections.ObjectModel.ReadOnlyObservableCollection`1[long]>
; V01 arg1 [V01,T03] ( 4, 4 ) ref -> rsi class-hnd single-def <System.Collections.ObjectModel.ObservableCollection`1[long]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Specialized.NotifyCollectionChangedEventHandler>
; V04 tmp2 [V04,T04] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[long]>
; V05 tmp3 [V05,T02] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.PropertyChangedEventHandler>
; V06 tmp4 [V06,T05] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[long]>
+; V07 cse0 [V07,T06] ( 2, 2 ) ref -> r14 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M767_IG01:
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov rbx, rdi
;; size=15 bbWeight=1 PerfScore 5.75
G_M767_IG02:
test rsi, rsi
je G_M767_IG04
lea rdi, bword ptr [rbx+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.NotifyCollectionChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
- mov rsi, gword ptr [rbx+0x08]
- mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.INotifyCollectionChanged
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
- call [rax]CORINFO_HELP_CHKCASTINTERFACE
- mov r14, rax
+ mov r14, gword ptr [rbx+0x08]
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[long]:HandleCollectionChanged(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
call [r11]System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
mov rdi, 0xD1FFAB1E ; System.ComponentModel.PropertyChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rsi, gword ptr [rbx+0x08]
mov rdi, 0xD1FFAB1E ; System.ComponentModel.INotifyPropertyChanged
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov r14, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[long]:HandlePropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
cmp dword ptr [rdi], edi
- ;; size=201 bbWeight=1 PerfScore 30.75
+ ;; size=176 bbWeight=1 PerfScore 27.00
G_M767_IG03:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
tail.jmp [r11]System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
;; size=13 bbWeight=1 PerfScore 4.25
G_M767_IG04:
mov edi, 20
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 247, prolog size 12, PerfScore 42.62, instruction count 55, allocated bytes for code 247 (MethodHash=1b73fd00) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[long]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[long]):this (FullOpts)
+; Total bytes of code 222, prolog size 12, PerfScore 38.88, instruction count 51, allocated bytes for code 222 (MethodHash=1b73fd00) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[long]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[long]):this (FullOpts)
; ============================================================ -25 (-10.12 % of base) - System.Collections.ObjectModel.ReadOnlyObservableCollection`1[short]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[short]):this ; Assembly listing for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[short]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[short]):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 7 ) ref -> rbx this class-hnd single-def <System.Collections.ObjectModel.ReadOnlyObservableCollection`1[short]>
; V01 arg1 [V01,T03] ( 4, 4 ) ref -> rsi class-hnd single-def <System.Collections.ObjectModel.ObservableCollection`1[short]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Specialized.NotifyCollectionChangedEventHandler>
; V04 tmp2 [V04,T04] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[short]>
; V05 tmp3 [V05,T02] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.PropertyChangedEventHandler>
; V06 tmp4 [V06,T05] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[short]>
+; V07 cse0 [V07,T06] ( 2, 2 ) ref -> r14 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M32511_IG01:
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov rbx, rdi
;; size=15 bbWeight=1 PerfScore 5.75
G_M32511_IG02:
test rsi, rsi
je G_M32511_IG04
lea rdi, bword ptr [rbx+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.NotifyCollectionChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
- mov rsi, gword ptr [rbx+0x08]
- mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.INotifyCollectionChanged
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
- call [rax]CORINFO_HELP_CHKCASTINTERFACE
- mov r14, rax
+ mov r14, gword ptr [rbx+0x08]
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[short]:HandleCollectionChanged(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
call [r11]System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
mov rdi, 0xD1FFAB1E ; System.ComponentModel.PropertyChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rsi, gword ptr [rbx+0x08]
mov rdi, 0xD1FFAB1E ; System.ComponentModel.INotifyPropertyChanged
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov r14, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[short]:HandlePropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
cmp dword ptr [rdi], edi
- ;; size=201 bbWeight=1 PerfScore 30.75
+ ;; size=176 bbWeight=1 PerfScore 27.00
G_M32511_IG03:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
tail.jmp [r11]System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
;; size=13 bbWeight=1 PerfScore 4.25
G_M32511_IG04:
mov edi, 20
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 247, prolog size 12, PerfScore 42.62, instruction count 55, allocated bytes for code 247 (MethodHash=44028100) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[short]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[short]):this (FullOpts)
+; Total bytes of code 222, prolog size 12, PerfScore 38.88, instruction count 51, allocated bytes for code 222 (MethodHash=44028100) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[short]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[short]):this (FullOpts)
; ============================================================ -25 (-10.12 % of base) - System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.__Canon]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[System.__Canon]):this ; Assembly listing for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.__Canon]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[System.__Canon]):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 7 ) ref -> rbx this class-hnd single-def <System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 4 ) ref -> rsi class-hnd single-def <System.Collections.ObjectModel.ObservableCollection`1[System.__Canon]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Specialized.NotifyCollectionChangedEventHandler>
; V04 tmp2 [V04,T04] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[System.__Canon]>
; V05 tmp3 [V05,T02] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.PropertyChangedEventHandler>
; V06 tmp4 [V06,T05] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[System.__Canon]>
+; V07 cse0 [V07,T06] ( 2, 2 ) ref -> r14 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M30207_IG01:
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov rbx, rdi
;; size=15 bbWeight=1 PerfScore 5.75
G_M30207_IG02:
test rsi, rsi
je G_M30207_IG04
lea rdi, bword ptr [rbx+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.NotifyCollectionChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
- mov rsi, gword ptr [rbx+0x08]
- mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.INotifyCollectionChanged
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
- call [rax]CORINFO_HELP_CHKCASTINTERFACE
- mov r14, rax
+ mov r14, gword ptr [rbx+0x08]
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.__Canon]:HandleCollectionChanged(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
call [r11]System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
mov rdi, 0xD1FFAB1E ; System.ComponentModel.PropertyChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rsi, gword ptr [rbx+0x08]
mov rdi, 0xD1FFAB1E ; System.ComponentModel.INotifyPropertyChanged
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov r14, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.__Canon]:HandlePropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
cmp dword ptr [rdi], edi
- ;; size=201 bbWeight=1 PerfScore 30.75
+ ;; size=176 bbWeight=1 PerfScore 27.00
G_M30207_IG03:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
tail.jmp [r11]System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
;; size=13 bbWeight=1 PerfScore 4.25
G_M30207_IG04:
mov edi, 20
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 247, prolog size 12, PerfScore 42.62, instruction count 55, allocated bytes for code 247 (MethodHash=712e8a00) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.__Canon]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[System.__Canon]):this (FullOpts)
+; Total bytes of code 222, prolog size 12, PerfScore 38.88, instruction count 51, allocated bytes for code 222 (MethodHash=712e8a00) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.__Canon]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[System.__Canon]):this (FullOpts)
; ============================================================ -25 (-10.12 % of base) - System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.Nullable`1[int]]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[System.Nullable`1[int]]):this ; Assembly listing for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.Nullable`1[int]]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[System.Nullable`1[int]]):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 7 ) ref -> rbx this class-hnd single-def <System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.Nullable`1[int]]>
; V01 arg1 [V01,T03] ( 4, 4 ) ref -> rsi class-hnd single-def <System.Collections.ObjectModel.ObservableCollection`1[System.Nullable`1[int]]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Specialized.NotifyCollectionChangedEventHandler>
; V04 tmp2 [V04,T04] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[System.Nullable`1[int]]>
; V05 tmp3 [V05,T02] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.PropertyChangedEventHandler>
; V06 tmp4 [V06,T05] ( 2, 4 ) ref -> r14 class-hnd single-def "impAppendStmt" <System.Collections.Generic.IList`1[System.Nullable`1[int]]>
+; V07 cse0 [V07,T06] ( 2, 2 ) ref -> r14 "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M11071_IG01:
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov rbx, rdi
;; size=15 bbWeight=1 PerfScore 5.75
G_M11071_IG02:
test rsi, rsi
je G_M11071_IG04
lea rdi, bword ptr [rbx+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.NotifyCollectionChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
- mov rsi, gword ptr [rbx+0x08]
- mov rdi, 0xD1FFAB1E ; System.Collections.Specialized.INotifyCollectionChanged
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
- call [rax]CORINFO_HELP_CHKCASTINTERFACE
- mov r14, rax
+ mov r14, gword ptr [rbx+0x08]
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.Nullable`1[int]]:HandleCollectionChanged(System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
call [r11]System.Collections.Specialized.INotifyCollectionChanged:add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler):this
mov rdi, 0xD1FFAB1E ; System.ComponentModel.PropertyChangedEventHandler
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rsi, gword ptr [rbx+0x08]
mov rdi, 0xD1FFAB1E ; System.ComponentModel.INotifyPropertyChanged
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTINTERFACE
call [rax]CORINFO_HELP_CHKCASTINTERFACE
mov r14, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; code for System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.Nullable`1[int]]:HandlePropertyChanged(System.Object,System.ComponentModel.PropertyChangedEventArgs):this
mov qword ptr [r15+0x18], rdi
mov rdi, r14
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
cmp dword ptr [rdi], edi
- ;; size=201 bbWeight=1 PerfScore 30.75
+ ;; size=176 bbWeight=1 PerfScore 27.00
G_M11071_IG03:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
tail.jmp [r11]System.ComponentModel.INotifyPropertyChanged:add_PropertyChanged(System.ComponentModel.PropertyChangedEventHandler):this
;; size=13 bbWeight=1 PerfScore 4.25
G_M11071_IG04:
mov edi, 20
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 247, prolog size 12, PerfScore 42.62, instruction count 55, allocated bytes for code 247 (MethodHash=9575d4c0) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.Nullable`1[int]]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[System.Nullable`1[int]]):this (FullOpts)
+; Total bytes of code 222, prolog size 12, PerfScore 38.88, instruction count 51, allocated bytes for code 222 (MethodHash=9575d4c0) for method System.Collections.ObjectModel.ReadOnlyObservableCollection`1[System.Nullable`1[int]]:.ctor(System.Collections.ObjectModel.ObservableCollection`1[System.Nullable`1[int]]):this (FullOpts)
; ============================================================ -25 (-26.60 % of base) - System.Xml.Xsl.Qil.QilFactory:LiteralType(System.Xml.Xsl.XmlQueryType):System.Xml.Xsl.Qil.QilLiteral:this ; Assembly listing for method System.Xml.Xsl.Qil.QilFactory:LiteralType(System.Xml.Xsl.XmlQueryType):System.Xml.Xsl.Qil.QilLiteral:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Xml.Xsl.Qil.QilFactory>
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rbx class-hnd single-def <System.Xml.Xsl.XmlQueryType>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T00] ( 6, 12 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.Qil.QilLiteral>
-; V04 tmp2 [V04,T02] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Xml.Xsl.XmlQueryType>
+; V04 tmp2 [V04,T02] ( 2, 4 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Xml.Xsl.XmlQueryType>
+; V05 cse0 [V05,T03] ( 2, 2 ) ref -> rsi "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M1077_IG01:
push r15
push rbx
push rax
mov rbx, rsi
;; size=7 bbWeight=1 PerfScore 3.25
G_M1077_IG02:
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.Qil.QilLiteral
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov dword ptr [r15+0x20], 26
lea rdi, bword ptr [r15+0x28]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rsi, gword ptr [r15+0x28]
- mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryType
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
- call [rax]CORINFO_HELP_CHKCASTCLASS
lea rdi, bword ptr [r15+0x08]
- mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rax, r15
- ;; size=79 bbWeight=1 PerfScore 11.75
+ ;; size=54 bbWeight=1 PerfScore 8.00
G_M1077_IG03:
add rsp, 8
pop rbx
pop r15
ret
;; size=8 bbWeight=1 PerfScore 2.25
-; Total bytes of code 94, prolog size 4, PerfScore 17.25, instruction count 23, allocated bytes for code 94 (MethodHash=6119fbca) for method System.Xml.Xsl.Qil.QilFactory:LiteralType(System.Xml.Xsl.XmlQueryType):System.Xml.Xsl.Qil.QilLiteral:this (FullOpts)
+; Total bytes of code 69, prolog size 4, PerfScore 13.50, instruction count 19, allocated bytes for code 69 (MethodHash=6119fbca) for method System.Xml.Xsl.Qil.QilFactory:LiteralType(System.Xml.Xsl.XmlQueryType):System.Xml.Xsl.Qil.QilLiteral:this (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/43e877f9828c9479810fb29e715373d4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 14 minutes 12 seconds.
dotnet/runtime#111489
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: