-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Regression in System.Drawing.Tests.Perf_Color #58443
Comments
Tagging subscribers to this area: @safern, @tarekgh Issue DetailsRun Information
Regressions in System.Drawing.Tests.Perf_Color
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Drawing.Tests.Perf_Color*' PayloadsHistogramSystem.Drawing.Tests.Perf_Color.GetHue
DocsProfiling workflow for dotnet/runtime repository
|
Possibly from #57094. @SingleAccretion |
Skimming the code, hard to see how where it comes from, nevertheless, I will take a look. Note that I may not have as much free time going forward, so it'll take a bit. I presume that's ok since this is a 7.0-specific regression. |
This is windows/x86 specific...can you double check using SPMI if there are asmdiffs from your change on windows/x86? |
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsRun Information
Regressions in System.Drawing.Tests.Perf_Color
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Drawing.Tests.Perf_Color*' PayloadsHistogramSystem.Drawing.Tests.Perf_Color.GetHue
DocsProfiling workflow for dotnet/runtime repository
|
Looking at all commits, and nothing related to System.Drawing. Changed the label to codegen as the commits there mainly related to codegen. |
So, as expected, no SPMI diffs for my change. I can reproduce the regression locally, yet the codegen (for now obtained via BDN) is identical. |
Are you able to reproduce regression with vs. without your change? |
Yes, that was how it was originally, but higher |
I double checked and I don't see any asm difference in benchmark. Also, it seems historically there are spikes in the test. From code alignment perspective the loop inside benchmark method Unrelated to this regression, but we should rearrange the code such that the entire loop code is present contiguous. It looks to me that the new blocks are added by LSRA resolution phase. ;; bbWeight=1 PerfScore 5.50
G_M63925_IG02: ;; offset=000CH
0ac704cc C5F857C0 vxorps xmm0, xmm0
0ac704d0 C5FA1145F0 vmovss dword ptr [ebp-10H], xmm0
0ac704d5 8B35F4329407 mov esi, gword ptr [classVar[0xac355b4]]
0ac704db 33FF xor edi, edi
0ac704dd 8B5E04 mov ebx, dword ptr [esi+4]
; ............................... 32B boundary ...............................
0ac704e0 85DB test ebx, ebx
0ac704e2 7E3B jle SHORT G_M63925_IG07
;; bbWeight=1 PerfScore 5.33
G_M63925_IG03: ;; offset=0024H
0ac704e4 8BCF mov ecx, edi
0ac704e6 C1E104 shl ecx, 4
0ac704e9 8D4C0E08 lea ecx, bword ptr [esi+ecx+8]
0ac704ed E876B44FFE call System.Drawing.Color:GetHue():float:this
0ac704f2 D95DEC fstp dword ptr [ebp-14H]
0ac704f5 C5FA1045EC vmovss xmm0, dword ptr [ebp-14H]
0ac704fa C5FA5845F0 vaddss xmm0, xmm0, dword ptr [ebp-10H]
0ac704ff 47 inc edi
; ............................... 32B boundary ...............................
0ac70500 3BDF cmp ebx, edi
0ac70502 7F11 jg SHORT G_M63925_IG06
;; bbWeight=4 PerfScore 47.00
G_M63925_IG04: ;; offset=0044H
0ac70504 C5FA1145F0 vmovss dword ptr [ebp-10H], xmm0
0ac70509 D945F0 fld dword ptr [ebp-10H]
;; bbWeight=1 PerfScore 1.00
G_M63925_IG05: ;; offset=004CH
0ac7050c 8D65F4 lea esp, [ebp-0CH]
0ac7050f 5B pop ebx
0ac70510 5E pop esi
0ac70511 5F pop edi
0ac70512 5D pop ebp
0ac70513 C3 ret
;; bbWeight=1 PerfScore 3.50
G_M63925_IG06: ;; offset=0054H
0ac70514 C5FA1145F0 vmovss dword ptr [ebp-10H], xmm0
0ac70519 EBC9 jmp SHORT G_M63925_IG03
;; bbWeight=2 PerfScore 5.00
G_M63925_IG07: ;; offset=005BH
0ac7051b C5FA1045F0 vmovss xmm0, dword ptr [ebp-10H]
; ............................... 32B boundary ...............................
0ac70520 EBE2 jmp SHORT G_M63925_IG04
;; bbWeight=0.50 PerfScore 2.00 |
As such, I will go ahead and close this issue as there is nothing actionable. |
Run Information
Regressions in System.Drawing.Tests.Perf_Color
Historical Data in Reporting System
Repro
Payloads
Baseline
Compare
Histogram
System.Drawing.Tests.Perf_Color.GetHue
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: