MihuBot / runtime-utils

0 stars 0 forks source link

[X64] MihaZupan/runtime/main #322

Open MihuBot opened 5 months ago

MihuBot commented 5 months ago

Build completed in 24 minutes. https://github.com/MihaZupan/runtime/tree/main

Diffs

Found 261 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39209355
Total bytes of diff: 39209400
Total bytes of delta: 45 (0.00 % of base)
Total relative delta: 0.11
    diff is a regression.
    relative diff is a regression.

Top file regressions (bytes):
          45 : Microsoft.Extensions.Diagnostics.dasm (0.24 % of base)

1 total files with Code Size differences (0 improved, 1 regressed), 255 unchanged.

Top method regressions (bytes):
          45 (10.90 % of base) : Microsoft.Extensions.Diagnostics.dasm - Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():this (FullOpts)

Top method regressions (percentages):
          45 (10.90 % of base) : Microsoft.Extensions.Diagnostics.dasm - Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():this (FullOpts)

1 total methods with Code Size differences (0 improved, 1 regressed), 239711 unchanged.

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

Artifacts:

MihuBot commented 5 months ago

Top method regressions

45 (10.90 % of base) - Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():this ```diff ; Assembly listing for method Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():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; 12 single block inlinees; 8 inlinees without PGO data +; 0 inlinees with PGO data; 11 single block inlinees; 9 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T02] ( 5, 5 ) ref -> [rbp-0x28] this class-hnd single-def +; V00 this [V00,T02] ( 5, 5 ) ref -> rbx this class-hnd single-def ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T01] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" -; V03 tmp2 [V03,T03] ( 3, 6 ) ref -> [rbp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" -;* V04 tmp3 [V04,T08] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg" -;* V05 tmp4 [V05,T10] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -;* V06 tmp5 [V06,T09] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg" -;* V07 tmp6 [V07,T11] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -; V08 tmp7 [V08,T00] ( 7, 14 ) ref -> [rbp-0x38] class-hnd exact spill-single-def "NewObj constructor temp" -; V09 tmp8 [V09,T04] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" -; V10 tmp9 [V10,T05] ( 3, 6 ) ref -> [rbp-0x40] class-hnd exact spill-single-def "impAppendStmt" -; V11 tmp10 [V11,T07] ( 2, 4 ) long -> rax "impAppendStmt" +; V03 tmp2 [V03,T04] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" +;* V04 tmp3 [V04,T13] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg" +;* V05 tmp4 [V05,T15] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" +;* V06 tmp5 [V06,T14] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg" +;* V07 tmp6 [V07,T16] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" +; V08 tmp7 [V08,T00] ( 7, 14 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" +; V09 tmp8 [V09,T05] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +; V10 tmp9 [V10,T06] ( 3, 6 ) ref -> r15 class-hnd exact single-def "impAppendStmt" +;* V11 tmp10 [V11 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" ;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -;* V13 tmp12 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" -;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" -; V15 tmp14 [V15,T06] ( 3, 6 ) long -> rdx "index expr" -;* V16 cse0 [V16,T12] ( 0, 0 ) long -> zero-ref "CSE #01: moderate" +; V13 tmp12 [V13,T12] ( 3, 2 ) int -> rax "Inline return value spill temp" +; V14 tmp13 [V14,T03] ( 4, 7 ) int -> r12 "dup spill" +;* V15 tmp14 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V16 tmp15 [V16 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" +;* V17 tmp16 [V17 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" +; V18 tmp17 [V18,T07] ( 3, 6 ) long -> rdx "index expr" +;* V19 cse0 [V19,T17] ( 0, 0 ) long -> zero-ref "CSE #02: moderate" +; V20 cse1 [V20,T11] ( 3, 3 ) long -> rax "CSE #01: moderate" +; V21 rat0 [V21,T10] ( 3, 4 ) long -> rax "TLS field access" +; V22 rat1 [V22,T08] ( 3, 6 ) long -> rax "TLS access" +; V23 rat2 [V23,T09] ( 3, 6 ) long -> rax "ThreadStaticBlockBase access" ; -; Lcl frame size = 32 +; Lcl frame size = 8 G_M37176_IG01: push rbp push r15 push r14 push r13 + push r12 push rbx - sub rsp, 32 - vzeroupper - lea rbp, [rsp+0x40] + push rax + lea rbp, [rsp+0x30] mov rbx, rdi - ;; size=23 bbWeight=1 PerfScore 7.00 + ;; size=19 bbWeight=1 PerfScore 7.75 G_M37176_IG02: mov rdi, 0xD1FFAB1E ; System.Threading.TimerCallback call CORINFO_HELP_NEWSFAST mov r15, rax test rbx, rbx - je G_M37176_IG07 + je G_M37176_IG10 lea rdi, bword ptr [r15+0x08] - mov gword ptr [rbp-0x28], rbx mov rsi, rbx call CORINFO_HELP_ASSIGN_REF mov rdi, 0xD1FFAB1E ; code for Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:OnTimer(System.Object):this mov qword ptr [r15+0x18], rdi mov rdi, 0xD1FFAB1E ; System.Threading.Timer call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x30], rax + mov r14, rax mov rdi, 0xD1FFAB1E ; System.Threading.TimerQueueTimer call CORINFO_HELP_NEWSFAST mov r13, rax - mov gword ptr [rbp-0x38], r13 lea rdi, bword ptr [r13+0x20] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF xor rax, rax mov gword ptr [r13+0x28], rax mov qword ptr [r13+0x48], -1 mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext lea rdi, bword ptr [r13+0x30] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - mov rax, 0xD1FFAB1E ; global ptr - test byte ptr [rax], 1 - je G_M37176_IG08 - ;; size=167 bbWeight=1 PerfScore 24.75 + mov rdi, 0xD1FFAB1E ; global ptr + test byte ptr [rdi], 1 + je G_M37176_IG11 + ;; size=158 bbWeight=1 PerfScore 22.00 G_M37176_IG03: - mov rax, 0xD1FFAB1E ; data for System.Threading.TimerQueue:k__BackingField - mov r15, gword ptr [rax] - mov gword ptr [rbp-0x40], r15 + mov rdi, 0xD1FFAB1E ; data for System.Threading.TimerQueue:k__BackingField + mov r15, gword ptr [rdi] + mov rdi, 0xD1FFAB1E mov rax, 0xD1FFAB1E ; function address - ;; size=27 bbWeight=1 PerfScore 3.50 + call rax + cmp dword ptr [rax], 2 + jl G_M37176_IG12 + mov rax, qword ptr [rax+0x08] + mov rax, qword ptr [rax+0x10] + test rax, rax + je G_M37176_IG12 + ;; size=61 bbWeight=1 PerfScore 15.00 G_M37176_IG04: - call rax ; Interop+Sys:SchedGetCpu():int + mov r12d, dword ptr [rax+0x0A34] + lea ecx, [r12-0x01] + mov dword ptr [rax+0x0A34], ecx + movzx rax, r12w + test eax, eax + jne SHORT G_M37176_IG06 + ;; size=26 bbWeight=1 PerfScore 5.00 +G_M37176_IG05: + mov rax, 0xD1FFAB1E ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int + call [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int + jmp SHORT G_M37176_IG07 + ;; size=14 bbWeight=0.50 PerfScore 2.62 +G_M37176_IG06: + mov eax, r12d + sar eax, 16 + ;; size=6 bbWeight=0.50 PerfScore 0.38 +G_M37176_IG07: mov eax, eax mov rdx, 0xD1FFAB1E ; data for System.Threading.TimerQueue:k__BackingField mov rdx, gword ptr [rdx] mov edi, dword ptr [rdx+0x08] - cqo - idiv rdx:rax, rdi - mov r15, gword ptr [rbp-0x40] + xor edx, edx + div rdx:rax, rdi mov edi, dword ptr [r15+0x08] cmp rdx, rdi - jae SHORT G_M37176_IG06 + jae SHORT G_M37176_IG09 mov rsi, gword ptr [r15+8*rdx+0x10] - mov r13, gword ptr [rbp-0x38] lea rdi, bword ptr [r13+0x08] call CORINFO_HELP_ASSIGN_REF mov rdi, 0xD1FFAB1E ; System.Threading.TimerHolder call CORINFO_HELP_NEWFAST - mov rbx, rax - lea rdi, bword ptr [rbx+0x08] + mov r15, rax + lea rdi, bword ptr [r15+0x08] mov rsi, r13 call CORINFO_HELP_ASSIGN_REF - mov r14, gword ptr [rbp-0x30] lea rdi, bword ptr [r14+0x08] - mov rsi, rbx + mov rsi, r15 call CORINFO_HELP_ASSIGN_REF - mov rbx, gword ptr [rbp-0x28] lea rdi, bword ptr [rbx+0x08] mov rsi, r14 call CORINFO_HELP_ASSIGN_REF - mov rax, 0xD1FFAB1E ; global ptr - cmp dword ptr [rax], 0 - jne SHORT G_M37176_IG09 - ;; size=133 bbWeight=1 PerfScore 97.75 -G_M37176_IG05: - add rsp, 32 + nop + ;; size=101 bbWeight=1 PerfScore 79.50 +G_M37176_IG08: + add rsp, 8 pop rbx + pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=13 bbWeight=1 PerfScore 3.75 -G_M37176_IG06: + ;; size=15 bbWeight=1 PerfScore 4.25 +G_M37176_IG09: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 -G_M37176_IG07: +G_M37176_IG10: mov rax, 0xD1FFAB1E ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance() call [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M37176_IG08: +G_M37176_IG11: mov rdi, 0xD1FFAB1E mov esi, 940 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE jmp G_M37176_IG03 ;; size=25 bbWeight=0 PerfScore 0.00 -G_M37176_IG09: - call CORINFO_HELP_POLL_GC - jmp SHORT G_M37176_IG05 - ;; size=7 bbWeight=0 PerfScore 0.00 +G_M37176_IG12: + mov edi, 2 + call CORINFO_HELP_GETSHARED_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED + jmp G_M37176_IG04 + ;; size=15 bbWeight=0 PerfScore 0.00 -; Total bytes of code 413, prolog size 20, PerfScore 136.75, instruction count 94, allocated bytes for code 413 (MethodHash=cb6b6ec7) for method Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():this (FullOpts) +; Total bytes of code 458, prolog size 16, PerfScore 136.50, instruction count 105, allocated bytes for code 458 (MethodHash=cb6b6ec7) for method Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():this (FullOpts) ```
MihuBot commented 5 months ago

@MihaZupan