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] [MihaZupan] Implement IEquatable on Uri #418
Comments
Standard_D8ads_v6 |
Top method regressions8 (0.72 % of base) - System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this ; Assembly listing for method System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 18 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T04] ( 15, 9 ) ref -> rbx this class-hnd single-def <System.IO.Packaging.PackageRelationshipSelector>
; V01 arg1 [V01,T07] ( 12, 7.50) ref -> r15 class-hnd single-def <System.IO.Packaging.Package>
; V02 loc0 [V02,T00] ( 26, 48 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]>
-; V03 loc1 [V03,T15] ( 3, 2.50) int -> r13 single-def
-; V04 loc2 [V04,T16] ( 4, 2 ) ref -> r15 class-hnd single-def <System.IO.Packaging.PackagePart>
+; V03 loc1 [V03,T13] ( 3, 2.50) int -> r13 single-def
+; V04 loc2 [V04,T14] ( 4, 2 ) ref -> r15 class-hnd single-def <System.IO.Packaging.PackagePart>
; V05 loc3 [V05,T01] ( 14, 19 ) ref -> [rbp-0x28] do-not-enreg[M] class-hnd EH-live <System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]>
; V06 loc4 [V06,T08] ( 3, 8 ) ref -> rax class-hnd <System.IO.Packaging.PackageRelationship>
; V07 loc5 [V07,T09] ( 3, 8 ) ref -> rax class-hnd <System.IO.Packaging.PackageRelationship>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V09 tmp1 [V09,T10] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]>
;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Uri>
;* V11 tmp3 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Uri>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.IO.Packaging.PackagePart>
-; V13 tmp5 [V13,T25] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
-; V14 tmp6 [V14,T19] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V15 tmp7 [V15,T22] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
-; V16 tmp8 [V16,T17] ( 4, 2 ) int -> r13 single-def "Inline stloc first use temp"
+; V13 tmp5 [V13,T23] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+; V14 tmp6 [V14,T17] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V15 tmp7 [V15,T20] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
+; V16 tmp8 [V16,T15] ( 4, 2 ) int -> r13 single-def "Inline stloc first use temp"
; V17 tmp9 [V17,T11] ( 3, 3 ) ref -> rax class-hnd single-def "Inlining Arg" <System.IO.Packaging.PackageRelationship>
-; V18 tmp10 [V18,T20] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V19 tmp11 [V19,T23] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
-; V20 tmp12 [V20,T18] ( 4, 2 ) int -> rbx single-def "Inline stloc first use temp"
+; V18 tmp10 [V18,T18] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V19 tmp11 [V19,T21] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
+; V20 tmp12 [V20,T16] ( 4, 2 ) int -> rbx single-def "Inline stloc first use temp"
; V21 tmp13 [V21,T12] ( 3, 3 ) ref -> rax class-hnd single-def "Inlining Arg" <System.IO.Packaging.PackageRelationship>
; V22 tmp14 [V22,T05] ( 3, 10 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
; V23 tmp15 [V23,T02] ( 4, 12 ) int -> rbx "Inline stloc first use temp"
; V24 tmp16 [V24,T06] ( 3, 10 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
; V25 tmp17 [V25,T03] ( 4, 12 ) int -> rbx "Inline stloc first use temp"
-; V26 tmp18 [V26,T13] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V27 tmp19 [V27,T14] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V28 tmp20 [V28,T21] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V29 tmp21 [V29,T26] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V30 PSPSym [V30,T24] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
+; V26 tmp18 [V26,T19] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V27 tmp19 [V27,T24] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V28 PSPSym [V28,T22] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
;
; Lcl frame size = 16
G_M14552_IG01:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 16
lea rbp, [rsp+0x30]
mov qword ptr [rbp-0x30], rsp
mov rbx, rdi
mov r15, rsi
;; size=27 bbWeight=1 PerfScore 7.25
G_M14552_IG02:
test r15, r15
je G_M14552_IG25
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M14552_IG24
;; size=46 bbWeight=1 PerfScore 7.00
G_M14552_IG03:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r14+0x08]
call CORINFO_HELP_ASSIGN_REF
mov r13d, dword ptr [rbx+0x18]
test r13d, r13d
jne G_M14552_IG08
;; size=35 bbWeight=1 PerfScore 7.00
G_M14552_IG04:
mov rdi, gword ptr [rbx+0x08]
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
jne G_M14552_IG06
mov rsi, gword ptr [rbx+0x08]
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.IO.Packaging.Package:PartExists(System.Uri):ubyte:this
test eax, eax
je G_M14552_IG15
mov rsi, gword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
call [rax]System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
mov r15, rax
mov rsi, gword ptr [rbx+0x10]
cmp byte ptr [r15], r15b
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackagePart:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
call [rax]System.IO.Packaging.PackagePart:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
test rax, rax
je G_M14552_IG15
mov rsi, gword ptr [rbx+0x10]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackagePart:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
call [rax]System.IO.Packaging.PackagePart:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
mov ebx, dword ptr [r14+0x10]
cmp dword ptr [rdi+0x08], ebx
ja SHORT G_M14552_IG05
mov rdi, r14
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_M14552_IG15
- ;; size=172 bbWeight=0.50 PerfScore 30.38
+ ;; size=176 bbWeight=0.50 PerfScore 30.00
G_M14552_IG05:
lea esi, [rbx+0x01]
mov dword ptr [r14+0x10], esi
movsxd rsi, ebx
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
jmp G_M14552_IG15
;; size=30 bbWeight=0.50 PerfScore 3.62
G_M14552_IG06:
mov rsi, gword ptr [rbx+0x10]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
call [rax]System.IO.Packaging.Package:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
test rax, rax
je G_M14552_IG15
mov rsi, gword ptr [rbx+0x10]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
call [rax]System.IO.Packaging.Package:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
mov r13d, dword ptr [r14+0x10]
cmp dword ptr [rdi+0x08], r13d
ja SHORT G_M14552_IG07
mov rdi, r14
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_M14552_IG15
;; size=88 bbWeight=0.50 PerfScore 14.50
G_M14552_IG07:
lea esi, [r13+0x01]
mov dword ptr [r14+0x10], esi
movsxd rsi, r13d
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
jmp G_M14552_IG15
;; size=31 bbWeight=0.50 PerfScore 3.62
G_M14552_IG08:
cmp r13d, 1
jne G_M14552_IG15
mov rdi, gword ptr [rbx+0x08]
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
jne G_M14552_IG23
mov rsi, gword ptr [rbx+0x08]
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.IO.Packaging.Package:PartExists(System.Uri):ubyte:this
test eax, eax
je G_M14552_IG15
mov rsi, gword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
call [rax]System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
mov rdi, rax
mov rsi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackagePart:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
cmp dword ptr [rdi], edi
call [rax]System.IO.Packaging.PackagePart:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
cmp dword ptr [rdi], edi
call [rax]System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
mov gword ptr [rbp-0x28], rax
jmp G_M14552_IG17
- ;; size=136 bbWeight=0.50 PerfScore 23.88
+ ;; size=140 bbWeight=0.50 PerfScore 23.50
G_M14552_IG09:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
je SHORT G_M14552_IG14
;; size=21 bbWeight=0.50 PerfScore 2.75
G_M14552_IG10:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
call [r11]System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
mov ebx, dword ptr [r14+0x10]
cmp dword ptr [rdi+0x08], ebx
ja SHORT G_M14552_IG12
;; size=34 bbWeight=4 PerfScore 61.00
G_M14552_IG11:
mov rdi, r14
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 SHORT G_M14552_IG13
;; size=20 bbWeight=2 PerfScore 11.50
G_M14552_IG12:
lea esi, [rbx+0x01]
mov dword ptr [r14+0x10], esi
movsxd rsi, ebx
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
;; size=25 bbWeight=2 PerfScore 10.50
G_M14552_IG13:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne SHORT G_M14552_IG10
;; size=21 bbWeight=4 PerfScore 22.00
G_M14552_IG14:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=17 bbWeight=0.50 PerfScore 2.12
G_M14552_IG15:
mov rax, r14
;; size=3 bbWeight=1 PerfScore 0.25
G_M14552_IG16:
add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=1 PerfScore 3.75
G_M14552_IG17:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
je SHORT G_M14552_IG22
;; size=21 bbWeight=0.50 PerfScore 2.75
G_M14552_IG18:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
call [r11]System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
mov ebx, dword ptr [r14+0x10]
cmp dword ptr [rdi+0x08], ebx
ja SHORT G_M14552_IG20
;; size=34 bbWeight=4 PerfScore 61.00
G_M14552_IG19:
mov rdi, r14
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 SHORT G_M14552_IG21
;; size=20 bbWeight=2 PerfScore 11.50
G_M14552_IG20:
lea esi, [rbx+0x01]
mov dword ptr [r14+0x10], esi
movsxd rsi, ebx
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
;; size=25 bbWeight=2 PerfScore 10.50
G_M14552_IG21:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne SHORT G_M14552_IG18
;; size=21 bbWeight=4 PerfScore 22.00
G_M14552_IG22:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
jmp G_M14552_IG15
;; size=22 bbWeight=0.50 PerfScore 3.12
G_M14552_IG23:
mov rsi, gword ptr [rbx+0x10]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
call [rax]System.IO.Packaging.Package:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
cmp dword ptr [rdi], edi
call [rax]System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
mov gword ptr [rbp-0x28], rax
jmp G_M14552_IG09
;; size=45 bbWeight=0.50 PerfScore 7.50
G_M14552_IG24:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M14552_IG03
;; size=20 bbWeight=0 PerfScore 0.00
G_M14552_IG25:
mov rdi, 0xD1FFAB1E ; System.ArgumentNullException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov edi, 0x1867
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:.ctor(System.String):this
call [rax]System.ArgumentNullException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=65 bbWeight=0 PerfScore 0.00
G_M14552_IG26:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 16
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x30]
;; size=23 bbWeight=0 PerfScore 0.00
G_M14552_IG27:
cmp gword ptr [rbp-0x28], 0
je SHORT G_M14552_IG28
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
G_M14552_IG28:
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M14552_IG29:
add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=0 PerfScore 0.00
G_M14552_IG30:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 16
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x30]
;; size=23 bbWeight=0 PerfScore 0.00
G_M14552_IG31:
cmp gword ptr [rbp-0x28], 0
je SHORT G_M14552_IG32
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
G_M14552_IG32:
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M14552_IG33:
add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1114, prolog size 27, PerfScore 329.50, instruction count 275, allocated bytes for code 1114 (MethodHash=14f6c727) for method System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this (FullOpts)
+; Total bytes of code 1122, prolog size 27, PerfScore 328.75, instruction count 275, allocated bytes for code 1122 (MethodHash=14f6c727) for method System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this (FullOpts) 4 (1.15 % of base) - System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this ; Assembly listing for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 4 ) ref -> r15 this class-hnd single-def <System.Net.CredentialCacheKey>
; V01 arg1 [V01,T00] ( 6, 4.50) ref -> rbx class-hnd single-def <System.Net.CredentialCacheKey>
-; V02 loc0 [V02,T08] ( 3, 1.50) ubyte -> r14
+; V02 loc0 [V02,T07] ( 3, 1.50) ubyte -> r14
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T09] ( 3, 1.50) int -> r14
+; V04 tmp1 [V04,T08] ( 3, 1.50) int -> r14
; V05 tmp2 [V05,T02] ( 5, 5 ) ref -> r12 class-hnd exact single-def "dup spill" <System.Object[]>
; V06 tmp3 [V06,T03] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
; V09 tmp6 [V09,T04] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.FormattableString>
-; V10 tmp7 [V10,T10] ( 2, 1 ) ref -> r13 single-def
-; V11 tmp8 [V11,T11] ( 2, 1 ) ref -> r15 single-def
+; V10 tmp7 [V10,T09] ( 2, 1 ) ref -> r13 single-def
+; V11 tmp8 [V11,T10] ( 2, 1 ) ref -> r15 single-def
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
-; V16 tmp13 [V16,T06] ( 3, 1.50) ref -> rax
-; V17 tmp14 [V17,T12] ( 2, 1 ) ref -> rdi single-def
-;* V18 tmp15 [V18,T15] ( 0, 0 ) int -> zero-ref
-; V19 tmp16 [V19,T13] ( 2, 1 ) ref -> rdx single-def
-;* V20 tmp17 [V20,T14] ( 0, 0 ) ref -> zero-ref single-def
-; V21 tmp18 [V21,T05] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V22 cse0 [V22,T07] ( 3, 1.50) ref -> r13 "CSE #01: moderate"
+; V16 tmp13 [V16,T05] ( 3, 1.50) ref -> rax
+; V17 tmp14 [V17,T11] ( 2, 1 ) ref -> rdi single-def
+;* V18 tmp15 [V18,T14] ( 0, 0 ) int -> zero-ref
+; V19 tmp16 [V19,T12] ( 2, 1 ) ref -> rdx single-def
+;* V20 tmp17 [V20,T13] ( 0, 0 ) ref -> zero-ref single-def
+; V21 cse0 [V21,T06] ( 3, 1.50) ref -> r13 "CSE #01: moderate"
;
; Lcl frame size = 8
G_M30951_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov r15, rdi
mov rbx, rsi
;; size=22 bbWeight=1 PerfScore 8.00
G_M30951_IG02:
test rbx, rbx
je G_M30951_IG10
;; size=9 bbWeight=1 PerfScore 1.25
G_M30951_IG03:
mov rdi, gword ptr [r15+0x10]
mov rsi, gword ptr [rbx+0x10]
mov edx, 5
mov rax, 0xD1FFAB1E ; code for System.String:Equals(System.String,System.String,int):ubyte
call [rax]System.String:Equals(System.String,System.String,int):ubyte
test eax, eax
jne SHORT G_M30951_IG04
xor r14d, r14d
jmp SHORT G_M30951_IG05
;; size=34 bbWeight=0.50 PerfScore 5.50
G_M30951_IG04:
mov rdi, gword ptr [r15+0x08]
mov rsi, gword ptr [rbx+0x08]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
mov r14d, eax
- ;; size=21 bbWeight=0.50 PerfScore 5.62
+ ;; size=25 bbWeight=0.50 PerfScore 5.25
G_M30951_IG05:
movzx r14, r14b
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
cmp byte ptr [r13+0x9D], 0
je G_M30951_IG08
mov rdi, 0xD1FFAB1E ; System.Object[]
mov esi, 3
call CORINFO_HELP_NEWARR_1_OBJ
mov r12, rax
lea rdi, bword ptr [r12+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r12+0x18]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Boolean
call CORINFO_HELP_NEWSFAST
mov byte ptr [rax+0x08], r14b
lea rdi, bword ptr [r12+0x20]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rsi, r12
mov rdi, 0xD1FFAB1E ; 'Equals({0},{1}) returns {2}'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
call [rax]System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
mov rbx, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
mov r15, rax
test rbx, rbx
je SHORT G_M30951_IG06
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.FormattableString):System.String
call [rax]System.Net.NetEventSource:Format(System.FormattableString):System.String
jmp SHORT G_M30951_IG07
;; size=180 bbWeight=0.50 PerfScore 15.12
G_M30951_IG06:
mov rax, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M30951_IG07:
mov rdi, r13
mov rdx, r15
mov esi, 1
mov rcx, 0xD1FFAB1E ; 'Equals'
mov r8, rax
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
;; size=36 bbWeight=0.50 PerfScore 2.25
G_M30951_IG08:
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M30951_IG09:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M30951_IG10:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M30951_IG11:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 347, prolog size 16, PerfScore 42.38, instruction count 89, allocated bytes for code 347 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
+; Total bytes of code 351, prolog size 16, PerfScore 42.00, instruction count 89, allocated bytes for code 351 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts) 4 (1.15 % of base) - System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this ; Assembly listing for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 4 ) ref -> r15 this class-hnd single-def <System.Net.CredentialCacheKey>
; V01 arg1 [V01,T00] ( 6, 4.50) ref -> rbx class-hnd single-def <System.Net.CredentialCacheKey>
-; V02 loc0 [V02,T08] ( 3, 1.50) ubyte -> r14
+; V02 loc0 [V02,T07] ( 3, 1.50) ubyte -> r14
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T09] ( 3, 1.50) int -> r14
+; V04 tmp1 [V04,T08] ( 3, 1.50) int -> r14
; V05 tmp2 [V05,T02] ( 5, 5 ) ref -> r12 class-hnd exact single-def "dup spill" <System.Object[]>
; V06 tmp3 [V06,T03] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
; V09 tmp6 [V09,T04] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.FormattableString>
-; V10 tmp7 [V10,T10] ( 2, 1 ) ref -> r13 single-def
-; V11 tmp8 [V11,T11] ( 2, 1 ) ref -> r15 single-def
+; V10 tmp7 [V10,T09] ( 2, 1 ) ref -> r13 single-def
+; V11 tmp8 [V11,T10] ( 2, 1 ) ref -> r15 single-def
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
-; V16 tmp13 [V16,T06] ( 3, 1.50) ref -> rax
-; V17 tmp14 [V17,T12] ( 2, 1 ) ref -> rdi single-def
-;* V18 tmp15 [V18,T15] ( 0, 0 ) int -> zero-ref
-; V19 tmp16 [V19,T13] ( 2, 1 ) ref -> rdx single-def
-;* V20 tmp17 [V20,T14] ( 0, 0 ) ref -> zero-ref single-def
-; V21 tmp18 [V21,T05] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V22 cse0 [V22,T07] ( 3, 1.50) ref -> r13 "CSE #01: moderate"
+; V16 tmp13 [V16,T05] ( 3, 1.50) ref -> rax
+; V17 tmp14 [V17,T11] ( 2, 1 ) ref -> rdi single-def
+;* V18 tmp15 [V18,T14] ( 0, 0 ) int -> zero-ref
+; V19 tmp16 [V19,T12] ( 2, 1 ) ref -> rdx single-def
+;* V20 tmp17 [V20,T13] ( 0, 0 ) ref -> zero-ref single-def
+; V21 cse0 [V21,T06] ( 3, 1.50) ref -> r13 "CSE #01: moderate"
;
; Lcl frame size = 8
G_M30951_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov r15, rdi
mov rbx, rsi
;; size=22 bbWeight=1 PerfScore 8.00
G_M30951_IG02:
test rbx, rbx
je G_M30951_IG10
;; size=9 bbWeight=1 PerfScore 1.25
G_M30951_IG03:
mov rdi, gword ptr [r15+0x10]
mov rsi, gword ptr [rbx+0x10]
mov edx, 5
mov rax, 0xD1FFAB1E ; code for System.String:Equals(System.String,System.String,int):ubyte
call [rax]System.String:Equals(System.String,System.String,int):ubyte
test eax, eax
jne SHORT G_M30951_IG04
xor r14d, r14d
jmp SHORT G_M30951_IG05
;; size=34 bbWeight=0.50 PerfScore 5.50
G_M30951_IG04:
mov rdi, gword ptr [r15+0x08]
mov rsi, gword ptr [rbx+0x08]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
mov r14d, eax
- ;; size=21 bbWeight=0.50 PerfScore 5.62
+ ;; size=25 bbWeight=0.50 PerfScore 5.25
G_M30951_IG05:
movzx r14, r14b
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
cmp byte ptr [r13+0x9D], 0
je G_M30951_IG08
mov rdi, 0xD1FFAB1E ; System.Object[]
mov esi, 3
call CORINFO_HELP_NEWARR_1_OBJ
mov r12, rax
lea rdi, bword ptr [r12+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r12+0x18]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Boolean
call CORINFO_HELP_NEWSFAST
mov byte ptr [rax+0x08], r14b
lea rdi, bword ptr [r12+0x20]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rsi, r12
mov rdi, 0xD1FFAB1E ; 'Equals({0},{1}) returns {2}'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
call [rax]System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
mov rbx, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
mov r15, rax
test rbx, rbx
je SHORT G_M30951_IG06
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.FormattableString):System.String
call [rax]System.Net.NetEventSource:Format(System.FormattableString):System.String
jmp SHORT G_M30951_IG07
;; size=180 bbWeight=0.50 PerfScore 15.12
G_M30951_IG06:
mov rax, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M30951_IG07:
mov rdi, r13
mov rdx, r15
mov esi, 1
mov rcx, 0xD1FFAB1E ; 'Equals'
mov r8, rax
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
;; size=36 bbWeight=0.50 PerfScore 2.25
G_M30951_IG08:
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M30951_IG09:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M30951_IG10:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M30951_IG11:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 347, prolog size 16, PerfScore 42.38, instruction count 89, allocated bytes for code 347 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
+; Total bytes of code 351, prolog size 16, PerfScore 42.00, instruction count 89, allocated bytes for code 351 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts) 4 (2.55 % of base) - System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this ; Assembly listing for method System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 6, 4.50) ref -> rbx this class-hnd single-def <System.Xml.Schema.ChameleonKey>
; V01 arg1 [V01,T01] ( 6, 4.25) ref -> rsi class-hnd single-def <System.Object>
-; V02 loc0 [V02,T05] ( 4, 2 ) ref -> r15 class-hnd exact <System.Xml.Schema.ChameleonKey>
+; V02 loc0 [V02,T04] ( 4, 2 ) ref -> r15 class-hnd exact <System.Xml.Schema.ChameleonKey>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Xml.Schema.ChameleonKey>
-; V05 tmp2 [V05,T06] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V05 tmp2 [V05,T05] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V06 tmp3 [V06,T02] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
; V07 tmp4 [V07,T03] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V08 tmp5 [V08,T07] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
-; V09 tmp6 [V09,T04] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V10 cse0 [V10,T08] ( 3, 1.50) int -> rdx "CSE #01: moderate"
+; V08 tmp5 [V08,T06] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
+; V09 cse0 [V09,T07] ( 3, 1.50) int -> rdx "CSE #01: moderate"
;
; Lcl frame size = 0
G_M47687_IG01:
push rbp
push r15
push rbx
lea rbp, [rsp+0x10]
mov rbx, rdi
;; size=12 bbWeight=1 PerfScore 3.75
G_M47687_IG02:
cmp rbx, rsi
je G_M47687_IG10
;; size=9 bbWeight=1 PerfScore 1.25
G_M47687_IG03:
test rsi, rsi
je SHORT G_M47687_IG08
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M47687_IG04:
mov rdx, 0xD1FFAB1E ; System.Xml.Schema.ChameleonKey
cmp qword ptr [rsi], rdx
jne SHORT G_M47687_IG08
;; size=15 bbWeight=0.25 PerfScore 1.06
G_M47687_IG05:
mov r15, rsi
mov rdi, gword ptr [rbx+0x08]
mov rsi, gword ptr [r15+0x08]
cmp byte ptr [rdi], dil
cmp rdi, rsi
je SHORT G_M47687_IG06
test rsi, rsi
je SHORT G_M47687_IG08
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [rsi+0x08]
jne SHORT G_M47687_IG08
add rdi, 12
add edx, edx
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M47687_IG08
;; size=58 bbWeight=0.50 PerfScore 10.50
G_M47687_IG06:
mov rdi, gword ptr [rbx+0x10]
mov rsi, gword ptr [r15+0x10]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
je SHORT G_M47687_IG08
mov rax, gword ptr [rbx+0x18]
cmp rax, gword ptr [r15+0x18]
sete al
movzx rax, al
- ;; size=36 bbWeight=0.50 PerfScore 9.25
+ ;; size=40 bbWeight=0.50 PerfScore 8.88
G_M47687_IG07:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
G_M47687_IG08:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M47687_IG09:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
G_M47687_IG10:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M47687_IG11:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 157, prolog size 9, PerfScore 30.44, instruction count 55, allocated bytes for code 157 (MethodHash=423645b8) for method System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 161, prolog size 9, PerfScore 30.06, instruction count 55, allocated bytes for code 161 (MethodHash=423645b8) for method System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this (FullOpts) 4 (3.25 % of base) - System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this ; Assembly listing for method System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - 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.Schema.Datatype_anyURI>
-; V01 arg1 [V01,T03] ( 4, 3.25) ref -> rsi class-hnd single-def <System.Object>
-; V02 arg2 [V02,T04] ( 4, 3.25) ref -> rbx class-hnd single-def <System.Object>
+; V01 arg1 [V01,T02] ( 4, 3.25) ref -> rsi class-hnd single-def <System.Object>
+; V02 arg2 [V02,T03] ( 4, 3.25) ref -> rbx class-hnd single-def <System.Object>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> r15 single-def "argument with side effect"
+; V04 tmp1 [V04,T04] ( 2, 4 ) ref -> r15 single-def "argument with side effect"
; V05 tmp2 [V05,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V06 rat0 [V06,T00] ( 5, 7.50) ref -> r15 "replacement local"
; V07 rat1 [V07,T06] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
; V08 rat2 [V08,T01] ( 5, 7.50) ref -> rsi "replacement local"
; V09 rat3 [V09,T07] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 0
G_M61907_IG01:
push rbp
push r15
push rbx
lea rbp, [rsp+0x10]
mov rbx, rdx
;; size=12 bbWeight=1 PerfScore 3.75
G_M61907_IG02:
mov r15, rsi
test r15, r15
je SHORT G_M61907_IG05
;; size=8 bbWeight=1 PerfScore 1.50
G_M61907_IG03:
mov rdi, 0xD1FFAB1E ; System.Uri
cmp qword ptr [r15], rdi
je SHORT G_M61907_IG05
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M61907_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov r15, rax
;; size=15 bbWeight=0.25 PerfScore 0.88
G_M61907_IG05:
mov rsi, rbx
test rsi, rsi
je SHORT G_M61907_IG08
;; size=8 bbWeight=1 PerfScore 1.50
G_M61907_IG06:
mov rdi, 0xD1FFAB1E ; System.Uri
cmp qword ptr [rsi], rdi
je SHORT G_M61907_IG08
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M61907_IG07:
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov rsi, rax
;; size=18 bbWeight=0.25 PerfScore 0.94
G_M61907_IG08:
mov rdi, r15
- mov rax, qword ptr [r15]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
xor ecx, ecx
mov edx, -1
test eax, eax
mov eax, edx
cmovne eax, ecx
- ;; size=27 bbWeight=1 PerfScore 8.50
+ ;; size=31 bbWeight=1 PerfScore 7.75
G_M61907_IG09:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
-; Total bytes of code 123, prolog size 9, PerfScore 23.81, instruction count 37, allocated bytes for code 123 (MethodHash=9b560e2c) for method System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this (FullOpts)
+; Total bytes of code 127, prolog size 9, PerfScore 23.06, instruction count 37, allocated bytes for code 127 (MethodHash=9b560e2c) for method System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/d07c3b26f6d762a954c3acf50f4a6261 |
Top method improvements-1092 (-80.65 % of base) - System.Uri:Equals(System.Object):ubyte:this ; Assembly listing for method System.Uri:Equals(System.Object):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
-; fully interruptible
+; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 27 single block inlinees; 11 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 29, 15.25) ref -> rbx this class-hnd single-def <System.Uri>
-; V01 arg1 [V01,T07] ( 7, 5 ) ref -> r15 class-hnd single-def <System.Object>
-; V02 loc0 [V02,T04] ( 24, 12 ) ref -> r14 ld-addr-op class-hnd <System.Uri>
-; V03 loc1 [V03,T45] ( 3, 1.50) ref -> r15 class-hnd exact single-def <System.Uri+MoreInfo>
-; V04 loc2 [V04,T46] ( 3, 1.50) ref -> r13 class-hnd exact single-def <System.Uri+MoreInfo>
-; V05 loc3 [V05,T25] ( 4, 2 ) int -> r12
-;* V06 loc4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
-; V07 loc5 [V07,T44] ( 3, 1.50) ref -> rdi class-hnd exact <System.String>
-; V08 loc6 [V08,T14] ( 7, 3.50) int -> rax
-; V09 loc7 [V09,T09] ( 5, 6 ) int -> rdx
-; V10 loc8 [V10,T15] ( 6, 3 ) int -> r8
-; V11 loc9 [V11,T26] ( 4, 2 ) int -> rsi
-; V12 loc10 [V12,T06] ( 5, 9.50) ref -> r10 class-hnd exact single-def <System.String>
-;* V13 loc11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Uri+MoreInfo>
-;* V14 loc12 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
-;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V16 tmp1 [V16 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V17 tmp2 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.String>
-;* V18 tmp3 [V18 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V19 tmp4 [V19,T29] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.String>
-; V20 tmp5 [V20,T30] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.String>
-;* V21 tmp6 [V21 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V22 tmp7 [V22 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V23 tmp8 [V23 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V24 tmp9 [V24 ] ( 0, 0 ) ref -> zero-ref single-def
-; V25 tmp10 [V25,T54] ( 2, 1 ) int -> rdx
-; V26 tmp11 [V26,T31] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
-; V27 tmp12 [V27,T20] ( 4, 2 ) ref -> [rbp-0x40]
-; V28 tmp13 [V28,T32] ( 2, 2 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
-;* V29 tmp14 [V29 ] ( 0, 0 ) ref -> zero-ref single-def
-; V30 tmp15 [V30,T21] ( 4, 2 ) ref -> r15
-;* V31 tmp16 [V31 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V32 tmp17 [V32 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V33 tmp18 [V33 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V34 tmp19 [V34 ] ( 0, 0 ) ref -> zero-ref single-def
-; V35 tmp20 [V35,T55] ( 2, 1 ) int -> rdx
-; V36 tmp21 [V36,T16] ( 3, 3 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
-; V37 tmp22 [V37,T17] ( 3, 3 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "dup spill" <System.String>
-;* V38 tmp23 [V38 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V39 tmp24 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.String>
-;* V40 tmp25 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.String>
-; V41 tmp26 [V41,T33] ( 2, 2 ) ref -> r8 class-hnd exact single-def "dup spill" <System.String>
-; V42 tmp27 [V42,T22] ( 4, 2 ) ref -> r8
-; V43 tmp28 [V43,T52] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
-; V44 tmp29 [V44 ] ( 4, 2 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.UriFormatException>
-; V45 tmp30 [V45 ] ( 2, 1 ) struct ( 8) [rbp-0x38] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UriCreationOptions>
-; V46 tmp31 [V46,T56] ( 2, 1 ) ubyte -> rdi "Inline return value spill temp"
-;* V47 tmp32 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Uri>
-; V48 tmp33 [V48,T34] ( 2, 2 ) ref -> rdi class-hnd exact single-def "dup spill" <System.String>
-; V49 tmp34 [V49,T23] ( 4, 2 ) ref -> rdi
-;* V50 tmp35 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Uri>
-; V51 tmp36 [V51,T35] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
-; V52 tmp37 [V52,T24] ( 4, 2 ) ref -> rax
-;* V53 tmp38 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Uri>
-; V54 tmp39 [V54,T36] ( 2, 2 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
-; V55 tmp40 [V55,T12] ( 8, 4 ) ref -> r15
-;* V56 tmp41 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Uri>
-; V57 tmp42 [V57,T37] ( 2, 2 ) ref -> rsi class-hnd exact single-def "dup spill" <System.String>
-; V58 tmp43 [V58,T13] ( 7, 3.50) ref -> rsi
-; V59 tmp44 [V59,T27] ( 4, 2 ) ubyte -> rax "Inline return value spill temp"
-; V60 tmp45 [V60,T38] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
-;* V61 tmp46 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Uri>
-; V62 tmp47 [V62,T39] ( 2, 2 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.UriParser>
-;* V63 tmp48 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Uri>
-; V64 tmp49 [V64,T40] ( 2, 2 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.UriParser>
-;* V65 tmp50 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Uri>
-;* V66 tmp51 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Uri>
-; V67 tmp52 [V67,T28] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
-; V68 tmp53 [V68,T08] ( 6, 6 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.String>
-; V69 tmp54 [V69,T11] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V70 tmp55 [V70,T41] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
-; V71 tmp56 [V71,T42] ( 2, 2 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.UriParser>
-; V72 tmp57 [V72,T43] ( 2, 2 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.UriParser>
-;* V73 tmp58 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Uri>
-; V74 tmp59 [V74,T19] ( 3, 3 ) int -> rax "Single return block return value"
-; V75 tmp60 [V75 ] ( 2, 1 ) ubyte -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V45._disablePathAndQueryCanonicalization (fldOffset=0x0)" P-DEP
-; V76 tmp61 [V76,T00] ( 3, 24 ) ref -> r8 "arr expr"
-; V77 tmp62 [V77,T18] ( 3, 3 ) ref -> r11 single-def "arr expr"
-; V78 cse0 [V78,T05] ( 3, 12 ) int -> r8 "CSE #13: aggressive"
-; V79 cse1 [V79,T53] ( 3, 1.50) int -> rdi "CSE #14: conservative"
-; V80 cse2 [V80,T10] ( 4, 5.25) ref -> r11 hoist multi-def "CSE #09: moderate"
-; V81 cse3 [V81,T47] ( 3, 1.50) ref -> rdi "CSE #07: conservative"
-; V82 cse4 [V82,T48] ( 3, 1.50) ref -> rdi "CSE #01: conservative"
-; V83 cse5 [V83,T49] ( 3, 1.50) ref -> r15 "CSE #02: conservative"
-; V84 cse6 [V84,T50] ( 3, 1.50) ref -> rsi "CSE #04: conservative"
-; V85 cse7 [V85,T51] ( 3, 1.50) ref -> rsi "CSE #08: conservative"
-; V86 rat0 [V86,T01] ( 9, 22 ) long -> rcx "Widened IV V08"
-; V87 rat1 [V87,T02] ( 8, 18 ) long -> r9 "Widened IV V10"
+; V00 this [V00,T01] ( 7, 4.50) ref -> r15 this class-hnd single-def <System.Uri>
+; V01 arg1 [V01,T00] ( 7, 5 ) ref -> rbx class-hnd single-def <System.Object>
+; V02 loc0 [V02,T02] ( 5, 2.50) ref -> rax ld-addr-op class-hnd <System.Uri>
+; V03 loc1 [V03,T06] ( 3, 1.50) ref -> rdi class-hnd exact <System.String>
+;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.String>
+; V06 tmp2 [V06,T04] ( 2, 2 ) ref -> r8 class-hnd exact single-def "dup spill" <System.String>
+; V07 tmp3 [V07,T03] ( 4, 2 ) ref -> r8
+; V08 tmp4 [V08,T07] ( 3, 1.50) ubyte -> rdi "Inline return value spill temp"
+; V09 tmp5 [V09 ] ( 4, 2 ) ref -> [rbp-0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.UriFormatException>
+; V10 tmp6 [V10 ] ( 2, 1 ) struct ( 8) [rbp-0x20] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UriCreationOptions>
+; V11 tmp7 [V11,T08] ( 2, 1 ) ubyte -> rdi "Inline return value spill temp"
+;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Uri>
+; V13 tmp9 [V13,T05] ( 2, 2 ) int -> rax "Single return block return value"
+; V14 tmp10 [V14 ] ( 2, 1 ) ubyte -> [rbp-0x20] do-not-enreg[X] addr-exposed "field V10._disablePathAndQueryCanonicalization (fldOffset=0x0)" P-DEP
;
-; Lcl frame size = 40
+; Lcl frame size = 16
G_M60668_IG01:
push rbp
push r15
- push r14
- push r13
- push r12
push rbx
- sub rsp, 40
- lea rbp, [rsp+0x50]
+ sub rsp, 16
+ lea rbp, [rsp+0x20]
xor eax, eax
- mov qword ptr [rbp-0x30], rax
- mov rbx, rdi
- mov r15, rsi
- ;; size=31 bbWeight=1 PerfScore 8.50
+ mov qword ptr [rbp-0x18], rax
+ mov r15, rdi
+ mov rbx, rsi
+ ;; size=25 bbWeight=1 PerfScore 5.50
G_M60668_IG02:
- test r15, r15
- je G_M60668_IG36
+ test rbx, rbx
+ je G_M60668_IG11
;; size=9 bbWeight=1 PerfScore 1.25
G_M60668_IG03:
- cmp rbx, r15
- je G_M60668_IG27
- mov rsi, r15
+ cmp r15, rbx
+ je G_M60668_IG09
+ mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Uri
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
- mov r14, rax
- test r14, r14
+ test rax, rax
jne G_M60668_IG07
- mov rdi, rbx
+ mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Uri:get_DisablePathAndQueryCanonicalization():ubyte:this
call [rax]System.Uri:get_DisablePathAndQueryCanonicalization():ubyte:this
test eax, eax
- jne G_M60668_IG36
+ jne G_M60668_IG11
mov r8, 0xD1FFAB1E ; System.String
- cmp qword ptr [r15], r8
- jne G_M60668_IG36
- mov rdi, r15
- mov r8, gword ptr [rbx+0x10]
+ cmp qword ptr [rbx], r8
+ jne G_M60668_IG11
+ mov rdi, rbx
+ mov r8, gword ptr [r15+0x10]
test r8, r8
jne SHORT G_M60668_IG04
- mov r8, gword ptr [rbx+0x08]
- ;; size=104 bbWeight=0.50 PerfScore 10.50
+ mov r8, gword ptr [r15+0x08]
+ ;; size=101 bbWeight=0.50 PerfScore 10.38
G_M60668_IG04:
cmp rdi, r8
- je G_M60668_IG27
+ je SHORT G_M60668_IG09
xor r8, r8
- mov gword ptr [rbp-0x30], r8
- mov byte ptr [rbp-0x38], 0
- lea r8, [rbp-0x38]
- lea rcx, [rbp-0x30]
+ mov gword ptr [rbp-0x18], r8
+ mov byte ptr [rbp-0x20], 0
+ lea r8, [rbp-0x20]
+ lea rcx, [rbp-0x18]
xor esi, esi
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Uri:CreateHelper(System.String,ubyte,int,byref,byref):System.Uri
call [rax]System.Uri:CreateHelper(System.String,ubyte,int,byref,byref):System.Uri
- mov r14, rax
- cmp gword ptr [rbp-0x30], 0
+ cmp gword ptr [rbp-0x18], 0
je SHORT G_M60668_IG05
xor edi, edi
jmp SHORT G_M60668_IG06
- align [4 bytes for IG18]
- ;; size=62 bbWeight=0.50 PerfScore 6.88
+ ;; size=51 bbWeight=0.50 PerfScore 6.75
G_M60668_IG05:
- test r14, r14
+ test rax, rax
setne dil
movzx rdi, dil
;; size=11 bbWeight=0.50 PerfScore 0.75
G_M60668_IG06:
- xor rax, rax
- mov gword ptr [rbp-0x30], rax
+ xor rsi, rsi
+ mov gword ptr [rbp-0x18], rsi
test edi, edi
- je G_M60668_IG36
- ;; size=14 bbWeight=0.50 PerfScore 1.25
+ je SHORT G_M60668_IG11
+ ;; size=10 bbWeight=0.50 PerfScore 1.25
G_M60668_IG07:
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Uri:get_DisablePathAndQueryCanonicalization():ubyte:this
- call [rax]System.Uri:get_DisablePathAndQueryCanonicalization():ubyte:this
- mov r15d, eax
- mov rdi, r14
- mov rax, 0xD1FFAB1E ; code for System.Uri:get_DisablePathAndQueryCanonicalization():ubyte:this
- cmp dword ptr [rdi], edi
- call [rax]System.Uri:get_DisablePathAndQueryCanonicalization():ubyte:this
- cmp r15d, eax
- jne G_M60668_IG36
- mov r15, gword ptr [rbx+0x10]
mov rdi, r15
- test rdi, rdi
- jne SHORT G_M60668_IG08
- mov rdi, gword ptr [rbx+0x08]
- ;; size=60 bbWeight=0.50 PerfScore 8.50
-G_M60668_IG08:
- mov rsi, gword ptr [r14+0x10]
- mov rax, rsi
- test rax, rax
- jne SHORT G_M60668_IG09
- mov rax, gword ptr [r14+0x08]
- ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M60668_IG09:
- cmp rdi, rax
- je G_M60668_IG27
- mov rdi, gword ptr [rbx+0x18]
- test rdi, rdi
- setne al
- movzx rax, al
- cmp gword ptr [r14+0x18], 0
- setne cl
- movzx rcx, cl
- cmp eax, ecx
- jne G_M60668_IG36
- test rdi, rdi
- je G_M60668_IG29
- test dword ptr [rbx+0x28], 0xD1FFAB1E
- je SHORT G_M60668_IG10
- test dword ptr [r14+0x28], 0xD1FFAB1E
- jne SHORT G_M60668_IG11
- ;; size=69 bbWeight=0.50 PerfScore 9.75
-G_M60668_IG10:
- mov r15, gword ptr [rbx+0x08]
- mov r13, gword ptr [r14+0x08]
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Uri:get_IsUncOrDosPath():ubyte:this
- call [rax]System.Uri:get_IsUncOrDosPath():ubyte:this
- mov edx, 5
- mov edi, 4
- test eax, eax
- cmove edx, edi
- mov rdi, r15
- mov rsi, r13
- mov rax, 0xD1FFAB1E ; code for System.String:Equals(System.String,System.String,int):ubyte
- call [rax]System.String:Equals(System.String,System.String,int):ubyte
- test eax, eax
- jne G_M60668_IG27
- ;; size=64 bbWeight=0.50 PerfScore 6.75
-G_M60668_IG11:
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Uri:EnsureUriInfo():System.Uri+UriInfo:this
- call [rax]System.Uri:EnsureUriInfo():System.Uri+UriInfo:this
- mov rdi, r14
- mov rax, 0xD1FFAB1E ; code for System.Uri:EnsureUriInfo():System.Uri+UriInfo:this
- call [rax]System.Uri:EnsureUriInfo():System.Uri+UriInfo:this
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Uri:get_UserDrivenParsing():ubyte:this
- call [rax]System.Uri:get_UserDrivenParsing():ubyte:this
- test eax, eax
- jne G_M60668_IG23
- mov rdi, r14
- mov rax, 0xD1FFAB1E ; code for System.Uri:get_UserDrivenParsing():ubyte:this
- call [rax]System.Uri:get_UserDrivenParsing():ubyte:this
- test eax, eax
- jne G_M60668_IG23
- mov rdi, gword ptr [rbx+0x18]
- test dword ptr [rdi+0x10], 0x20000
- je G_M60668_IG23
- mov rdi, gword ptr [r14+0x18]
- test dword ptr [rdi+0x10], 0x20000
- je G_M60668_IG23
- test dword ptr [rbx+0x28], 0xD1FFAB1E
- je SHORT G_M60668_IG12
- test dword ptr [r14+0x28], 0xD1FFAB1E
- jne G_M60668_IG15
- ;; size=133 bbWeight=0.50 PerfScore 18.25
-G_M60668_IG12:
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Uri:EnsureUriInfo():System.Uri+UriInfo:this
- call [rax]System.Uri:EnsureUriInfo():System.Uri+UriInfo:this
- cmp gword ptr [rax+0x10], 0
- jne SHORT G_M60668_IG13
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Uri:CreateHostString():this
- call [rax]System.Uri:CreateHostString():this
- ;; size=37 bbWeight=0.50 PerfScore 5.50
-G_M60668_IG13:
- mov rdi, r14
- mov rax, 0xD1FFAB1E ; code for System.Uri:EnsureUriInfo():System.Uri+UriInfo:this
- call [rax]System.Uri:EnsureUriInfo():System.Uri+UriInfo:this
- cmp gword ptr [rax+0x10], 0
- jne SHORT G_M60668_IG14
- mov rdi, r14
- mov rax, 0xD1FFAB1E ; code for System.Uri:CreateHostString():this
- call [rax]System.Uri:CreateHostString():this
- ;; size=37 bbWeight=0.50 PerfScore 5.50
-G_M60668_IG14:
- mov rdx, gword ptr [rbx+0x20]
- mov rdx, gword ptr [rdx+0x10]
- mov rsi, gword ptr [r14+0x20]
- mov rsi, gword ptr [rsi+0x10]
- cmp byte ptr [rdx], dl
- cmp rdx, rsi
- je G_M60668_IG22
- test rsi, rsi
- je G_M60668_IG36
- mov edi, dword ptr [rdx+0x08]
- cmp edi, dword ptr [rsi+0x08]
- jne G_M60668_IG36
- lea rdi, bword ptr [rdx+0x0C]
- mov edx, dword ptr [rdx+0x08]
- add edx, edx
- add rsi, 12
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
- call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
- test eax, eax
- je G_M60668_IG36
- jmp G_M60668_IG22
- ;; size=86 bbWeight=0.50 PerfScore 14.50
-G_M60668_IG15:
- mov rdi, gword ptr [rbx+0x20]
- movzx rax, word ptr [rdi+0x3C]
- mov ecx, eax
- movzx rdi, word ptr [rdi+0x40]
- mov edx, edi
- mov rsi, gword ptr [r14+0x20]
- movzx r8, word ptr [rsi+0x3C]
- mov r9d, r8d
- movzx rsi, word ptr [rsi+0x40]
- mov r10, gword ptr [r14+0x08]
- mov r11d, edx
- sub r11d, ecx
- mov r15d, esi
- sub r15d, r9d
- cmp r11d, r15d
- jle SHORT G_M60668_IG16
- lea edx, [rcx+rsi]
- sub edx, r9d
- ;; size=59 bbWeight=0.50 PerfScore 8.88
-G_M60668_IG16:
- cmp eax, edx
- jge SHORT G_M60668_IG20
- ;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M60668_IG17:
- mov r11, gword ptr [rbx+0x08]
- ;; size=4 bbWeight=0.25 PerfScore 0.50
-G_M60668_IG18:
- mov r8, r11
- cmp ecx, dword ptr [r8+0x08]
- jae G_M60668_IG38
- movzx rax, word ptr [r8+2*rcx+0x0C]
- cmp r9d, dword ptr [r10+0x08]
- jae G_M60668_IG38
- movzx r8, word ptr [r10+2*r9+0x0C]
- cmp eax, r8d
- jne G_M60668_IG36
- cmp r8d, 58
- je SHORT G_M60668_IG19
- inc ecx
- inc r9d
- cmp ecx, edx
- jl SHORT G_M60668_IG18
- ;; size=59 bbWeight=4 PerfScore 66.00
-G_M60668_IG19:
- mov r8d, r9d
- mov eax, ecx
- ;; size=5 bbWeight=0.50 PerfScore 0.25
-G_M60668_IG20:
- cmp eax, edi
- jge SHORT G_M60668_IG21
- mov r11, gword ptr [rbx+0x08]
- cmp eax, dword ptr [r11+0x08]
- jae G_M60668_IG38
- mov edi, eax
- cmp word ptr [r11+2*rdi+0x0C], 58
- jne G_M60668_IG36
- ;; size=33 bbWeight=0.50 PerfScore 5.75
-G_M60668_IG21:
- cmp r8d, esi
- jge SHORT G_M60668_IG22
- cmp r8d, dword ptr [r10+0x08]
- jae G_M60668_IG38
- mov edi, r8d
- cmp word ptr [r10+2*rdi+0x0C], 58
- jne G_M60668_IG36
- ;; size=31 bbWeight=0.50 PerfScore 4.75
-G_M60668_IG22:
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.Uri:get_Port():int:this
- call [rax]System.Uri:get_Port():int:this
- mov r15d, eax
- mov rdi, r14
- mov rax, 0xD1FFAB1E ; code for System.Uri:get_Port():int:this
- call [rax]System.Uri:get_Port():int:this
- cmp r15d, eax
- jne G_M60668_IG36
- ;; size=42 bbWeight=0.50 PerfScore 4.25
-G_M60668_IG23:
- mov rdi, gword ptr [rbx+0x20]
- mov rax, 0xD1FFAB1E ; code for System.Uri+UriInfo:get_MoreInfo():System.Uri+MoreInfo:this
- cmp dword ptr [rdi], edi
- call [rax]System.Uri+UriInfo:get_MoreInfo():System.Uri+MoreInfo:this
- mov r15, rax
- mov rdi, gword ptr [r14+0x20]
- mov rax, 0xD1FFAB1E ; code for System.Uri+UriInfo:get_MoreInfo():System.Uri+MoreInfo:this
- cmp dword ptr [rdi], edi
- call [rax]System.Uri+UriInfo:get_MoreInfo():System.Uri+MoreInfo:this
- mov r13, rax
- mov r12d, 61
- mov rdi, gword ptr [rbx+0x18]
- test dword ptr [rdi+0x10], 0x4000
- je SHORT G_M60668_IG24
- mov rdi, gword ptr [r14+0x18]
- test dword ptr [rdi+0x10], 0x4000
- je G_M60668_IG36
- mov r12d, 63
- ;; size=84 bbWeight=0.50 PerfScore 14.75
-G_M60668_IG24:
- mov rax, gword ptr [r15+0x28]
- test rax, rax
- jne SHORT G_M60668_IG25
- mov rdi, rbx
- mov esi, r12d
- mov edx, 3
- mov rax, 0xD1FFAB1E ; code for System.Uri:InternalGetComponents(int,int):System.String:this
- call [rax]System.Uri:InternalGetComponents(int,int):System.String:this
- mov gword ptr [rbp-0x48], rax
- lea rdi, bword ptr [r15+0x28]
mov rsi, rax
- call CORINFO_HELP_ASSIGN_REF
- mov r15, gword ptr [rbp-0x48]
- mov gword ptr [rbp-0x40], r15
- mov rax, gword ptr [rbp-0x40]
- ;; size=60 bbWeight=0.50 PerfScore 6.50
-G_M60668_IG25:
- mov r15, gword ptr [r13+0x28]
- test r15, r15
- mov gword ptr [rbp-0x40], rax
- jne SHORT G_M60668_IG26
- mov rdi, r14
- mov esi, r12d
- mov edx, 3
- mov rcx, 0xD1FFAB1E ; code for System.Uri:InternalGetComponents(int,int):System.String:this
- call [rcx]System.Uri:InternalGetComponents(int,int):System.String:this
- mov r15, rax
- lea rdi, bword ptr [r13+0x28]
- mov rsi, r15
- call CORINFO_HELP_ASSIGN_REF
- ;; size=51 bbWeight=0.50 PerfScore 5.12
-G_M60668_IG26:
- mov rdi, rbx
- mov rcx, 0xD1FFAB1E ; code for System.Uri:get_IsUncOrDosPath():ubyte:this
- call [rcx]System.Uri:get_IsUncOrDosPath():ubyte:this
- mov edx, 5
- mov edi, 4
- test eax, eax
- cmove edx, edi
- mov rdi, gword ptr [rbp-0x40]
- mov rsi, r15
- mov rax, 0xD1FFAB1E ; code for System.String:Equals(System.String,System.String,int):ubyte
- call [rax]System.String:Equals(System.String,System.String,int):ubyte
- jmp SHORT G_M60668_IG34
- ;; size=51 bbWeight=0.50 PerfScore 5.50
-G_M60668_IG27:
- mov eax, 1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M60668_IG28:
- add rsp, 40
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
+ movzx rax, al
+ ;; size=21 bbWeight=0.50 PerfScore 2.00
+G_M60668_IG08:
+ add rsp, 16
pop rbx
- pop r12
- pop r13
- pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M60668_IG29:
- test r15, r15
- jne SHORT G_M60668_IG30
- mov r15, gword ptr [rbx+0x08]
- ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M60668_IG30:
- test rsi, rsi
- jne SHORT G_M60668_IG31
- mov rsi, gword ptr [r14+0x08]
- ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M60668_IG31:
- cmp byte ptr [r15], r15b
- cmp r15, rsi
- je SHORT G_M60668_IG33
- test rsi, rsi
- je SHORT G_M60668_IG32
- mov edx, dword ptr [r15+0x08]
- cmp edx, dword ptr [rsi+0x08]
- jne SHORT G_M60668_IG32
- lea rdi, bword ptr [r15+0x0C]
- mov edx, dword ptr [r15+0x08]
- add edx, edx
- add rsi, 12
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
- call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
- jmp SHORT G_M60668_IG34
- ;; size=50 bbWeight=0.50 PerfScore 9.88
-G_M60668_IG32:
- xor eax, eax
- jmp SHORT G_M60668_IG34
- ;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M60668_IG33:
+ ;; size=9 bbWeight=0.50 PerfScore 1.38
+G_M60668_IG09:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M60668_IG34:
- movzx rax, al
- ;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M60668_IG35:
- add rsp, 40
+G_M60668_IG10:
+ add rsp, 16
pop rbx
- pop r12
- pop r13
- pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M60668_IG36:
+ ;; size=9 bbWeight=0.50 PerfScore 1.38
+G_M60668_IG11:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M60668_IG37:
- add rsp, 40
+G_M60668_IG12:
+ add rsp, 16
pop rbx
- pop r12
- pop r13
- pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M60668_IG38:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0.50 PerfScore 1.38
-; Total bytes of code 1354, prolog size 31, PerfScore 244.62, instruction count 348, allocated bytes for code 1354 (MethodHash=e6ef1303) for method System.Uri:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 262, prolog size 19, PerfScore 32.25, instruction count 76, allocated bytes for code 262 (MethodHash=e6ef1303) for method System.Uri:Equals(System.Object):ubyte:this (FullOpts) -12 (-11.65 % of base) - System.Net.Http.HttpEnvironmentProxyCredentials:GetCredential(System.Uri,System.String):System.Net.NetworkCredential:this ; Assembly listing for method System.Net.Http.HttpEnvironmentProxyCredentials:GetCredential(System.Uri,System.String):System.Net.NetworkCredential:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 6, 4 ) ref -> r15 this class-hnd single-def <System.Net.Http.HttpEnvironmentProxyCredentials>
-; V01 arg1 [V01,T00] ( 6, 4.50) ref -> rbx class-hnd single-def <System.Uri>
+; V00 this [V00,T00] ( 6, 4 ) ref -> rbx this class-hnd single-def <System.Net.Http.HttpEnvironmentProxyCredentials>
+; V01 arg1 [V01,T01] ( 5, 4 ) ref -> r15 class-hnd single-def <System.Uri>
;* V02 arg2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1 [V04,T03] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V05 cse0 [V05,T02] ( 3, 1.50) long -> r14 "CSE #02: moderate"
+;* V04 tmp1 [V04,T02] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M41623_IG01:
push rbp
push r15
- push r14
push rbx
- push rax
- lea rbp, [rsp+0x20]
- mov r15, rdi
- mov rbx, rsi
- ;; size=18 bbWeight=1 PerfScore 6.00
+ lea rbp, [rsp+0x10]
+ mov rbx, rdi
+ mov r15, rsi
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M41623_IG02:
- test rbx, rbx
+ test r15, r15
je SHORT G_M41623_IG07
;; size=5 bbWeight=1 PerfScore 1.25
G_M41623_IG03:
- mov rsi, gword ptr [r15+0x18]
- mov rdi, rbx
- mov rax, qword ptr [rbx]
- mov r14, qword ptr [rax+0x40]
- call [r14+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rsi, gword ptr [rbx+0x18]
+ mov rdi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
je SHORT G_M41623_IG05
- mov rax, gword ptr [r15+0x08]
- ;; size=26 bbWeight=0.50 PerfScore 6.25
+ mov rax, gword ptr [rbx+0x08]
+ ;; size=27 bbWeight=0.50 PerfScore 4.38
G_M41623_IG04:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
G_M41623_IG05:
- mov rsi, gword ptr [r15+0x20]
- mov rdi, rbx
- call [r14+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rsi, gword ptr [rbx+0x20]
+ mov rdi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
je SHORT G_M41623_IG07
- mov rax, gword ptr [r15+0x10]
- ;; size=19 bbWeight=0.50 PerfScore 4.25
+ mov rax, gword ptr [rbx+0x10]
+ ;; size=27 bbWeight=0.50 PerfScore 4.38
G_M41623_IG06:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
G_M41623_IG07:
xor rax, rax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M41623_IG08:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 103, prolog size 12, PerfScore 22.75, instruction count 43, allocated bytes for code 103 (MethodHash=04005d68) for method System.Net.Http.HttpEnvironmentProxyCredentials:GetCredential(System.Uri,System.String):System.Net.NetworkCredential:this (FullOpts)
+; Total bytes of code 91, prolog size 9, PerfScore 17.88, instruction count 35, allocated bytes for code 91 (MethodHash=04005d68) for method System.Net.Http.HttpEnvironmentProxyCredentials:GetCredential(System.Uri,System.String):System.Net.NetworkCredential:this (FullOpts) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 23 minutes.
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: