[X86] AMD Znver2 (Rome) Scheduler enablement
authorGanesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
Thu, 9 Jan 2020 14:41:32 +0000 (20:11 +0530)
committerGanesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
Thu, 9 Jan 2020 19:14:59 +0000 (00:44 +0530)
commit3408940f736955402b7676e3b8bab6906cc82637
tree88dd2f552580b5a3627bdf2160b1512d8c7db9bd
parent1a1dbea24df51e441f3517abb8e251df0029dad7
[X86] AMD Znver2 (Rome) Scheduler enablement

The patch gives out the details of the znver2 scheduler model.
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.

Reviewers: craig.topper, Simon Pilgrim

Differential Revision: https://reviews.llvm.org/D66088
59 files changed:
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86InstrInfo.td
llvm/lib/Target/X86/X86ScheduleZnver2.td [new file with mode: 0644]
llvm/test/MC/X86/x86_long_nop.s
llvm/test/tools/llvm-mca/X86/Generic/resources-clzero.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-clzero.s
llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-2.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-3.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-4.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-5.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-6.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-7.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-adx.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-aes.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-bmi1.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-bmi2.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-clflushopt.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-clzero.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-cmov.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-cmpxchg.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-f16c.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-fma.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-fsgsbase.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-lea.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-lzcnt.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-movbe.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-mwaitx.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-pclmul.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-popcnt.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-prefetchw.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-rdrand.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-rdseed.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-sha.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse41.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse42.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-sse4a.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_32.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/bextr-read-after-ld.s
llvm/test/tools/llvm-mca/X86/bzhi-read-after-ld.s
llvm/test/tools/llvm-mca/X86/cpus.s
llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s
llvm/test/tools/llvm-mca/X86/read-after-ld-1.s
llvm/test/tools/llvm-mca/X86/read-after-ld-2.s
llvm/test/tools/llvm-mca/X86/register-file-statistics.s
llvm/test/tools/llvm-mca/X86/scheduler-queue-usage.s
llvm/test/tools/llvm-mca/X86/sqrt-rsqrt-rcp-memop.s
llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s