diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2024-11-13 12:33:04 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-13 12:33:04 +0000 |
commit | 8ae2a18736c15e0d0d9d0893b21bce4f3bf581c9 (patch) | |
tree | 0f2c575b528525cdee7c342246a49a1866e56a38 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | 1878b94568e77e51f0bc316ba5a8a6b8994b8daf (diff) | |
download | llvm-8ae2a18736c15e0d0d9d0893b21bce4f3bf581c9.zip llvm-8ae2a18736c15e0d0d9d0893b21bce4f3bf581c9.tar.gz llvm-8ae2a18736c15e0d0d9d0893b21bce4f3bf581c9.tar.bz2 |
[X86] Use proxy scheduler models for bdver3/bdver4 cpus (#114873)
We don't have specific models for bdver3/bdver4 cpus but we can use the
bdver2/znver1 models as proxy standins - these days the models are more
useful for analysis than for perfect instruction scheduling so these
should be fine.
While they don't accurately represent the bdver3/bdver4 architecture
(specifically the different fp-pipe layout), they give more accurate
latency/throughputs (vs Agner) than the default SandyBridge model, and
enable PostRA scheduling which all recent AMD models have benefitted
from.
I had to use the znver1 model for bdver4 so that we have AVX2
instruction coverage (none of the TBM/XOP/LWP/FMA4 instructions have
explicit schedules so this shouldn't be a problem) - they both
double-pump 256-bit instructions so this works pretty well.
This patch is based off a discussion at the devmtg regarding how easily
we can provide an actual scheduler model (or at least approximation) to
more of the X86 cpu targets - we can then add specific models if the
(unlikely) need arises.
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions