-
Notifications
You must be signed in to change notification settings - Fork 5k
[Perf] Windows/x64: 4 Regressions on 10/27/2024 3:01:56 PM #109347
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
Comments
Current collation
|
For AddGivenSize, inner loops are similar but .NET 9 has better alignment (despite there being a call in the loop). Wonder if that's it... Current mainline offsets are higher because we inline the list ctor, which accesses a shared static field (which is what the blamed PR enables). ;; .NET 9
G_M24367_IG05: ; offs=0x000053, size=0x0023, bbWeight=512.09, gcrefRegs=8008 {rbx r15}, byrefRegs=4000 {r14}, BB05 [0001], BB06 [0010], byref, isz
IN0012: 000053 mov rdx, gword ptr [r14]
; gcrRegs +[rdx]
IN0013: 000056 inc dword ptr [r15+0x14]
IN0014: 00005A mov rdi, gword ptr [r15+0x08]
; gcrRegs +[rdi]
IN0015: 00005E mov esi, dword ptr [r15+0x10]
IN0016: 000062 cmp dword ptr [rdi+0x08], esi
IN0017: 000065 jbe SHORT G_M24367_IG10
IN0018: 000067 lea eax, [rsi+0x01]
IN0019: 00006A mov dword ptr [r15+0x10], eax
IN001a: 00006E movsxd rsi, esi
IN001b: 000071 call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[rdx rdi]
; gcr arg pop 0
;; size=35 bbWeight=512.09 PerfScore 8065.38
G_M24367_IG06: ; offs=0x000076, size=0x0009, bbWeight=512.09, gcrefRegs=8008 {rbx r15}, byrefRegs=4000 {r14}, BB07 [0012], byref, isz
IN001c: 000076 add r14, 8
IN001d: 00007A dec r13d
IN001e: 00007D jne SHORT G_M24367_IG05 versus G_M24367_IG08: ; offs=0x00008F, size=0x0024, bbWeight=514.51, gcrefRegs=8008 {rbx r15}, byrefRegs=4000 {r14}, BB07 [0001], BB08 [0012], byref
IN0020: 00008F mov rdx, gword ptr [r14]
; gcrRegs +[rdx]
IN0021: 000092 inc dword ptr [r15+0x14]
IN0022: 000096 mov rdi, gword ptr [r15+0x08]
; gcrRegs +[rdi]
IN0023: 00009A mov esi, dword ptr [r15+0x10]
IN0024: 00009E cmp dword ptr [rdi+0x08], esi
IN0025: 0000A1 jbe G_M24367_IG18
IN0026: 0000A7 lea eax, [rsi+0x01]
IN0027: 0000AA mov dword ptr [r15+0x10], eax
IN0028: 0000AE call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[rdx rdi]
; gcr arg pop 0
;; size=36 bbWeight=514.51 PerfScore 7974.97
G_M24367_IG09: ; offs=0x0000B3, size=0x0009, bbWeight=514.51, gcrefRegs=8008 {rbx r15}, byrefRegs=4000 {r14}, BB10 [0014], byref, isz
IN0029: 0000B3 add r14, 8
IN002a: 0000B7 dec r13d
IN002b: 0000BA jne SHORT G_M24367_IG08 Let's see if we can easily enable alignment padding for loops with calls... |
Some of these improved with #114191, eg |
Going to close now, given that this is down to one benchmark on only one HW config. |
Run Information
Regressions in System.Collections.ContainsTrue<String>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
System.Collections.ContainsTrue<String>.Stack(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.ContainsTrue<String>.ICollection(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.ContainsTrue<String>.List(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.IterateForEach<String>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
System.Collections.IterateForEach<String>.ImmutableDictionary(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: