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] xtqqczze/dotnet-runtime/take-this #713
Comments
xtqqczze
referenced
this issue
in xtqqczze/dotnet-runtime
Oct 10, 2024
Top method regressions3 (2.80 % of base) - System.Threading.Tasks.Task`1[System.__Canon]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.__Canon]:this ; Assembly listing for method System.Threading.Tasks.Task`1[System.__Canon]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.__Canon]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 4 ) ref -> rbx this class-hnd single-def <System.Threading.Tasks.Task`1[System.__Canon]>
; V01 arg1 [V01,T01] ( 5, 4 ) int -> r15 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.__Canon]>
-;* V04 tmp2 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V03 tmp1 [V03 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.__Canon]>
;* V05 tmp3 [V05 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-;* V06 tmp4 [V06 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[System.__Canon]>
-;* V07 tmp5 [V07 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V08 tmp6 [V08 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V09 tmp7 [V09,T02] ( 2, 2 ) ref -> rax single-def "field V06.m_task (fldOffset=0x0)" P-INDEP
-; V10 tmp8 [V10,T03] ( 2, 2 ) int -> rdx "field V06.m_options (fldOffset=0x8)" P-INDEP
-; V11 tmp9 [V11,T07] ( 2, 0 ) long -> rdi "argument with side effect"
+; V06 tmp4 [V06,T04] ( 3, 2 ) long -> rsi "Inlining Arg"
+;* V07 tmp5 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[System.__Canon]>
+;* V08 tmp6 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V09 tmp7 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+; V10 tmp8 [V10,T05] ( 2, 2 ) ref -> rax single-def "field V07.m_task (fldOffset=0x0)" P-INDEP
+; V11 tmp9 [V11,T06] ( 2, 2 ) int -> rdx "field V07.m_options (fldOffset=0x8)" P-INDEP
;* V12 tmp10 [V12 ] ( 0, 0 ) long -> zero-ref "argument with side effect"
-; V13 rat0 [V13,T04] ( 3, 0 ) long -> rdi "Spilling to split statement for tree"
-; V14 rat1 [V14,T05] ( 3, 0 ) long -> rdi "runtime lookup"
-; V15 rat2 [V15,T06] ( 3, 0 ) long -> rax "fgMakeTemp is creating a new local variable"
+; V13 rat0 [V13,T03] ( 3, 4.40) long -> rdi "Spilling to split statement for tree"
+; V14 rat1 [V14,T02] ( 3, 5.60) long -> rsi "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
G_M34555_IG01:
push rbp
push r15
push rbx
sub rsp, 16
lea rbp, [rsp+0x20]
mov qword ptr [rbp-0x18], rdi
mov rbx, rdi
mov r15d, esi
;; size=23 bbWeight=1 PerfScore 5.25
G_M34555_IG02:
+ mov rdi, qword ptr [rbx]
+ mov rsi, qword ptr [rdi+0x30]
+ mov rsi, qword ptr [rsi]
+ mov rsi, qword ptr [rsi+0x48]
+ test rsi, rsi
+ je SHORT G_M34555_IG04
+ ;; size=19 bbWeight=1 PerfScore 9.25
+G_M34555_IG03:
test r15d, -6
- jne SHORT G_M34555_IG04
- cmp dword ptr [rbx], ebx
+ je SHORT G_M34555_IG05
+ jmp SHORT G_M34555_IG07
+ ;; size=11 bbWeight=1 PerfScore 3.25
+G_M34555_IG04:
+ mov rsi, 0xD1FFAB1E ; global ptr
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ mov rsi, rax
+ jmp SHORT G_M34555_IG03
+ ;; size=20 bbWeight=0.20 PerfScore 0.70
+G_M34555_IG05:
mov rax, rbx
mov edx, r15d
- ;; size=17 bbWeight=1 PerfScore 4.75
-G_M34555_IG03:
+ ;; size=6 bbWeight=1 PerfScore 0.50
+G_M34555_IG06:
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 2.75
-G_M34555_IG04:
- mov rdi, qword ptr [rbx]
- mov rsi, qword ptr [rdi+0x30]
- mov rsi, qword ptr [rsi]
- mov rax, qword ptr [rsi+0x48]
- test rax, rax
- je SHORT G_M34555_IG05
- mov rdi, rax
- jmp SHORT G_M34555_IG06
- ;; size=24 bbWeight=0 PerfScore 0.00
-G_M34555_IG05:
- mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- mov rdi, rax
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M34555_IG06:
- mov esi, r15d
- mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[System.__Canon]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
- call [rax]System.Threading.Tasks.Task`1[System.__Canon]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
+G_M34555_IG07:
+ mov rdi, rsi
+ mov rsi, rbx
+ mov edx, r15d
+ mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[System.__Canon]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
+ call [rax]System.Threading.Tasks.Task`1[System.__Canon]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
int3
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 107, prolog size 17, PerfScore 12.75, instruction count 33, allocated bytes for code 107 (MethodHash=224e7904) for method System.Threading.Tasks.Task`1[System.__Canon]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.__Canon]:this (FullOpts)
+; Total bytes of code 110, prolog size 17, PerfScore 21.70, instruction count 34, allocated bytes for code 110 (MethodHash=224e7904) for method System.Threading.Tasks.Task`1[System.__Canon]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.__Canon]:this (FullOpts)
; ============================================================ |
Top method improvements-2 (-5.71 % of base) - System.Text.UTF8Encoding+UTF8EncodingSealed:GetMaxByteCount(int):int:this ; Assembly listing for method System.Text.UTF8Encoding+UTF8EncodingSealed:GetMaxByteCount(int):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp 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.Text.UTF8Encoding+UTF8EncodingSealed>
+; V00 this [V00,T01] ( 3, 2 ) ref -> rdi this class-hnd single-def <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V01 arg1 [V01,T00] ( 5, 4 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 8
G_M42341_IG01:
push rax
;; size=1 bbWeight=1 PerfScore 1.00
G_M42341_IG02:
cmp esi, 0xD1FFAB1E
ja SHORT G_M42341_IG04
lea eax, [rsi+2*rsi]
add eax, 3
;; size=14 bbWeight=1 PerfScore 2.00
G_M42341_IG03:
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
G_M42341_IG04:
- mov edi, esi
- mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding+UTF8EncodingSealed:<GetMaxByteCount>g__ThrowArgumentException|7_0(int)
- call [rax]System.Text.UTF8Encoding+UTF8EncodingSealed:<GetMaxByteCount>g__ThrowArgumentException|7_0(int)
+ mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding+UTF8EncodingSealed:<GetMaxByteCount>g__ThrowArgumentException|7_0(System.Object,int)
+ call [rax]System.Text.UTF8Encoding+UTF8EncodingSealed:<GetMaxByteCount>g__ThrowArgumentException|7_0(System.Object,int)
int3
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 35, prolog size 1, PerfScore 4.25, instruction count 11, allocated bytes for code 35 (MethodHash=9a745a9a) for method System.Text.UTF8Encoding+UTF8EncodingSealed:GetMaxByteCount(int):int:this (FullOpts)
+; Total bytes of code 33, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 33 (MethodHash=9a745a9a) for method System.Text.UTF8Encoding+UTF8EncodingSealed:GetMaxByteCount(int):int:this (FullOpts)
; ============================================================ -2 (-6.25 % of base) - System.Text.UTF8Encoding+UTF8EncodingSealed:GetMaxCharCount(int):int:this ; Assembly listing for method System.Text.UTF8Encoding+UTF8EncodingSealed:GetMaxCharCount(int):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp 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.Text.UTF8Encoding+UTF8EncodingSealed>
+; V00 this [V00,T01] ( 3, 2 ) ref -> rdi this class-hnd single-def <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V01 arg1 [V01,T00] ( 5, 4 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 8
G_M20535_IG01:
push rax
;; size=1 bbWeight=1 PerfScore 1.00
G_M20535_IG02:
cmp esi, 0xD1FFAB1E
ja SHORT G_M20535_IG04
lea eax, [rsi+0x01]
;; size=11 bbWeight=1 PerfScore 1.75
G_M20535_IG03:
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
G_M20535_IG04:
- mov edi, esi
- mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding+UTF8EncodingSealed:<GetMaxCharCount>g__ThrowArgumentException|8_0(int)
- call [rax]System.Text.UTF8Encoding+UTF8EncodingSealed:<GetMaxCharCount>g__ThrowArgumentException|8_0(int)
+ mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding+UTF8EncodingSealed:<GetMaxCharCount>g__ThrowArgumentException|8_0(System.Object,int)
+ call [rax]System.Text.UTF8Encoding+UTF8EncodingSealed:<GetMaxCharCount>g__ThrowArgumentException|8_0(System.Object,int)
int3
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 32, prolog size 1, PerfScore 4.00, instruction count 10, allocated bytes for code 32 (MethodHash=2357afc8) for method System.Text.UTF8Encoding+UTF8EncodingSealed:GetMaxCharCount(int):int:this (FullOpts)
+; Total bytes of code 30, prolog size 1, PerfScore 4.00, instruction count 9, allocated bytes for code 30 (MethodHash=2357afc8) for method System.Text.UTF8Encoding+UTF8EncodingSealed:GetMaxCharCount(int):int:this (FullOpts)
; ============================================================ -2 (-5.88 % of base) - System.Threading.Tasks.Task`1[double]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[double]:this ; Assembly listing for method System.Threading.Tasks.Task`1[double]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[double]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[double]>
+; V00 this [V00,T01] ( 4, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[double]>
; V01 arg1 [V01,T00] ( 5, 4 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[double]>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[double]>
; V05 tmp3 [V05,T02] ( 2, 2 ) ref -> rax single-def "field V04.m_task (fldOffset=0x0)" P-INDEP
; V06 tmp4 [V06,T03] ( 2, 2 ) int -> rdx "field V04.m_options (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 8
G_M62779_IG01:
push rax
;; size=1 bbWeight=1 PerfScore 1.00
G_M62779_IG02:
test esi, -6
jne SHORT G_M62779_IG04
mov rax, rdi
mov edx, esi
;; size=13 bbWeight=1 PerfScore 1.75
G_M62779_IG03:
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
G_M62779_IG04:
- mov edi, esi
- mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[double]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
- call [rax]System.Threading.Tasks.Task`1[double]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
+ mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[double]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
+ call [rax]System.Threading.Tasks.Task`1[double]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
int3
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 34, prolog size 1, PerfScore 4.00, instruction count 11, allocated bytes for code 34 (MethodHash=0db50ac4) for method System.Threading.Tasks.Task`1[double]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[double]:this (FullOpts)
+; Total bytes of code 32, prolog size 1, PerfScore 4.00, instruction count 10, allocated bytes for code 32 (MethodHash=0db50ac4) for method System.Threading.Tasks.Task`1[double]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[double]:this (FullOpts)
; ============================================================ -2 (-5.88 % of base) - System.Threading.Tasks.Task`1[int]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[int]:this ; Assembly listing for method System.Threading.Tasks.Task`1[int]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[int]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[int]>
+; V00 this [V00,T01] ( 4, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[int]>
; V01 arg1 [V01,T00] ( 5, 4 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[int]>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[int]>
; V05 tmp3 [V05,T02] ( 2, 2 ) ref -> rax single-def "field V04.m_task (fldOffset=0x0)" P-INDEP
; V06 tmp4 [V06,T03] ( 2, 2 ) int -> rdx "field V04.m_options (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 8
G_M4891_IG01:
push rax
;; size=1 bbWeight=1 PerfScore 1.00
G_M4891_IG02:
test esi, -6
jne SHORT G_M4891_IG04
mov rax, rdi
mov edx, esi
;; size=13 bbWeight=1 PerfScore 1.75
G_M4891_IG03:
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
G_M4891_IG04:
- mov edi, esi
- mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[int]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
- call [rax]System.Threading.Tasks.Task`1[int]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
+ mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[int]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
+ call [rax]System.Threading.Tasks.Task`1[int]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
int3
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 34, prolog size 1, PerfScore 4.00, instruction count 11, allocated bytes for code 34 (MethodHash=ed4dece4) for method System.Threading.Tasks.Task`1[int]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[int]:this (FullOpts)
+; Total bytes of code 32, prolog size 1, PerfScore 4.00, instruction count 10, allocated bytes for code 32 (MethodHash=ed4dece4) for method System.Threading.Tasks.Task`1[int]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[int]:this (FullOpts)
; ============================================================ -2 (-5.88 % of base) - System.Threading.Tasks.Task`1[long]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[long]:this ; Assembly listing for method System.Threading.Tasks.Task`1[long]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[long]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[long]>
+; V00 this [V00,T01] ( 4, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[long]>
; V01 arg1 [V01,T00] ( 5, 4 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[long]>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[long]>
; V05 tmp3 [V05,T02] ( 2, 2 ) ref -> rax single-def "field V04.m_task (fldOffset=0x0)" P-INDEP
; V06 tmp4 [V06,T03] ( 2, 2 ) int -> rdx "field V04.m_options (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 8
G_M47739_IG01:
push rax
;; size=1 bbWeight=1 PerfScore 1.00
G_M47739_IG02:
test esi, -6
jne SHORT G_M47739_IG04
mov rax, rdi
mov edx, esi
;; size=13 bbWeight=1 PerfScore 1.75
G_M47739_IG03:
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
G_M47739_IG04:
- mov edi, esi
- mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[long]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
- call [rax]System.Threading.Tasks.Task`1[long]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
+ mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[long]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
+ call [rax]System.Threading.Tasks.Task`1[long]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
int3
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 34, prolog size 1, PerfScore 4.00, instruction count 11, allocated bytes for code 34 (MethodHash=e3bd4584) for method System.Threading.Tasks.Task`1[long]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[long]:this (FullOpts)
+; Total bytes of code 32, prolog size 1, PerfScore 4.00, instruction count 10, allocated bytes for code 32 (MethodHash=e3bd4584) for method System.Threading.Tasks.Task`1[long]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[long]:this (FullOpts)
; ============================================================ -2 (-5.88 % of base) - System.Threading.Tasks.Task`1[short]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[short]:this ; Assembly listing for method System.Threading.Tasks.Task`1[short]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[short]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[short]>
+; V00 this [V00,T01] ( 4, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[short]>
; V01 arg1 [V01,T00] ( 5, 4 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[short]>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[short]>
; V05 tmp3 [V05,T02] ( 2, 2 ) ref -> rax single-def "field V04.m_task (fldOffset=0x0)" P-INDEP
; V06 tmp4 [V06,T03] ( 2, 2 ) int -> rdx "field V04.m_options (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 8
G_M49915_IG01:
push rax
;; size=1 bbWeight=1 PerfScore 1.00
G_M49915_IG02:
test esi, -6
jne SHORT G_M49915_IG04
mov rax, rdi
mov edx, esi
;; size=13 bbWeight=1 PerfScore 1.75
G_M49915_IG03:
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
G_M49915_IG04:
- mov edi, esi
- mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[short]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
- call [rax]System.Threading.Tasks.Task`1[short]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
+ mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[short]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
+ call [rax]System.Threading.Tasks.Task`1[short]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
int3
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 34, prolog size 1, PerfScore 4.00, instruction count 11, allocated bytes for code 34 (MethodHash=6d2b3d04) for method System.Threading.Tasks.Task`1[short]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[short]:this (FullOpts)
+; Total bytes of code 32, prolog size 1, PerfScore 4.00, instruction count 10, allocated bytes for code 32 (MethodHash=6d2b3d04) for method System.Threading.Tasks.Task`1[short]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[short]:this (FullOpts)
; ============================================================ -2 (-5.88 % of base) - System.Threading.Tasks.Task`1[System.Nullable`1[int]]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Nullable`1[int]]:this ; Assembly listing for method System.Threading.Tasks.Task`1[System.Nullable`1[int]]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Nullable`1[int]]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[System.Nullable`1[int]]>
+; V00 this [V00,T01] ( 4, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[System.Nullable`1[int]]>
; V01 arg1 [V01,T00] ( 5, 4 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Nullable`1[int]]>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[System.Nullable`1[int]]>
; V05 tmp3 [V05,T02] ( 2, 2 ) ref -> rax single-def "field V04.m_task (fldOffset=0x0)" P-INDEP
; V06 tmp4 [V06,T03] ( 2, 2 ) int -> rdx "field V04.m_options (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 8
G_M31867_IG01:
push rax
;; size=1 bbWeight=1 PerfScore 1.00
G_M31867_IG02:
test esi, -6
jne SHORT G_M31867_IG04
mov rax, rdi
mov edx, esi
;; size=13 bbWeight=1 PerfScore 1.75
G_M31867_IG03:
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
G_M31867_IG04:
- mov edi, esi
- mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[System.Nullable`1[int]]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
- call [rax]System.Threading.Tasks.Task`1[System.Nullable`1[int]]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
+ mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[System.Nullable`1[int]]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
+ call [rax]System.Threading.Tasks.Task`1[System.Nullable`1[int]]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
int3
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 34, prolog size 1, PerfScore 4.00, instruction count 11, allocated bytes for code 34 (MethodHash=51458384) for method System.Threading.Tasks.Task`1[System.Nullable`1[int]]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Nullable`1[int]]:this (FullOpts)
+; Total bytes of code 32, prolog size 1, PerfScore 4.00, instruction count 10, allocated bytes for code 32 (MethodHash=51458384) for method System.Threading.Tasks.Task`1[System.Nullable`1[int]]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Nullable`1[int]]:this (FullOpts)
; ============================================================ -2 (-5.88 % of base) - System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Numerics.Vector`1[float]]:this ; Assembly listing for method System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Numerics.Vector`1[float]]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]>
+; V00 this [V00,T01] ( 4, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]>
; V01 arg1 [V01,T00] ( 5, 4 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Numerics.Vector`1[float]]>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[System.Numerics.Vector`1[float]]>
; V05 tmp3 [V05,T02] ( 2, 2 ) ref -> rax single-def "field V04.m_task (fldOffset=0x0)" P-INDEP
; V06 tmp4 [V06,T03] ( 2, 2 ) int -> rdx "field V04.m_options (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 8
G_M58011_IG01:
push rax
;; size=1 bbWeight=1 PerfScore 1.00
G_M58011_IG02:
test esi, -6
jne SHORT G_M58011_IG04
mov rax, rdi
mov edx, esi
;; size=13 bbWeight=1 PerfScore 1.75
G_M58011_IG03:
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
G_M58011_IG04:
- mov edi, esi
- mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
- call [rax]System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
+ mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
+ call [rax]System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
int3
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 34, prolog size 1, PerfScore 4.00, instruction count 11, allocated bytes for code 34 (MethodHash=11da1d64) for method System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Numerics.Vector`1[float]]:this (FullOpts)
+; Total bytes of code 32, prolog size 1, PerfScore 4.00, instruction count 10, allocated bytes for code 32 (MethodHash=11da1d64) for method System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[System.Numerics.Vector`1[float]]:this (FullOpts)
; ============================================================ -2 (-5.88 % of base) - System.Threading.Tasks.Task`1[ubyte]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[ubyte]:this ; Assembly listing for method System.Threading.Tasks.Task`1[ubyte]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[ubyte]:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[ubyte]>
+; V00 this [V00,T01] ( 4, 3 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.Task`1[ubyte]>
; V01 arg1 [V01,T00] ( 5, 4 ) int -> rsi single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[ubyte]>
;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[ubyte]>
; V05 tmp3 [V05,T02] ( 2, 2 ) ref -> rax single-def "field V04.m_task (fldOffset=0x0)" P-INDEP
; V06 tmp4 [V06,T03] ( 2, 2 ) int -> rdx "field V04.m_options (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 8
G_M56987_IG01:
push rax
;; size=1 bbWeight=1 PerfScore 1.00
G_M56987_IG02:
test esi, -6
jne SHORT G_M56987_IG04
mov rax, rdi
mov edx, esi
;; size=13 bbWeight=1 PerfScore 1.75
G_M56987_IG03:
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
G_M56987_IG04:
- mov edi, esi
- mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[ubyte]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
- call [rax]System.Threading.Tasks.Task`1[ubyte]:<ConfigureAwait>g__ThrowForInvalidOptions|35_0(int)
+ mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[ubyte]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
+ call [rax]System.Threading.Tasks.Task`1[ubyte]:<ThrowIfInvalidConfigureAwaitOptions>g__ThrowForInvalidOptions|36_0(System.Object,int)
int3
- ;; size=15 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 34, prolog size 1, PerfScore 4.00, instruction count 11, allocated bytes for code 34 (MethodHash=1fe02164) for method System.Threading.Tasks.Task`1[ubyte]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[ubyte]:this (FullOpts)
+; Total bytes of code 32, prolog size 1, PerfScore 4.00, instruction count 10, allocated bytes for code 32 (MethodHash=1fe02164) for method System.Threading.Tasks.Task`1[ubyte]:ConfigureAwait(int):System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1[ubyte]:this (FullOpts)
; ============================================================ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 18 minutes 34 seconds.
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: