MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] [EgorBo] Intrinsify ExchangeObject/CompareExchangeObject for value = null #500

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 15 minutes. https://github.com/dotnet/runtime/pull/104668

Diffs

Found 262 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 41774313
Total bytes of diff: 41774300
Total bytes of delta: -13 (-0.00 % of base)
Total relative delta: 0.05
    diff is an improvement.
    relative diff is a regression.

Top file regressions (bytes):
           6 : System.Private.CoreLib.dasm (0.00 % of base)

Top file improvements (bytes):
         -17 : System.Reflection.Metadata.dasm (-0.00 % of base)
          -2 : System.Diagnostics.DiagnosticSource.dasm (-0.00 % of base)

3 total files with Code Size differences (2 improved, 1 regressed), 256 unchanged.

Top method regressions (bytes):
           2 (7.14 % of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,System.Object,System.Object):System.Object (FullOpts)
           2 (5.41 % of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange[System.__Canon](byref,System.__Canon,System.__Canon):System.__Canon (FullOpts)
           2 (7.14 % of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,System.Object):System.Object (FullOpts)

Top method improvements (bytes):
         -17 (-13.82 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Allocate():System.__Canon:this (FullOpts)
          -2 (-0.65 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.DiagnosticListener:Dispose():this (FullOpts)

Top method regressions (percentages):
           2 (7.14 % of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,System.Object,System.Object):System.Object (FullOpts)
           2 (7.14 % of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,System.Object):System.Object (FullOpts)
           2 (5.41 % of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange[System.__Canon](byref,System.__Canon,System.__Canon):System.__Canon (FullOpts)

Top method improvements (percentages):
         -17 (-13.82 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Allocate():System.__Canon:this (FullOpts)
          -2 (-0.65 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.DiagnosticListener:Dispose():this (FullOpts)

5 total methods with Code Size differences (2 improved, 3 regressed), 255813 unchanged.

--------------------------------------------------------------------------------

Artifacts:

MihuBot commented 1 month ago

Top method regressions

2 (7.14 % of base) - System.Threading.Interlocked:CompareExchange(byref,System.Object,System.Object):System.Object ```diff ; Assembly listing for method System.Threading.Interlocked:CompareExchange(byref,System.Object,System.Object):System.Object (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame -; fully interruptible +; partially interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 4, 4 ) byref -> rdi single-def ; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def ; V02 arg2 [V02,T02] ( 3, 3 ) ref -> rdx class-hnd single-def ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; ; Lcl frame size = 0 G_M1462_IG01: push rbp mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M1462_IG02: test rdi, rdi je SHORT G_M1462_IG04 - ;; size=5 bbWeight=1 PerfScore 1.25 + call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object + nop + ;; size=11 bbWeight=1 PerfScore 2.50 G_M1462_IG03: pop rbp - jmp System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object - ;; size=6 bbWeight=1 PerfScore 2.50 + ret + ;; size=2 bbWeight=1 PerfScore 1.50 G_M1462_IG04: 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 28, prolog size 4, PerfScore 5.00, instruction count 9, allocated bytes for code 28 (MethodHash=d7ddfa49) for method System.Threading.Interlocked:CompareExchange(byref,System.Object,System.Object):System.Object (FullOpts) +; Total bytes of code 30, prolog size 4, PerfScore 5.25, instruction count 11, allocated bytes for code 30 (MethodHash=d7ddfa49) for method System.Threading.Interlocked:CompareExchange(byref,System.Object,System.Object):System.Object (FullOpts) ```
2 (5.41 % of base) - System.Threading.Interlocked:CompareExchange[System.__Canon](byref,System.__Canon,System.__Canon):System.__Canon ```diff ; Assembly listing for method System.Threading.Interlocked:CompareExchange[System.__Canon](byref,System.__Canon,System.__Canon):System.__Canon (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame -; fully interruptible +; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; ;* V00 TypeCtx [V00 ] ( 0, 0 ) long -> zero-ref single-def ; V01 arg0 [V01,T00] ( 4, 4 ) byref -> rsi single-def ; V02 arg1 [V02,T01] ( 3, 3 ) ref -> rdx class-hnd single-def ; V03 arg2 [V03,T02] ( 3, 3 ) ref -> rcx class-hnd single-def ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; ; Lcl frame size = 0 G_M1550_IG01: push rbp mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M1550_IG02: test rsi, rsi je SHORT G_M1550_IG04 mov rdi, rsi mov rsi, rdx mov rdx, rcx - ;; size=14 bbWeight=1 PerfScore 2.00 + call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object + nop + ;; size=20 bbWeight=1 PerfScore 3.25 G_M1550_IG03: pop rbp - jmp System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object - ;; size=6 bbWeight=1 PerfScore 2.50 + ret + ;; size=2 bbWeight=1 PerfScore 1.50 G_M1550_IG04: 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 37, prolog size 4, PerfScore 5.75, instruction count 12, allocated bytes for code 37 (MethodHash=dad3f9f1) for method System.Threading.Interlocked:CompareExchange[System.__Canon](byref,System.__Canon,System.__Canon):System.__Canon (FullOpts) +; Total bytes of code 39, prolog size 4, PerfScore 6.00, instruction count 14, allocated bytes for code 39 (MethodHash=dad3f9f1) for method System.Threading.Interlocked:CompareExchange[System.__Canon](byref,System.__Canon,System.__Canon):System.__Canon (FullOpts) ```
2 (7.14 % of base) - System.Threading.Interlocked:Exchange(byref,System.Object):System.Object ```diff ; Assembly listing for method System.Threading.Interlocked:Exchange(byref,System.Object):System.Object (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame -; fully interruptible +; partially interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 4, 4 ) byref -> rdi single-def ; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; ; Lcl frame size = 0 G_M41059_IG01: push rbp mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M41059_IG02: test rdi, rdi je SHORT G_M41059_IG04 - ;; size=5 bbWeight=1 PerfScore 1.25 + call System.Threading.Interlocked:ExchangeObject(byref,System.Object):System.Object + nop + ;; size=11 bbWeight=1 PerfScore 2.50 G_M41059_IG03: pop rbp - jmp System.Threading.Interlocked:ExchangeObject(byref,System.Object):System.Object - ;; size=6 bbWeight=1 PerfScore 2.50 + ret + ;; size=2 bbWeight=1 PerfScore 1.50 G_M41059_IG04: 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 28, prolog size 4, PerfScore 5.00, instruction count 9, allocated bytes for code 28 (MethodHash=de205f9c) for method System.Threading.Interlocked:Exchange(byref,System.Object):System.Object (FullOpts) +; Total bytes of code 30, prolog size 4, PerfScore 5.25, instruction count 11, allocated bytes for code 30 (MethodHash=de205f9c) for method System.Threading.Interlocked:Exchange(byref,System.Object):System.Object (FullOpts) ```
MihuBot commented 1 month ago

Top method improvements

-17 (-13.82 % of base) - System.Reflection.Internal.ObjectPool`1[System.__Canon]:Allocate():System.__Canon:this ```diff ; Assembly listing for method System.Reflection.Internal.ObjectPool`1[System.__Canon]:Allocate():System.__Canon: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; 2 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T05] ( 4, 3.50) ref -> rbx this class-hnd single-def -; V01 loc0 [V01,T03] ( 4, 8 ) ref -> r15 class-hnd exact single-def -; V02 loc1 [V02,T01] ( 6, 13.50) ref -> r12 class-hnd +; V00 this [V00,T05] ( 4, 3.50) ref -> rdi this class-hnd single-def +; V01 loc0 [V01,T03] ( 4, 8 ) ref -> rcx class-hnd exact single-def +; V02 loc1 [V02,T01] ( 6, 13.50) ref -> [rbp-0x08] class-hnd ;* V03 loc2 [V03,T07] ( 0, 0 ) int -> zero-ref ;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V06 tmp1 [V06,T02] ( 3, 12 ) byref -> rdi "impAppendStmt" +; V06 tmp1 [V06,T02] ( 3, 12 ) byref -> r8 "impAppendStmt" ;* V07 tmp2 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -; V09 cse0 [V09,T04] ( 3, 6 ) int -> r13 "CSE #02: aggressive" -; V10 rat0 [V10,T00] ( 6, 19 ) long -> r14 "Widened IV V03" +; V09 cse0 [V09,T04] ( 3, 6 ) int -> rsi "CSE #02: aggressive" +; V10 rat0 [V10,T00] ( 6, 19 ) long -> rdx "Widened IV V03" ; V11 rat1 [V11,T06] ( 3, 3 ) ref -> rax "delegate invoke call" ; -; Lcl frame size = 8 +; Lcl frame size = 16 G_M30607_IG01: push rbp - push r15 - push r14 - push r13 - push r12 - push rbx - push rax - lea rbp, [rsp+0x30] - mov rbx, rdi - ;; size=19 bbWeight=1 PerfScore 7.75 + sub rsp, 16 + lea rbp, [rsp+0x10] + ;; size=10 bbWeight=1 PerfScore 1.75 G_M30607_IG02: - mov r15, gword ptr [rbx+0x08] - xor r14d, r14d - mov r13d, dword ptr [r15+0x08] - test r13d, r13d + mov rcx, gword ptr [rdi+0x08] + xor edx, edx + mov esi, dword ptr [rcx+0x08] + test esi, esi jle SHORT G_M30607_IG06 - ;; size=16 bbWeight=1 PerfScore 5.50 + align [0 bytes for IG03] + ;; size=13 bbWeight=1 PerfScore 5.50 G_M30607_IG03: - mov r12, gword ptr [r15+8*r14+0x10] - test r12, r12 + mov rax, gword ptr [rcx+8*rdx+0x10] + test rax, rax je SHORT G_M30607_IG05 ;; size=10 bbWeight=4 PerfScore 13.00 G_M30607_IG04: - lea rdi, bword ptr [r15+8*r14+0x10] - test rdi, rdi + lea r8, bword ptr [rcx+8*rdx+0x10] + test r8, r8 je SHORT G_M30607_IG09 - mov rdx, r12 - xor rsi, rsi - call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object - cmp rax, r12 + xor r9, r9 + mov gword ptr [rbp-0x08], rax + lock + cmpxchg gword ptr [r8], r9 + mov r8, gword ptr [rbp-0x08] + cmp rax, r8 je SHORT G_M30607_IG07 - ;; size=25 bbWeight=2 PerfScore 10.00 + ;; size=31 bbWeight=2 PerfScore 47.50 G_M30607_IG05: - inc r14d - cmp r13d, r14d + inc edx + cmp esi, edx jg SHORT G_M30607_IG03 - ;; size=8 bbWeight=4 PerfScore 6.00 + ;; size=6 bbWeight=4 PerfScore 6.00 G_M30607_IG06: - mov rax, gword ptr [rbx+0x10] + mov rax, gword ptr [rdi+0x10] mov rdi, gword ptr [rax+0x08] call [rax+0x18]System.Func`1[System.__Canon]:Invoke():System.__Canon:this - mov r12, rax + mov r8, rax ;; size=14 bbWeight=0.50 PerfScore 3.62 G_M30607_IG07: - mov rax, r12 + mov rax, r8 ;; size=3 bbWeight=1 PerfScore 0.25 G_M30607_IG08: - add rsp, 8 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 + add rsp, 16 pop rbp ret - ;; size=15 bbWeight=1 PerfScore 4.25 + ;; size=6 bbWeight=1 PerfScore 1.75 G_M30607_IG09: 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 123, prolog size 19, PerfScore 50.38, instruction count 44, allocated bytes for code 123 (MethodHash=66d38870) for method System.Reflection.Internal.ObjectPool`1[System.__Canon]:Allocate():System.__Canon:this (FullOpts) +; Total bytes of code 106, prolog size 10, PerfScore 79.38, instruction count 36, allocated bytes for code 106 (MethodHash=66d38870) for method System.Reflection.Internal.ObjectPool`1[System.__Canon]:Allocate():System.__Canon:this (FullOpts) ```
-2 (-0.65 % of base) - System.Diagnostics.DiagnosticListener:Dispose():this ```diff ; Assembly listing for method System.Diagnostics.DiagnosticListener:Dispose():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; 1 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T03] ( 9, 16 ) ref -> rbx this class-hnd single-def -; V01 loc0 [V01,T00] ( 6, 34 ) ref -> rbx class-hnd +; V01 loc0 [V01,T00] ( 6, 34 ) ref -> r15 class-hnd ; V02 loc1 [V02,T06] ( 4, 3 ) ref -> [rbp-0x28] class-hnd exact EH-live spill-single-def ; V03 loc2 [V03 ] ( 5, 5 ) ubyte -> [rbp-0x20] do-not-enreg[X] addr-exposed ld-addr-op ; V04 loc3 [V04,T01] ( 6, 27 ) ref -> r15 class-hnd ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V06 tmp1 [V06,T04] ( 3, 6 ) byref -> rdi single-def "Inlining Arg" +; V06 tmp1 [V06,T04] ( 3, 6 ) byref -> rbx single-def "Inlining Arg" ;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ; V08 PSPSym [V08,T08] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym" ; V09 cse0 [V09,T05] ( 4, 4 ) ref -> r15 "CSE #02: aggressive" ; V10 cse1 [V10,T02] ( 3, 24 ) ref -> r14 "CSE #03: aggressive" ; V11 cse2 [V11,T07] ( 3, 3 ) long -> rdi "CSE #01: aggressive" ; ; Lcl frame size = 24 G_M60962_IG01: push rbp push r15 push r14 push rbx sub rsp, 24 lea rbp, [rsp+0x30] mov qword ptr [rbp-0x30], rsp mov rbx, rdi ;; size=22 bbWeight=1 PerfScore 6.00 G_M60962_IG02: mov rsi, 0xD1FFAB1E ; const ptr mov rdi, gword ptr [rsi] mov gword ptr [rbp-0x28], rdi xor esi, esi mov dword ptr [rbp-0x20], esi ;; size=22 bbWeight=1 PerfScore 4.50 G_M60962_IG03: cmp byte ptr [rbp-0x20], 0 jne SHORT G_M60962_IG09 lea rsi, [rbp-0x20] call System.Threading.Monitor:ReliableEnter(System.Object,byref) cmp byte ptr [rbx+0x20], 0 jne G_M60962_IG14 mov byte ptr [rbx+0x20], 1 mov rdi, 0xD1FFAB1E ; data for System.Diagnostics.DiagnosticListener:s_allListeners mov r15, gword ptr [rdi] cmp r15, rbx jne SHORT G_M60962_IG04 mov rsi, gword ptr [r15+0x18] call CORINFO_HELP_ASSIGN_REF jmp SHORT G_M60962_IG08 align [5 bytes for IG05] ;; size=63 bbWeight=1 PerfScore 18.00 G_M60962_IG04: test r15, r15 je SHORT G_M60962_IG08 ;; size=5 bbWeight=1 PerfScore 1.25 G_M60962_IG05: mov r14, gword ptr [r15+0x18] cmp r14, rbx jne SHORT G_M60962_IG07 ;; size=9 bbWeight=8 PerfScore 26.00 G_M60962_IG06: mov rsi, gword ptr [rbx+0x18] lea rdi, bword ptr [r15+0x18] call CORINFO_HELP_ASSIGN_REF jmp SHORT G_M60962_IG08 ;; size=15 bbWeight=1 PerfScore 5.50 G_M60962_IG07: mov r15, r14 test r15, r15 jne SHORT G_M60962_IG05 ;; size=8 bbWeight=8 PerfScore 12.00 G_M60962_IG08: xor rdi, rdi mov gword ptr [rbx+0x18], rdi jmp SHORT G_M60962_IG10 ;; size=8 bbWeight=1 PerfScore 3.25 G_M60962_IG09: mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException() call [rax]System.Threading.Monitor:ThrowLockTakenException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M60962_IG10: cmp byte ptr [rbp-0x20], 0 je SHORT G_M60962_IG11 mov rdi, gword ptr [rbp-0x28] call System.Threading.Monitor:Exit(System.Object) ;; size=15 bbWeight=1 PerfScore 5.00 G_M60962_IG11: - lea rdi, bword ptr [rbx+0x10] - test rdi, rdi - je SHORT G_M60962_IG16 - xor rsi, rsi - call System.Threading.Interlocked:ExchangeObject(byref,System.Object):System.Object - mov rbx, rax + add rbx, 16 test rbx, rbx + je SHORT G_M60962_IG16 + xor rdi, rdi + mov r15, rdi + xchg gword ptr [rbx], r15 + test r15, r15 je SHORT G_M60962_IG13 - ;; size=24 bbWeight=1 PerfScore 4.50 + ;; size=22 bbWeight=1 PerfScore 23.25 G_M60962_IG12: - mov rdi, gword ptr [rbx+0x08] + mov rdi, gword ptr [r15+0x08] mov r11, 0xD1FFAB1E ; code for System.IObserver`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:OnCompleted():this call [r11]System.IObserver`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:OnCompleted():this - mov rbx, gword ptr [rbx+0x38] - test rbx, rbx + mov r15, gword ptr [r15+0x38] + test r15, r15 jne SHORT G_M60962_IG12 ;; size=26 bbWeight=8 PerfScore 68.00 G_M60962_IG13: add rsp, 24 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=1 PerfScore 3.25 G_M60962_IG14: mov rdi, rsp ;; size=3 bbWeight=1 PerfScore 0.25 G_M60962_IG15: call G_M60962_IG17 jmp SHORT G_M60962_IG13 ;; size=7 bbWeight=1 PerfScore 3.00 G_M60962_IG16: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNullReferenceException() call [rax]System.ThrowHelper:ThrowNullReferenceException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M60962_IG17: push rbp push r15 push r14 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x30] ;; size=18 bbWeight=1 PerfScore 8.50 G_M60962_IG18: cmp byte ptr [rbp-0x20], 0 je SHORT G_M60962_IG19 mov rdi, gword ptr [rbp-0x28] call System.Threading.Monitor:Exit(System.Object) ;; size=15 bbWeight=1 PerfScore 5.00 G_M60962_IG19: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M60962_IG20: add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=1 PerfScore 3.25 -; Total bytes of code 309, prolog size 22, PerfScore 177.50, instruction count 95, allocated bytes for code 309 (MethodHash=266e11dd) for method System.Diagnostics.DiagnosticListener:Dispose():this (FullOpts) +; Total bytes of code 307, prolog size 22, PerfScore 196.25, instruction count 95, allocated bytes for code 307 (MethodHash=266e11dd) for method System.Diagnostics.DiagnosticListener:Dispose():this (FullOpts) ```
MihuBot commented 1 month ago

@EgorBo