The patch gives out the details of the znver2 scheduler model.
Rome is second generation zen family processor.
There are few improvements with respect to execution units, latencies and throughput when compared with znver1.
The tests that were present for znver1 for llvm-mca tool were replicated. The latencies, execution units, timeline and throughput information are updated for znver2.
I am working on another patch focusing on the information as mandated by exegesis.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
llvm/lib/Target/X86/X86ScheduleZnver2.td | ||
---|---|---|
107 ↗ | (On Diff #214628) | Indent. |
350 ↗ | (On Diff #214628) | Commented out? |
605 ↗ | (On Diff #214628) | Can this "definitely wrong" thing be fixed? |
628 ↗ | (On Diff #214628) | Here, and below, some of these are commented out. Why? Can/should these just be removed? |
1194 ↗ | (On Diff #214628) | Commented out? |
The changes for review comments are incorporated.
The latency information in CLZERO, VZEROUPPER, MUL instructions are updated.
Updated for review comments and latency modifications for MUL, vzeroupper, CLZERO instructions.
llvm/lib/Target/X86/X86ScheduleZnver2.td | ||
---|---|---|
49 ↗ | (On Diff #225324) | Nit: Three? |
Not sure how this (any) sched model should be reviewed.
Perhaps it would help to post the exegesis reports.
FWIW i'd just merge this.
llvm/lib/Target/X86/X86ScheduleZnver2.td | ||
---|---|---|
179 ↗ | (On Diff #226091) | This is correct? |
I agree with Roman that there's not a good way to review this other than comparing with exegesis data. Sounds like from the initial description there is planned follow up with more data from exegesis. So I think this is fine to start with.
I agree on having a patch to enable exegesis. Will post that in couple of days. As mentioned, this is part of the initial plan as well.
It looks like everyone is in agreement: We should move forward with this, exegesis next as follow-up, and then updates from there as appropriate. Thus, LGTM.