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] [stephentoub] Remove class constraint from Interlocked.{Compare}Exchange #490
Comments
Top method regressions43 (6.50 % of base) - System.Net.HttpEndPointListener:RemovePrefix(System.Net.ListenerPrefix):this ; Assembly listing for method System.Net.HttpEndPointListener:RemovePrefix(System.Net.ListenerPrefix):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 13 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 10 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 9, 27 ) ref -> rbx this class-hnd single-def <System.Net.HttpEndPointListener>
+; V00 this [V00,T02] ( 11, 27.50) ref -> rbx this class-hnd single-def <System.Net.HttpEndPointListener>
; V01 arg1 [V01,T07] ( 8, 19.50) ref -> r15 class-hnd single-def <System.Net.ListenerPrefix>
; V02 loc0 [V02,T01] ( 10, 36 ) ref -> r14 class-hnd <System.Collections.Generic.List`1[System.Net.ListenerPrefix]>
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.List`1[System.Net.ListenerPrefix]>
; V04 loc2 [V04,T03] ( 7, 28 ) ref -> r14 class-hnd <System.Collections.Generic.Dictionary`2[System.Net.ListenerPrefix,System.Net.HttpListener]>
; V05 loc3 [V05,T10] ( 3, 12 ) ref -> r13 class-hnd exact <System.Collections.Generic.Dictionary`2[System.Net.ListenerPrefix,System.Net.HttpListener]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T00] ( 4, 32 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[System.Net.ListenerPrefix,System.Net.HttpListener]>
; V08 tmp2 [V08,T11] ( 3, 12 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[System.Net.ListenerPrefix]>
; V09 tmp3 [V09,T08] ( 4, 12 ) ref -> r13
; V10 tmp4 [V10,T12] ( 3, 12 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[System.Net.ListenerPrefix]>
; V11 tmp5 [V11,T13] ( 3, 12 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[System.Net.ListenerPrefix]>
; V12 tmp6 [V12,T09] ( 4, 12 ) ref -> r13
; V13 tmp7 [V13,T14] ( 3, 12 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[System.Net.ListenerPrefix]>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V15 tmp9 [V15,T16] ( 4, 4.75) ref -> rdi single-def "spilling varStr"
;* V16 tmp10 [V16,T19] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
-; V17 tmp11 [V17,T04] ( 3, 24 ) byref -> rdi "Inlining Arg"
-;* V18 tmp12 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V19 tmp13 [V19,T18] ( 4, 2.75) ref -> rdi single-def "spilling varStr"
-;* V20 tmp14 [V20,T20] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
-; V21 tmp15 [V21,T05] ( 3, 24 ) byref -> rdi "Inlining Arg"
-;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref
-;* V23 tmp17 [V23,T17] ( 0, 0 ) ref -> zero-ref
-; V24 tmp18 [V24,T15] ( 2, 8 ) int -> rsi
-; V25 tmp19 [V25,T06] ( 3, 24 ) byref -> rdi "Inlining Arg"
+;* V17 tmp11 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Generic.List`1[System.Net.ListenerPrefix]>
+; V18 tmp12 [V18,T04] ( 3, 24 ) byref -> rdi "Inlining Arg"
+;* V19 tmp13 [V19 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Object>
+;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
+; V21 tmp15 [V21,T18] ( 4, 2.75) ref -> rdi single-def "spilling varStr"
+;* V22 tmp16 [V22,T20] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Generic.List`1[System.Net.ListenerPrefix]>
+; V24 tmp18 [V24,T05] ( 3, 24 ) byref -> rdi "Inlining Arg"
+;* V25 tmp19 [V25 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Object>
+;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref
+;* V27 tmp21 [V27,T17] ( 0, 0 ) ref -> zero-ref
+; V28 tmp22 [V28,T15] ( 2, 8 ) int -> rsi
+;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Generic.Dictionary`2[System.Net.ListenerPrefix,System.Net.HttpListener]>
+; V30 tmp24 [V30,T06] ( 3, 24 ) byref -> rdi "Inlining Arg"
+;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Object>
;
; Lcl frame size = 0
G_M29920_IG01:
push rbp
push r15
push r14
push r13
push rbx
lea rbp, [rsp+0x20]
mov rbx, rdi
mov r15, rsi
;; size=19 bbWeight=1 PerfScore 6.00
G_M29920_IG02:
mov rdi, gword ptr [r15+0x10]
test rdi, rdi
je G_M29920_IG09
;; size=13 bbWeight=1 PerfScore 3.25
G_M29920_IG03:
cmp dword ptr [rdi+0x08], 1
jne SHORT G_M29920_IG09
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M29920_IG04:
cmp word ptr [rdi+0x0C], 42
jne SHORT G_M29920_IG09
;; size=7 bbWeight=0.12 PerfScore 0.50
G_M29920_IG05:
mov r14, gword ptr [rbx+0x30]
test r14, r14
- jne G_M29920_IG19
+ jne G_M29920_IG23
;; size=13 bbWeight=4 PerfScore 13.00
G_M29920_IG06:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Net.ListenerPrefix]
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M29920_IG24
+ je G_M29920_IG28
;; size=37 bbWeight=2 PerfScore 11.50
G_M29920_IG07:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.Net.ListenerPrefix]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
;; size=22 bbWeight=2 PerfScore 7.50
G_M29920_IG08:
mov rdi, r13
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.HttpEndPointListener:RemoveSpecial(System.Collections.Generic.List`1[System.Net.ListenerPrefix],System.Net.ListenerPrefix):ubyte
call [rax]System.Net.HttpEndPointListener:RemoveSpecial(System.Collections.Generic.List`1[System.Net.ListenerPrefix],System.Net.ListenerPrefix):ubyte
test eax, eax
- je G_M29920_IG21
+ je G_M29920_IG25
lea rdi, bword ptr [rbx+0x30]
test rdi, rdi
- jne G_M29920_IG20
- jmp G_M29920_IG25
+ jne G_M29920_IG24
+ jmp G_M29920_IG29
;; size=44 bbWeight=4 PerfScore 35.00
G_M29920_IG09:
mov rdi, gword ptr [r15+0x10]
test rdi, rdi
je G_M29920_IG16
;; size=13 bbWeight=0.50 PerfScore 1.62
G_M29920_IG10:
cmp dword ptr [rdi+0x08], 1
jne SHORT G_M29920_IG16
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M29920_IG11:
cmp word ptr [rdi+0x0C], 43
jne SHORT G_M29920_IG16
;; size=7 bbWeight=0.12 PerfScore 0.50
G_M29920_IG12:
mov r14, gword ptr [rbx+0x38]
test r14, r14
- jne G_M29920_IG17
+ jne G_M29920_IG19
;; size=13 bbWeight=4 PerfScore 13.00
G_M29920_IG13:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Net.ListenerPrefix]
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M29920_IG23
+ je G_M29920_IG27
;; size=37 bbWeight=2 PerfScore 11.50
G_M29920_IG14:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.Net.ListenerPrefix]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
;; size=22 bbWeight=2 PerfScore 7.50
G_M29920_IG15:
mov rdi, r13
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.HttpEndPointListener:RemoveSpecial(System.Collections.Generic.List`1[System.Net.ListenerPrefix],System.Net.ListenerPrefix):ubyte
call [rax]System.Net.HttpEndPointListener:RemoveSpecial(System.Collections.Generic.List`1[System.Net.ListenerPrefix],System.Net.ListenerPrefix):ubyte
test eax, eax
je G_M29920_IG21
lea rdi, bword ptr [rbx+0x38]
test rdi, rdi
- jne G_M29920_IG18
- jmp G_M29920_IG25
+ jne G_M29920_IG20
+ jmp G_M29920_IG29
;; size=44 bbWeight=4 PerfScore 35.00
G_M29920_IG16:
mov r14, gword ptr [rbx+0x28]
cmp byte ptr [r14], r14b
mov rdi, r14
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this
test rax, rax
- je G_M29920_IG21
+ je SHORT G_M29920_IG17
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Dictionary`2[System.Net.ListenerPrefix,System.Net.HttpListener]
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, r14
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:get_Count():int:this
call [r11]System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:get_Count():int:this
mov esi, eax
mov rdi, r13
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this
mov rdi, r13
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this
mov rdi, r13
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this
lea rdi, bword ptr [rbx+0x28]
test rdi, rdi
- je G_M29920_IG25
+ je G_M29920_IG29
mov rsi, r13
mov rdx, r14
call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp rax, r14
jne G_M29920_IG16
- jmp SHORT G_M29920_IG21
- ;; size=158 bbWeight=4 PerfScore 132.00
+ ;; size=152 bbWeight=4 PerfScore 124.00
G_M29920_IG17:
+ mov rdi, rbx
+ mov rax, 0xD1FFAB1E ; code for System.Net.HttpEndPointListener:CheckIfRemove():this
+ call [rax]System.Net.HttpEndPointListener:CheckIfRemove():this
+ nop
+ ;; size=16 bbWeight=0.50 PerfScore 1.88
+G_M29920_IG18:
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
+G_M29920_IG19:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Net.ListenerPrefix]
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, r13
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
jmp G_M29920_IG15
;; size=41 bbWeight=2 PerfScore 14.50
-G_M29920_IG18:
+G_M29920_IG20:
mov rsi, r13
mov rdx, r14
call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp rax, r14
jne G_M29920_IG12
- jmp SHORT G_M29920_IG21
- ;; size=22 bbWeight=4 PerfScore 19.00
-G_M29920_IG19:
+ ;; size=20 bbWeight=4 PerfScore 11.00
+G_M29920_IG21:
+ mov rdi, rbx
+ mov rax, 0xD1FFAB1E ; code for System.Net.HttpEndPointListener:CheckIfRemove():this
+ call [rax]System.Net.HttpEndPointListener:CheckIfRemove():this
+ nop
+ ;; size=16 bbWeight=0.50 PerfScore 1.88
+G_M29920_IG22:
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
+G_M29920_IG23:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Net.ListenerPrefix]
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, r13
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this
jmp G_M29920_IG08
;; size=41 bbWeight=2 PerfScore 14.50
-G_M29920_IG20:
+G_M29920_IG24:
mov rsi, r13
mov rdx, r14
call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp rax, r14
jne G_M29920_IG05
;; size=20 bbWeight=4 PerfScore 11.00
-G_M29920_IG21:
+G_M29920_IG25:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.HttpEndPointListener:CheckIfRemove():this
- ;; size=13 bbWeight=1 PerfScore 0.50
-G_M29920_IG22:
+ call [rax]System.Net.HttpEndPointListener:CheckIfRemove():this
+ nop
+ ;; size=16 bbWeight=0.50 PerfScore 1.88
+G_M29920_IG26:
pop rbx
pop r13
pop r14
pop r15
pop rbp
- tail.jmp [rax]System.Net.HttpEndPointListener:CheckIfRemove():this
- ;; size=11 bbWeight=1 PerfScore 4.50
-G_M29920_IG23:
+ ret
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
+G_M29920_IG27:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Net.ListenerPrefix]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M29920_IG14
;; size=20 bbWeight=0 PerfScore 0.00
-G_M29920_IG24:
+G_M29920_IG28:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Net.ListenerPrefix]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M29920_IG07
;; size=20 bbWeight=0 PerfScore 0.00
-G_M29920_IG25:
+G_M29920_IG29:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNullReferenceException()
call [rax]System.ThrowHelper:ThrowNullReferenceException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 662, prolog size 13, PerfScore 343.88, instruction count 148, allocated bytes for code 662 (MethodHash=217d8b1f) for method System.Net.HttpEndPointListener:RemovePrefix(System.Net.ListenerPrefix):this (FullOpts)
+; Total bytes of code 705, prolog size 13, PerfScore 333.75, instruction count 168, allocated bytes for code 705 (MethodHash=217d8b1f) for method System.Net.HttpEndPointListener:RemovePrefix(System.Net.ListenerPrefix):this (FullOpts) Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/4da2702ce42c7d80eeadf59b6ea89383 |
Top method improvements-488 (-24.28 % of base) - System.Net.Http.HttpConnectionPool:ProcessHttp11RequestQueue(System.Net.Http.HttpConnection):this ; Assembly listing for method System.Net.Http.HttpConnectionPool:ProcessHttp11RequestQueue(System.Net.Http.HttpConnection):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 28 single block inlinees; 27 inlinees without PGO data
+; 0 inlinees with PGO data; 15 single block inlinees; 24 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 14, 67 ) ref -> [rbp-0x40] this class-hnd EH-live single-def <System.Net.Http.HttpConnectionPool>
-; V01 arg1 [V01,T00] ( 42,194 ) ref -> [rbp-0x48] do-not-enreg[Z] ld-addr-op class-hnd EH-live <System.Net.Http.HttpConnection>
-; V02 loc0 [V02,T20] ( 4, 28 ) ref -> rbx ld-addr-op class-hnd <System.Net.Http.HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
-; V03 loc1 [V03,T35] ( 4, 21 ) ref -> [rbp-0x50] do-not-enreg[Z] class-hnd EH-live <System.Collections.Concurrent.ConcurrentStack`1[System.Net.Http.HttpConnection]>
+; V01 arg1 [V01,T00] ( 26,190 ) ref -> [rbp-0x48] do-not-enreg[Z] ld-addr-op class-hnd EH-live <System.Net.Http.HttpConnection>
+; V02 loc0 [V02,T18] ( 4, 28 ) ref -> rbx ld-addr-op class-hnd <System.Net.Http.HttpConnectionWaiter`1[System.Net.Http.HttpConnection]>
+; V03 loc1 [V03,T28] ( 4, 21 ) ref -> [rbp-0x50] do-not-enreg[Z] class-hnd EH-live <System.Collections.Concurrent.ConcurrentStack`1[System.Net.Http.HttpConnection]>
; V04 loc2 [V04 ] ( 5, 33 ) ubyte -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op
-; V05 OutArgs [V05 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref
-; V08 tmp3 [V08,T41] ( 3, 16 ) int -> rax
+; V08 tmp3 [V08,T34] ( 3, 16 ) int -> rax
;* V09 tmp4 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V10 tmp5 [V10,T39] ( 2, 8 ) ubyte -> rdi "Inline return value spill temp"
+; V10 tmp5 [V10,T32] ( 2, 8 ) ubyte -> rdi "Inline return value spill temp"
; V11 tmp6 [V11,T11] ( 4, 32 ) ref -> r15 class-hnd "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1[System.Net.Http.HttpConnection]>
-; V12 tmp7 [V12,T21] ( 6, 24 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
-; V13 tmp8 [V13,T24] ( 3, 24 ) byref -> rsi "Inlining Arg"
-; V14 tmp9 [V14,T43] ( 2, 16 ) ref -> rdx class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]>
-; V15 tmp10 [V15,T54] ( 3, 12 ) ubyte -> rdi "Inline return value spill temp"
-; V16 tmp11 [V16 ] ( 3, 12 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
-;* V17 tmp12 [V17,T65] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
-;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V20 tmp15 [V20,T01] ( 11, 88 ) byref -> r15 "Inlining Arg"
-;* V21 tmp16 [V21 ] ( 0, 0 ) struct (16) zero-ref "location for address-of(RValue)" <System.Net.Http.RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
-; V22 tmp17 [V22,T55] ( 3, 12 ) int -> rdi "Inline stloc first use temp"
-; V23 tmp18 [V23,T25] ( 3, 24 ) ref -> rax class-hnd exact "dup spill" <System.Net.Http.RequestQueue`1+QueueItem[System.__Canon][]>
-;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.Net.Http.RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
-; V25 tmp20 [V25,T26] ( 3, 24 ) byref -> rdi "Inlining Arg"
-; V26 tmp21 [V26,T40] ( 4, 16 ) int -> rax "Inline stloc first use temp"
-; V27 tmp22 [V27,T18] ( 2, 32 ) byref -> rax "Inlining Arg"
-;* V28 tmp23 [V28,T64] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V29 tmp24 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
-; V30 tmp25 [V30,T37] ( 4, 16 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
-; V31 tmp26 [V31,T12] ( 4, 32 ) byref -> r15 "Inlining Arg"
-; V32 tmp27 [V32,T38] ( 4, 16 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Object>
-; V33 tmp28 [V33,T48] ( 3, 12 ) ref -> rsi class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
-;* V34 tmp29 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
-; V35 tmp30 [V35,T49] ( 3, 12 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
-; V36 tmp31 [V36,T09] ( 5, 40 ) int -> r13 ld-addr-op "Inlining Arg"
-;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V38 tmp33 [V38,T13] ( 4, 32 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
-;* V39 tmp34 [V39 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
-;* V40 tmp35 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V43 tmp38 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
-; V44 tmp39 [V44,T03] ( 8, 64 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
-;* V45 tmp40 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
-; V46 tmp41 [V46,T08] ( 5, 40 ) ref -> rbx class-hnd "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1[System.Net.Http.HttpConnection]>
-; V47 tmp42 [V47,T27] ( 3, 24 ) byref -> rdi "Inlining Arg"
-; V48 tmp43 [V48,T44] ( 2, 16 ) ref -> r14 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]>
-;* V49 tmp44 [V49,T45] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V50 tmp45 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
-; V51 tmp46 [V51,T36] ( 4, 20 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
-; V52 tmp47 [V52,T06] ( 4, 48 ) byref -> r13 "Inlining Arg"
-; V53 tmp48 [V53,T23] ( 4, 24 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
-; V54 tmp49 [V54,T50] ( 3, 12 ) ref -> rsi class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
-;* V55 tmp50 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
-; V56 tmp51 [V56,T51] ( 3, 12 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
-; V57 tmp52 [V57,T10] ( 5, 40 ) int -> r15 ld-addr-op "Inlining Arg"
-;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V59 tmp54 [V59,T14] ( 4, 32 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
-;* V60 tmp55 [V60 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
-;* V61 tmp56 [V61 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V63 tmp58 [V63 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V64 tmp59 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
-;* V65 tmp60 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V66 tmp61 [V66,T28] ( 3, 24 ) ref -> rdi class-hnd exact "dup spill" <System.Net.Http.HttpConnectionPool>
-; V67 tmp62 [V67,T61] ( 2, 8 ) ref -> r15
-;* V68 tmp63 [V68 ] ( 0, 0 ) ref -> zero-ref
-;* V69 tmp64 [V69 ] ( 0, 0 ) ref -> zero-ref
-; V70 tmp65 [V70,T56] ( 3, 12 ) int -> r14
-; V71 tmp66 [V71,T15] ( 4, 32 ) ref -> rdi class-hnd "dup spill" <System.Net.Http.HttpRequestMessage>
-; V72 tmp67 [V72,T46] ( 2, 16 ) int -> rbx "impAppendStmt"
-;* V73 tmp68 [V73 ] ( 0, 0 ) ref -> zero-ref
-;* V74 tmp69 [V74 ] ( 0, 0 ) int -> zero-ref
-;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref
-;* V76 tmp71 [V76 ] ( 0, 0 ) ref -> zero-ref
-;* V77 tmp72 [V77 ] ( 0, 0 ) ref -> zero-ref
-;* V78 tmp73 [V78 ] ( 0, 0 ) int -> zero-ref
-;* V79 tmp74 [V79 ] ( 0, 0 ) int -> zero-ref
-; V80 tmp75 [V80,T57] ( 3, 12 ) int -> r8
-;* V81 tmp76 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.IO.Stream>
-;* V82 tmp77 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
-;* V83 tmp78 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V84 tmp79 [V84,T29] ( 3, 24 ) ref -> rax class-hnd exact "dup spill" <System.Net.Http.HttpConnectionPool>
-; V85 tmp80 [V85,T62] ( 2, 8 ) ref -> r15
-;* V86 tmp81 [V86 ] ( 0, 0 ) ref -> zero-ref
-;* V87 tmp82 [V87 ] ( 0, 0 ) ref -> zero-ref
-; V88 tmp83 [V88,T58] ( 3, 12 ) int -> r14
-; V89 tmp84 [V89,T16] ( 4, 32 ) ref -> rdi class-hnd "dup spill" <System.Net.Http.HttpRequestMessage>
-; V90 tmp85 [V90,T47] ( 2, 16 ) int -> rbx "impAppendStmt"
-;* V91 tmp86 [V91 ] ( 0, 0 ) ref -> zero-ref
-;* V92 tmp87 [V92 ] ( 0, 0 ) int -> zero-ref
-;* V93 tmp88 [V93 ] ( 0, 0 ) int -> zero-ref
-;* V94 tmp89 [V94 ] ( 0, 0 ) ref -> zero-ref
-;* V95 tmp90 [V95 ] ( 0, 0 ) ref -> zero-ref
-;* V96 tmp91 [V96 ] ( 0, 0 ) int -> zero-ref
-;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref
-; V98 tmp93 [V98,T59] ( 3, 12 ) int -> r8
-;* V99 tmp94 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.IO.Stream>
-; V100 tmp95 [V100,T17] ( 2, 16 ) ubyte -> rdi "Inline return value spill temp"
-; V101 tmp96 [V101,T04] ( 4, 64 ) ref -> rbx class-hnd "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1[System.Net.Http.HttpConnection]>
-; V102 tmp97 [V102,T05] ( 6, 48 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
-; V103 tmp98 [V103,T07] ( 3, 48 ) byref -> rsi "Inlining Arg"
-; V104 tmp99 [V104,T19] ( 2, 32 ) ref -> rdx class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]>
-; V105 tmp100 [V105,T42] ( 3, 16 ) ubyte -> rdi "Inline return value spill temp"
-; V106 tmp101 [V106 ] ( 3, 20 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
-;* V107 tmp102 [V107 ] ( 0, 0 ) ref -> zero-ref "field V21.Request (fldOffset=0x0)" P-INDEP
-;* V108 tmp103 [V108 ] ( 0, 0 ) ref -> zero-ref "field V21.Waiter (fldOffset=0x8)" P-INDEP
-;* V109 tmp104 [V109 ] ( 0, 0 ) ref -> zero-ref "field V24.Request (fldOffset=0x0)" P-INDEP
-; V110 tmp105 [V110,T63] ( 2, 8 ) ref -> rbx "field V24.Waiter (fldOffset=0x8)" P-INDEP
-;* V111 tmp106 [V111 ] ( 0, 0 ) ref -> zero-ref "field V40._source (fldOffset=0x0)" P-INDEP
-;* V112 tmp107 [V112 ] ( 0, 0 ) ref -> zero-ref "field V61._source (fldOffset=0x0)" P-INDEP
-; V113 tmp108 [V113,T30] ( 3, 24 ) byref -> rax "BlockOp address local"
-; V114 tmp109 [V114,T31] ( 3, 24 ) ref -> rdi "arr expr"
-; V115 tmp110 [V115,T32] ( 3, 24 ) ref -> rsi "arr expr"
-; V116 tmp111 [V116,T33] ( 3, 24 ) ref -> rdi "argument with side effect"
-; V117 tmp112 [V117,T34] ( 3, 24 ) ref -> rdi "argument with side effect"
-; V118 PSPSym [V118,T66] ( 1, 1 ) long -> [rbp-0x58] do-not-enreg[V] "PSPSym"
-; V119 cse0 [V119,T52] ( 3, 12 ) byref -> rdi "CSE #04: conservative"
-; V120 cse1 [V120,T22] ( 6, 24 ) ref -> r15 multi-def "CSE #16: conservative"
-; V121 cse2 [V121,T60] ( 3, 12 ) int -> rdi "CSE #05: conservative"
-; V122 cse3 [V122,T53] ( 3, 12 ) ref -> r14 "CSE #08: conservative"
+; V12 tmp7 [V12,T19] ( 6, 24 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
+;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
+; V14 tmp9 [V14,T21] ( 3, 24 ) byref -> rsi "Inlining Arg"
+; V15 tmp10 [V15,T36] ( 2, 16 ) ref -> rdx class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]>
+;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Object>
+; V17 tmp12 [V17,T45] ( 3, 12 ) ubyte -> rdi "Inline return value spill temp"
+; V18 tmp13 [V18 ] ( 3, 12 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
+;* V19 tmp14 [V19,T50] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
+;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V22 tmp17 [V22,T01] ( 11, 88 ) byref -> r15 "Inlining Arg"
+;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref "location for address-of(RValue)" <System.Net.Http.RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
+; V24 tmp19 [V24,T46] ( 3, 12 ) int -> rdi "Inline stloc first use temp"
+; V25 tmp20 [V25,T22] ( 3, 24 ) ref -> rax class-hnd exact "dup spill" <System.Net.Http.RequestQueue`1+QueueItem[System.__Canon][]>
+;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.Net.Http.RequestQueue`1+QueueItem[System.Net.Http.HttpConnection]>
+; V27 tmp22 [V27,T23] ( 3, 24 ) byref -> rdi "Inlining Arg"
+; V28 tmp23 [V28,T33] ( 4, 16 ) int -> rax "Inline stloc first use temp"
+; V29 tmp24 [V29,T16] ( 2, 32 ) byref -> rax "Inlining Arg"
+;* V30 tmp25 [V30,T49] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V31 tmp26 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
+; V32 tmp27 [V32,T30] ( 4, 16 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
+; V33 tmp28 [V33,T12] ( 4, 32 ) byref -> r15 "Inlining Arg"
+; V34 tmp29 [V34,T31] ( 4, 16 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Object>
+; V35 tmp30 [V35,T39] ( 3, 12 ) ref -> rsi class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
+;* V36 tmp31 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
+; V37 tmp32 [V37,T40] ( 3, 12 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
+; V38 tmp33 [V38,T09] ( 5, 40 ) int -> r13 ld-addr-op "Inlining Arg"
+;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V40 tmp35 [V40,T13] ( 4, 32 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
+;* V41 tmp36 [V41 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
+;* V42 tmp37 [V42 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
+;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V44 tmp39 [V44 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V45 tmp40 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
+; V46 tmp41 [V46,T03] ( 8, 64 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
+;* V47 tmp42 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
+; V48 tmp43 [V48,T08] ( 5, 40 ) ref -> rbx class-hnd "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1[System.Net.Http.HttpConnection]>
+;* V49 tmp44 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
+; V50 tmp45 [V50,T24] ( 3, 24 ) byref -> rdi "Inlining Arg"
+; V51 tmp46 [V51,T37] ( 2, 16 ) ref -> r14 class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]>
+;* V52 tmp47 [V52 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Object>
+;* V53 tmp48 [V53,T38] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V54 tmp49 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
+; V55 tmp50 [V55,T29] ( 4, 20 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
+; V56 tmp51 [V56,T06] ( 4, 48 ) byref -> r13 "Inlining Arg"
+; V57 tmp52 [V57,T20] ( 4, 24 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V58 tmp53 [V58,T41] ( 3, 12 ) ref -> rsi class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
+;* V59 tmp54 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
+; V60 tmp55 [V60,T42] ( 3, 12 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[int]>
+; V61 tmp56 [V61,T10] ( 5, 40 ) int -> r15 ld-addr-op "Inlining Arg"
+;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V63 tmp58 [V63,T14] ( 4, 32 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
+;* V64 tmp59 [V64 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
+;* V65 tmp60 [V65 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
+;* V66 tmp61 [V66 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V68 tmp63 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
+;* V69 tmp64 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpConnection>
+; V70 tmp65 [V70,T15] ( 2, 16 ) ubyte -> rdi "Inline return value spill temp"
+; V71 tmp66 [V71,T04] ( 4, 64 ) ref -> r15 class-hnd "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1[System.Net.Http.HttpConnection]>
+; V72 tmp67 [V72,T05] ( 6, 48 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
+;* V73 tmp68 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
+; V74 tmp69 [V74,T07] ( 3, 48 ) byref -> rsi "Inlining Arg"
+; V75 tmp70 [V75,T17] ( 2, 32 ) ref -> rdx class-hnd exact "Inlining Arg" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]>
+;* V76 tmp71 [V76 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Object>
+; V77 tmp72 [V77,T35] ( 3, 16 ) ubyte -> rdi "Inline return value spill temp"
+; V78 tmp73 [V78 ] ( 3, 20 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]>
+;* V79 tmp74 [V79 ] ( 0, 0 ) ref -> zero-ref "field V23.Request (fldOffset=0x0)" P-INDEP
+;* V80 tmp75 [V80 ] ( 0, 0 ) ref -> zero-ref "field V23.Waiter (fldOffset=0x8)" P-INDEP
+;* V81 tmp76 [V81 ] ( 0, 0 ) ref -> zero-ref "field V26.Request (fldOffset=0x0)" P-INDEP
+; V82 tmp77 [V82,T48] ( 2, 8 ) ref -> rbx "field V26.Waiter (fldOffset=0x8)" P-INDEP
+;* V83 tmp78 [V83 ] ( 0, 0 ) ref -> zero-ref "field V42._source (fldOffset=0x0)" P-INDEP
+;* V84 tmp79 [V84 ] ( 0, 0 ) ref -> zero-ref "field V65._source (fldOffset=0x0)" P-INDEP
+; V85 tmp80 [V85,T25] ( 3, 24 ) byref -> rax "BlockOp address local"
+; V86 tmp81 [V86,T26] ( 3, 24 ) ref -> rdi "arr expr"
+; V87 tmp82 [V87,T27] ( 3, 24 ) ref -> rsi "arr expr"
+; V88 PSPSym [V88,T51] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym"
+; V89 cse0 [V89,T43] ( 3, 12 ) byref -> rdi "CSE #04: conservative"
+; V90 cse1 [V90,T47] ( 3, 12 ) int -> rdi "CSE #05: conservative"
+; V91 cse2 [V91,T44] ( 3, 12 ) ref -> r14 "CSE #08: conservative"
;
; Lcl frame size = 64
G_M18482_IG01:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 64
lea rbp, [rsp+0x60]
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x38], rax
- mov qword ptr [rbp-0x58], rsp
+ mov qword ptr [rbp-0x60], rsp
mov gword ptr [rbp-0x40], rdi
mov gword ptr [rbp-0x48], rsi
;; size=39 bbWeight=8 PerfScore 88.00
G_M18482_IG02:
mov rdi, gword ptr [rbp-0x40]
xor rbx, rbx
mov rsi, gword ptr [rdi+0x58]
mov gword ptr [rbp-0x50], rsi
xor esi, esi
mov dword ptr [rbp-0x28], esi
;; size=19 bbWeight=8 PerfScore 44.00
G_M18482_IG03:
cmp byte ptr [rbp-0x28], 0
jne G_M18482_IG28
lea rsi, [rbp-0x28]
mov rdi, gword ptr [rbp-0x50]
call System.Threading.Monitor:ReliableEnter(System.Object,byref)
mov rdi, gword ptr [rbp-0x40]
cmp dword ptr [rdi+0xE8], 0
je G_M18482_IG12
;; size=40 bbWeight=8 PerfScore 84.00
G_M18482_IG04:
cmp gword ptr [rbp-0x48], 0
jne SHORT G_M18482_IG05
mov r15, gword ptr [rdi+0x58]
mov r14, gword ptr [r15+0x08]
test r14, r14
je G_M18482_IG12
lea rsi, bword ptr [r15+0x08]
mov rdx, gword ptr [r14+0x10]
test rsi, rsi
je G_M18482_IG27
mov rdi, rsi
mov rsi, rdx
mov rdx, r14
call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp rax, r14
jne SHORT G_M18482_IG06
mov rdx, gword ptr [r14+0x08]
mov gword ptr [rbp-0x48], rdx
;; size=68 bbWeight=4 PerfScore 72.00
G_M18482_IG05:
mov rdi, gword ptr [rbp-0x40]
mov rdx, gword ptr [rbp-0x48]
cmp dword ptr [rdx+0x6C], 0
je SHORT G_M18482_IG09
mov rdx, gword ptr [rbp-0x48]
add rdx, 108
mov esi, 2
xchg dword ptr [rdx], esi
cmp esi, 1
- jne G_M18482_IG41
+ jne G_M18482_IG40
jmp SHORT G_M18482_IG09
;; size=40 bbWeight=4 PerfScore 123.00
G_M18482_IG06:
lea rdx, [rbp-0x30]
mov rdi, r15
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPopCore(int,byref):int:this
call [rax]System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPopCore(int,byref):int:this
cmp eax, 1
jne SHORT G_M18482_IG07
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rdi+0x08]
mov gword ptr [rbp-0x48], rdi
mov edi, 1
jmp SHORT G_M18482_IG08
;; size=48 bbWeight=4 PerfScore 47.00
G_M18482_IG07:
xor edi, edi
;; size=2 bbWeight=4 PerfScore 1.00
G_M18482_IG08:
xor rdx, rdx
mov gword ptr [rbp-0x30], rdx
test edi, edi
je G_M18482_IG12
jmp SHORT G_M18482_IG05
;; size=16 bbWeight=4 PerfScore 18.00
G_M18482_IG09:
lea r15, bword ptr [rdi+0xD8]
mov rdi, r15
mov rdx, gword ptr [rbp-0x40]
mov rsi, 0xD1FFAB1E ; System.Net.Http.RequestQueue`1[System.Net.Http.HttpConnection]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this
call [rax]System.Net.Http.RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this
cmp dword ptr [r15+0x10], 0
je SHORT G_M18482_IG12
mov edi, dword ptr [r15+0x08]
mov rax, gword ptr [r15]
cmp edi, dword ptr [rax+0x08]
jae G_M18482_IG29
shl rdi, 4
lea rdi, bword ptr [rax+rdi+0x10]
mov rax, rdi
cmp dword ptr [rax], eax
mov rbx, gword ptr [rax+0x08]
xor eax, eax
mov qword ptr [rdi], rax
mov qword ptr [rdi+0x08], rax
lea rdi, bword ptr [r15+0x08]
mov eax, dword ptr [rdi]
inc eax
mov rcx, gword ptr [r15]
cmp dword ptr [rcx+0x08], eax
jne SHORT G_M18482_IG10
xor eax, eax
;; size=104 bbWeight=4 PerfScore 141.00
G_M18482_IG10:
mov dword ptr [rdi], eax
mov edi, dword ptr [r15+0x14]
test edi, edi
jle SHORT G_M18482_IG11
dec edi
mov dword ptr [r15+0x14], edi
;; size=16 bbWeight=4 PerfScore 22.00
G_M18482_IG11:
dec dword ptr [r15+0x10]
;; size=4 bbWeight=4 PerfScore 12.00
G_M18482_IG12:
mov rdi, gword ptr [rbp-0x40]
lea rax, bword ptr [rdi+0xD8]
cmp dword ptr [rax+0x10], 0
jne SHORT G_M18482_IG14
;; size=17 bbWeight=8 PerfScore 44.00
G_M18482_IG13:
cmp byte ptr [rdi+0xCE], 0
sete al
movzx rax, al
jmp SHORT G_M18482_IG15
;; size=15 bbWeight=4 PerfScore 25.00
G_M18482_IG14:
xor eax, eax
;; size=2 bbWeight=4 PerfScore 1.00
G_M18482_IG15:
mov byte ptr [rdi+0xCF], al
test rbx, rbx
jne G_M18482_IG30
;; size=15 bbWeight=8 PerfScore 18.00
G_M18482_IG16:
cmp gword ptr [rbp-0x48], 0
je SHORT G_M18482_IG18
mov rax, gword ptr [rbp-0x48]
cmp dword ptr [rax+0x6C], 0
je SHORT G_M18482_IG17
mov rax, gword ptr [rbp-0x48]
add rax, 108
mov ecx, 1
xchg dword ptr [rax], ecx
cmp ecx, 2
jne SHORT G_M18482_IG19
;; size=37 bbWeight=4 PerfScore 123.00
G_M18482_IG17:
mov rbx, gword ptr [rdi+0x58]
cmp byte ptr [rbx], bl
mov rdi, 0xD1FFAB1E ; System.Collections.Concurrent.ConcurrentStack`1+Node[System.Net.Http.HttpConnection]
call CORINFO_HELP_NEWSFAST
mov r15, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, gword ptr [rbp-0x48]
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
mov gword ptr [r15+0x10], rdi
mov r14, gword ptr [rbx+0x08]
lea rdi, bword ptr [r15+0x10]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [rbx+0x08]
test rdi, rdi
jne G_M18482_IG25
jmp G_M18482_IG27
;; size=77 bbWeight=4 PerfScore 71.00
G_M18482_IG18:
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnectionPool:CheckForHttp11ConnectionInjection():this
call [rax]System.Net.Http.HttpConnectionPool:CheckForHttp11ConnectionInjection():this
- jmp G_M18482_IG65
+ jmp G_M18482_IG51
;; size=17 bbWeight=4 PerfScore 21.00
G_M18482_IG19:
mov r15, gword ptr [rbp-0x48]
add r15, 152
mov r14, gword ptr [r15]
test r14, r14
jne SHORT G_M18482_IG22
mov r13d, dword ptr [r15+0x08]
lea esi, [r13+0x01]
cmp esi, 10
jae G_M18482_IG24
mov rsi, 0xD1FFAB1E ; global ptr
test byte ptr [rsi], 1
je G_M18482_IG26
;; size=55 bbWeight=4 PerfScore 50.00
G_M18482_IG20:
mov rsi, 0xD1FFAB1E ; data for System.Threading.Tasks.TaskCache:s_int32Tasks
mov rsi, gword ptr [rsi]
lea eax, [r13+0x01]
cmp eax, dword ptr [rsi+0x08]
jae G_M18482_IG29
inc r13d
mov eax, r13d
mov rsi, gword ptr [rsi+8*rax+0x10]
;; size=37 bbWeight=4 PerfScore 37.00
G_M18482_IG21:
mov rdi, gword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnectionBase:LogExceptions(System.Threading.Tasks.Task):this
call [rax]System.Net.Http.HttpConnectionBase:LogExceptions(System.Threading.Tasks.Task):this
mov rdi, gword ptr [rbp-0x40]
- jmp G_M18482_IG41
+ jmp G_M18482_IG40
;; size=25 bbWeight=4 PerfScore 29.00
G_M18482_IG22:
mov rsi, r14
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
je SHORT G_M18482_IG23
jmp SHORT G_M18482_IG21
;; size=35 bbWeight=4 PerfScore 29.00
G_M18482_IG23:
mov rdi, r15
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.ValueTask`1[int]:GetTaskForValueTaskSource(System.Threading.Tasks.Sources.IValueTaskSource`1[int]):System.Threading.Tasks.Task`1[int]:this
call [rax]System.Threading.Tasks.ValueTask`1[int]:GetTaskForValueTaskSource(System.Threading.Tasks.Sources.IValueTaskSource`1[int]):System.Threading.Tasks.Task`1[int]:this
mov rsi, rax
jmp SHORT G_M18482_IG21
;; size=23 bbWeight=4 PerfScore 24.00
G_M18482_IG24:
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
call CORINFO_HELP_NEWSFAST
mov rsi, rax
mov dword ptr [rsi+0x34], 0xD1FFAB1E
mov dword ptr [rsi+0x38], r13d
mov rdi, gword ptr [rbp-0x40]
jmp SHORT G_M18482_IG21
;; size=35 bbWeight=4 PerfScore 26.00
G_M18482_IG25:
mov rsi, r15
mov rdx, r14
call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
cmp rax, gword ptr [r15+0x10]
- je G_M18482_IG65
+ je G_M18482_IG51
mov rdi, rbx
mov rsi, r15
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:PushCore(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]):this
call [rax]System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:PushCore(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon]):this
- jmp G_M18482_IG65
+ jmp G_M18482_IG51
;; size=47 bbWeight=4 PerfScore 46.00
G_M18482_IG26:
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.TaskCache
call CORINFO_HELP_GET_GCSTATIC_BASE
mov rdi, gword ptr [rbp-0x40]
jmp G_M18482_IG20
;; size=24 bbWeight=0 PerfScore 0.00
G_M18482_IG27:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNullReferenceException()
call [rax]System.ThrowHelper:ThrowNullReferenceException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M18482_IG28:
mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
call [rax]System.Threading.Monitor:ThrowLockTakenException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M18482_IG29:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
G_M18482_IG30:
cmp byte ptr [rbp-0x28], 0
je SHORT G_M18482_IG32
;; size=6 bbWeight=8 PerfScore 24.00
G_M18482_IG31:
mov rdi, gword ptr [rbp-0x50]
call System.Threading.Monitor:Exit(System.Object)
;; size=9 bbWeight=4 PerfScore 8.00
G_M18482_IG32:
mov rdi, rbx
mov rsi, gword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnectionWaiter`1[System.__Canon]:TrySignal(System.__Canon):ubyte:this
call [rax]System.Net.Http.HttpConnectionWaiter`1[System.__Canon]:TrySignal(System.__Canon):ubyte:this
test eax, eax
- jne G_M18482_IG53
+ jne G_M18482_IG45
mov rdi, gword ptr [rbp-0x48]
cmp dword ptr [rdi+0x6C], 0
je G_M18482_IG02
mov rdi, gword ptr [rbp-0x48]
add rdi, 108
mov esi, 1
xchg dword ptr [rdi], esi
cmp esi, 2
je G_M18482_IG02
mov r13, gword ptr [rbp-0x48]
add r13, 152
mov rbx, gword ptr [r13]
test rbx, rbx
- jne G_M18482_IG38
+ jne G_M18482_IG37
;; size=89 bbWeight=8 PerfScore 304.00
G_M18482_IG33:
mov r15d, dword ptr [r13+0x08]
lea edi, [r15+0x01]
cmp edi, 10
- jae G_M18482_IG40
+ jae G_M18482_IG39
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M18482_IG67
+ je G_M18482_IG53
;; size=36 bbWeight=4 PerfScore 32.00
G_M18482_IG34:
mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.TaskCache:s_int32Tasks
mov rdi, gword ptr [rdi]
lea esi, [r15+0x01]
cmp esi, dword ptr [rdi+0x08]
- jae G_M18482_IG69
+ jae G_M18482_IG55
inc r15d
mov esi, r15d
mov rsi, gword ptr [rdi+8*rsi+0x10]
;; size=37 bbWeight=4 PerfScore 37.00
G_M18482_IG35:
mov rdi, gword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnectionBase:LogExceptions(System.Threading.Tasks.Task):this
call [rax]System.Net.Http.HttpConnectionBase:LogExceptions(System.Threading.Tasks.Task):this
;; size=16 bbWeight=8 PerfScore 34.00
G_M18482_IG36:
- mov rsi, gword ptr [rbp-0x48]
- add rsi, 116
- mov edi, 1
- xchg dword ptr [rsi], edi
- cmp edi, 1
- je G_M18482_IG49
- ;; size=24 bbWeight=8 PerfScore 182.00
+ mov rdi, gword ptr [rbp-0x48]
+ cmp byte ptr [rdi], dil
+ mov rdi, gword ptr [rbp-0x48]
+ mov esi, 1
+ mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnection:Dispose(ubyte):this
+ call [rax]System.Net.Http.HttpConnection:Dispose(ubyte):this
+ xor rsi, rsi
+ mov gword ptr [rbp-0x48], rsi
+ jmp G_M18482_IG02
+ ;; size=39 bbWeight=8 PerfScore 94.00
G_M18482_IG37:
- mov rsi, 0xD1FFAB1E ; const ptr
- mov r15, gword ptr [rsi]
- cmp byte ptr [r15+0x9D], 0
- je G_M18482_IG47
- mov rsi, gword ptr [rbp-0x48]
- mov rdi, gword ptr [rsi+0x08]
- test rdi, rdi
- jne SHORT G_M18482_IG43
- xor r14d, r14d
- jmp G_M18482_IG44
- ;; size=48 bbWeight=4 PerfScore 51.00
-G_M18482_IG38:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
- je SHORT G_M18482_IG39
+ je SHORT G_M18482_IG38
jmp SHORT G_M18482_IG35
;; size=35 bbWeight=4 PerfScore 29.00
-G_M18482_IG39:
+G_M18482_IG38:
mov rdi, r13
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.ValueTask`1[int]:GetTaskForValueTaskSource(System.Threading.Tasks.Sources.IValueTaskSource`1[int]):System.Threading.Tasks.Task`1[int]:this
call [rax]System.Threading.Tasks.ValueTask`1[int]:GetTaskForValueTaskSource(System.Threading.Tasks.Sources.IValueTaskSource`1[int]):System.Threading.Tasks.Task`1[int]:this
mov rsi, rax
- jmp G_M18482_IG35
- ;; size=26 bbWeight=4 PerfScore 24.00
-G_M18482_IG40:
+ jmp SHORT G_M18482_IG35
+ ;; size=23 bbWeight=4 PerfScore 24.00
+G_M18482_IG39:
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
call CORINFO_HELP_NEWSFAST
mov rsi, rax
mov dword ptr [rsi+0x34], 0xD1FFAB1E
mov dword ptr [rsi+0x38], r15d
jmp G_M18482_IG35
;; size=34 bbWeight=4 PerfScore 22.00
-G_M18482_IG41:
+G_M18482_IG40:
mov rdi, rsp
;; size=3 bbWeight=4 PerfScore 1.00
-G_M18482_IG42:
- call G_M18482_IG70
+G_M18482_IG41:
+ call G_M18482_IG56
jmp G_M18482_IG36
;; size=10 bbWeight=4 PerfScore 12.00
-G_M18482_IG43:
- mov rax, 0xD1FFAB1E
- mov rax, qword ptr [rax]
- call [rax+0x18]System.Object:GetHashCode():int:this
- mov r14d, eax
- ;; size=19 bbWeight=4 PerfScore 22.00
-G_M18482_IG44:
- mov rdi, gword ptr [rbp-0x48]
- call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
- mov ebx, eax
- mov rdi, gword ptr [rbp-0x48]
- mov rdi, gword ptr [rdi+0x60]
- test rdi, rdi
- jne SHORT G_M18482_IG45
- xor r8d, r8d
- jmp SHORT G_M18482_IG46
- ;; size=29 bbWeight=4 PerfScore 35.00
-G_M18482_IG45:
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x18]System.Object:GetHashCode():int:this
- mov r8d, eax
- ;; size=13 bbWeight=4 PerfScore 29.00
-G_M18482_IG46:
- mov rdi, 0xD1FFAB1E ; 'Connection closing.'
- mov gword ptr [rsp], rdi
- mov rdi, r15
- mov edx, r14d
- mov ecx, ebx
- mov esi, 8
- mov r9, 0xD1FFAB1E ; 'Dispose'
- mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:WriteEvent(int,int,int,int,System.String,System.String):this
- call [rax]System.Net.NetEventSource:WriteEvent(int,int,int,int,System.String,System.String):this
- ;; size=49 bbWeight=4 PerfScore 23.00
-G_M18482_IG47:
- mov rdi, gword ptr [rbp-0x48]
- mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnectionBase:MarkConnectionAsClosed():this
- call [rax]System.Net.Http.HttpConnectionBase:MarkConnectionAsClosed():this
- mov rdi, gword ptr [rbp-0x48]
- cmp byte ptr [rdi+0x79], 0
- jne SHORT G_M18482_IG48
- mov rdi, gword ptr [rbp-0x48]
- mov rdi, gword ptr [rdi+0x08]
- mov rsi, gword ptr [rbp-0x48]
- mov edx, 1
- mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnectionPool:InvalidateHttp11Connection(System.Net.Http.HttpConnection,ubyte):this
- cmp dword ptr [rdi], edi
- call [rax]System.Net.Http.HttpConnectionPool:InvalidateHttp11Connection(System.Net.Http.HttpConnection,ubyte):this
- ;; size=57 bbWeight=4 PerfScore 79.00
-G_M18482_IG48:
- mov rdi, gword ptr [rbp-0x48]
- call System.GC:_SuppressFinalize(System.Object)
- mov rdi, gword ptr [rbp-0x48]
- mov rdi, gword ptr [rdi+0x50]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x50]
- call [rax+0x18]System.IO.Stream:Close():this
- ;; size=27 bbWeight=4 PerfScore 48.00
-G_M18482_IG49:
- xor rdi, rdi
- mov gword ptr [rbp-0x48], rdi
- jmp G_M18482_IG02
- ;; size=11 bbWeight=8 PerfScore 26.00
-G_M18482_IG50:
+G_M18482_IG42:
mov rdi, gword ptr [rbp-0x40]
cmp byte ptr [rdi+0xCE], 0
- je SHORT G_M18482_IG53
- jmp SHORT G_M18482_IG52
+ je SHORT G_M18482_IG45
+ jmp SHORT G_M18482_IG44
;; size=15 bbWeight=1 PerfScore 7.00
-G_M18482_IG51:
+G_M18482_IG43:
mov rdi, gword ptr [rbp-0x48]
- call System.GC:_SuppressFinalize(System.Object)
+ cmp byte ptr [rdi], dil
mov rdi, gword ptr [rbp-0x48]
- mov rdi, gword ptr [rdi+0x50]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x50]
- call [rax+0x18]System.IO.Stream:Close():this
+ mov esi, 1
+ mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnection:Dispose(ubyte):this
+ call [rax]System.Net.Http.HttpConnection:Dispose(ubyte):this
mov rdi, gword ptr [rbp-0x40]
- ;; size=31 bbWeight=4 PerfScore 52.00
-G_M18482_IG52:
- mov rbx, gword ptr [rdi+0x58]
- mov r15, gword ptr [rbx+0x08]
- test r15, r15
- jne SHORT G_M18482_IG54
+ ;; size=32 bbWeight=32 PerfScore 304.00
+G_M18482_IG44:
+ mov r15, gword ptr [rdi+0x58]
+ mov rbx, gword ptr [r15+0x08]
+ test rbx, rbx
+ jne SHORT G_M18482_IG46
;; size=13 bbWeight=8 PerfScore 42.00
-G_M18482_IG53:
+G_M18482_IG45:
add rsp, 64
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=1 PerfScore 3.75
-G_M18482_IG54:
- lea rsi, bword ptr [rbx+0x08]
- mov rdx, gword ptr [r15+0x10]
+G_M18482_IG46:
+ lea rsi, bword ptr [r15+0x08]
+ mov rdx, gword ptr [rbx+0x10]
test rsi, rsi
- je G_M18482_IG68
+ je G_M18482_IG54
mov rdi, rsi
mov rsi, rdx
- mov rdx, r15
+ mov rdx, rbx
call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object
- cmp rax, r15
- jne SHORT G_M18482_IG56
- mov rdx, gword ptr [r15+0x08]
- mov gword ptr [rbp-0x48], rdx
- ;; size=44 bbWeight=8 PerfScore 78.00
-G_M18482_IG55:
- mov rdx, gword ptr [rbp-0x48]
- add rdx, 116
- mov edi, 1
- xchg dword ptr [rdx], edi
- cmp edi, 1
- mov rdi, gword ptr [rbp-0x40]
- je SHORT G_M18482_IG52
- mov rdx, 0xD1FFAB1E ; const ptr
- mov r15, gword ptr [rdx]
- cmp byte ptr [r15+0x9D], 0
- je G_M18482_IG64
- mov rdx, gword ptr [rbp-0x48]
- mov rax, gword ptr [rdx+0x08]
- test rax, rax
- jne SHORT G_M18482_IG60
- xor r14d, r14d
- jmp SHORT G_M18482_IG61
- ;; size=69 bbWeight=4 PerfScore 146.00
-G_M18482_IG56:
+ cmp rax, rbx
+ jne SHORT G_M18482_IG47
+ mov rdi, gword ptr [rbx+0x08]
+ mov gword ptr [rbp-0x48], rdi
+ jmp SHORT G_M18482_IG43
+ ;; size=46 bbWeight=8 PerfScore 94.00
+G_M18482_IG47:
lea rdx, [rbp-0x38]
- mov rdi, rbx
+ mov rdi, r15
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPopCore(int,byref):int:this
call [rax]System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPopCore(int,byref):int:this
cmp eax, 1
- jne SHORT G_M18482_IG58
+ jne SHORT G_M18482_IG49
;; size=29 bbWeight=8 PerfScore 44.00
-G_M18482_IG57:
+G_M18482_IG48:
mov rdi, gword ptr [rbp-0x38]
mov rdi, gword ptr [rdi+0x08]
mov gword ptr [rbp-0x48], rdi
mov edi, 1
- jmp SHORT G_M18482_IG59
+ jmp SHORT G_M18482_IG50
;; size=19 bbWeight=4 PerfScore 25.00
-G_M18482_IG58:
+G_M18482_IG49:
xor rdi, rdi
mov gword ptr [rbp-0x48], rdi
;; size=6 bbWeight=4 PerfScore 5.00
-G_M18482_IG59:
+G_M18482_IG50:
xor rax, rax
mov gword ptr [rbp-0x38], rax
test edi, edi
- jne G_M18482_IG55
- jmp G_M18482_IG53
+ jne G_M18482_IG43
+ jmp G_M18482_IG45
;; size=19 bbWeight=8 PerfScore 36.00
-G_M18482_IG60:
- mov rdi, rax
- mov rax, 0xD1FFAB1E
- mov rax, qword ptr [rax]
- call [rax+0x18]System.Object:GetHashCode():int:this
- mov r14d, eax
- ;; size=22 bbWeight=4 PerfScore 23.00
-G_M18482_IG61:
- mov rdi, gword ptr [rbp-0x48]
- call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
- mov ebx, eax
- mov rdi, gword ptr [rbp-0x48]
- mov rdi, gword ptr [rdi+0x60]
- test rdi, rdi
- jne SHORT G_M18482_IG62
- xor r8d, r8d
- jmp SHORT G_M18482_IG63
- ;; size=29 bbWeight=4 PerfScore 35.00
-G_M18482_IG62:
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x18]System.Object:GetHashCode():int:this
- mov r8d, eax
- ;; size=13 bbWeight=4 PerfScore 29.00
-G_M18482_IG63:
- mov rdi, 0xD1FFAB1E ; 'Connection closing.'
- mov gword ptr [rsp], rdi
- mov rdi, r15
- mov edx, r14d
- mov ecx, ebx
- mov esi, 8
- mov r9, 0xD1FFAB1E ; 'Dispose'
- mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:WriteEvent(int,int,int,int,System.String,System.String):this
- call [rax]System.Net.NetEventSource:WriteEvent(int,int,int,int,System.String,System.String):this
- ;; size=49 bbWeight=4 PerfScore 23.00
-G_M18482_IG64:
- mov rdi, gword ptr [rbp-0x48]
- mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnectionBase:MarkConnectionAsClosed():this
- call [rax]System.Net.Http.HttpConnectionBase:MarkConnectionAsClosed():this
- mov rdi, gword ptr [rbp-0x48]
- cmp byte ptr [rdi+0x79], 0
- jne G_M18482_IG51
- mov rdi, gword ptr [rbp-0x48]
- mov rdi, gword ptr [rdi+0x08]
- mov rsi, gword ptr [rbp-0x48]
- mov edx, 1
- mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpConnectionPool:InvalidateHttp11Connection(System.Net.Http.HttpConnection,ubyte):this
- cmp dword ptr [rdi], edi
- call [rax]System.Net.Http.HttpConnectionPool:InvalidateHttp11Connection(System.Net.Http.HttpConnection,ubyte):this
- jmp G_M18482_IG51
- ;; size=66 bbWeight=4 PerfScore 87.00
-G_M18482_IG65:
+G_M18482_IG51:
mov rdi, rsp
;; size=3 bbWeight=1 PerfScore 0.25
-G_M18482_IG66:
- call G_M18482_IG70
- jmp G_M18482_IG50
+G_M18482_IG52:
+ call G_M18482_IG56
+ jmp G_M18482_IG42
;; size=10 bbWeight=1 PerfScore 3.00
-G_M18482_IG67:
+G_M18482_IG53:
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.TaskCache
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M18482_IG34
;; size=20 bbWeight=0 PerfScore 0.00
-G_M18482_IG68:
+G_M18482_IG54:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNullReferenceException()
call [rax]System.ThrowHelper:ThrowNullReferenceException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M18482_IG69:
+G_M18482_IG55:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M18482_IG70:
+G_M18482_IG56:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 16
- mov rbp, qword ptr [rdi+0x08]
- mov qword ptr [rsp+0x08], rbp
+ mov rbp, qword ptr [rdi]
+ mov qword ptr [rsp], rbp
lea rbp, [rbp+0x60]
- ;; size=25 bbWeight=1 PerfScore 8.75
-G_M18482_IG71:
+ ;; size=23 bbWeight=1 PerfScore 8.75
+G_M18482_IG57:
cmp byte ptr [rbp-0x28], 0
- je SHORT G_M18482_IG72
+ je SHORT G_M18482_IG58
mov rdi, gword ptr [rbp-0x50]
call System.Threading.Monitor:Exit(System.Object)
;; size=15 bbWeight=1 PerfScore 5.00
-G_M18482_IG72:
+G_M18482_IG58:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M18482_IG73:
+G_M18482_IG59:
add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=1 PerfScore 3.75
-; Total bytes of code 2010, prolog size 39, PerfScore 2874.75, instruction count 495, allocated bytes for code 2010 (MethodHash=1b96b7cd) for method System.Net.Http.HttpConnectionPool:ProcessHttp11RequestQueue(System.Net.Http.HttpConnection):this (FullOpts)
+; Total bytes of code 1522, prolog size 39, PerfScore 2398.75, instruction count 381, allocated bytes for code 1522 (MethodHash=1b96b7cd) for method System.Net.Http.HttpConnectionPool:ProcessHttp11RequestQueue(System.Net.Http.HttpConnection):this (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/79408d118907563fc696c4e97592b45f |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 14 minutes.
dotnet/runtime#104558
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: