OSDN Git Service

[X86][BdVer2] Fix loads/stores throughput for Piledriver (PR39465)
authorRoman Lebedev <lebedev.ri@gmail.com>
Sat, 10 Nov 2018 14:31:43 +0000 (14:31 +0000)
committerRoman Lebedev <lebedev.ri@gmail.com>
Sat, 10 Nov 2018 14:31:43 +0000 (14:31 +0000)
commit94d44f116150840a7a2d5780582e18e42e8251ab
treef8a2f029ec05f80b2e9c07f4330f619dda59fcd1
parent6557f4a16fa61876a7e29740a44894c8f93ff015
[X86][BdVer2] Fix loads/stores throughput for Piledriver (PR39465)

There are two AGU units, and per 1cy, there can be either two loads,
or a load and a store; but not two stores, or two loads and a store.

Additionally, loads shouldn't affect the store scheduler and vice versa.
(but *should* affect the PdEX scheduler.)

Required rL346545.
Fixes https://bugs.llvm.org/show_bug.cgi?id=39465

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346587 91177308-0d34-0410-b5e6-96231b3b80d8
73 files changed:
lib/Target/X86/X86ScheduleBdVer2.td
test/CodeGen/X86/mmx-schedule.ll
test/CodeGen/X86/schedule-x86-64-shld.ll
test/CodeGen/X86/schedule-x86_32.ll
test/CodeGen/X86/schedule-x86_64.ll
test/CodeGen/X86/sse-schedule.ll
test/CodeGen/X86/sse2-schedule.ll
test/CodeGen/X86/x87-schedule.ll
test/tools/llvm-mca/X86/BdVer2/add-sequence.s
test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s
test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s
test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s
test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s
test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s
test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s
test/tools/llvm-mca/X86/BdVer2/dot-product.s
test/tools/llvm-mca/X86/BdVer2/load-store-alias.s
test/tools/llvm-mca/X86/BdVer2/load-throughput.s
test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s
test/tools/llvm-mca/X86/BdVer2/one-idioms.s
test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s
test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s
test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s
test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s
test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s
test/tools/llvm-mca/X86/BdVer2/pr37790.s
test/tools/llvm-mca/X86/BdVer2/rank.s
test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s
test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s
test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s
test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s
test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s
test/tools/llvm-mca/X86/BdVer2/register-files-1.s
test/tools/llvm-mca/X86/BdVer2/register-files-2.s
test/tools/llvm-mca/X86/BdVer2/register-files-3.s
test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s
test/tools/llvm-mca/X86/BdVer2/resources-adx.s
test/tools/llvm-mca/X86/BdVer2/resources-aes.s
test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s
test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s
test/tools/llvm-mca/X86/BdVer2/resources-cmov.s
test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s
test/tools/llvm-mca/X86/BdVer2/resources-f16c.s
test/tools/llvm-mca/X86/BdVer2/resources-fma.s
test/tools/llvm-mca/X86/BdVer2/resources-fma4.s
test/tools/llvm-mca/X86/BdVer2/resources-lea.s
test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s
test/tools/llvm-mca/X86/BdVer2/resources-mmx.s
test/tools/llvm-mca/X86/BdVer2/resources-movbe.s
test/tools/llvm-mca/X86/BdVer2/resources-pclmul.s
test/tools/llvm-mca/X86/BdVer2/resources-popcnt.s
test/tools/llvm-mca/X86/BdVer2/resources-prefetchw.s
test/tools/llvm-mca/X86/BdVer2/resources-sse1.s
test/tools/llvm-mca/X86/BdVer2/resources-sse2.s
test/tools/llvm-mca/X86/BdVer2/resources-sse3.s
test/tools/llvm-mca/X86/BdVer2/resources-sse41.s
test/tools/llvm-mca/X86/BdVer2/resources-sse42.s
test/tools/llvm-mca/X86/BdVer2/resources-sse4a.s
test/tools/llvm-mca/X86/BdVer2/resources-ssse3.s
test/tools/llvm-mca/X86/BdVer2/resources-tbm.s
test/tools/llvm-mca/X86/BdVer2/resources-x86_32.s
test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s
test/tools/llvm-mca/X86/BdVer2/resources-x87.s
test/tools/llvm-mca/X86/BdVer2/resources-xop.s
test/tools/llvm-mca/X86/BdVer2/scheduler-queue-usage.s
test/tools/llvm-mca/X86/BdVer2/simple-test.s
test/tools/llvm-mca/X86/BdVer2/store-throughput.s
test/tools/llvm-mca/X86/BdVer2/vbroadcast-operand-latency.s
test/tools/llvm-mca/X86/BdVer2/xop-super-registers-1.s
test/tools/llvm-mca/X86/BdVer2/xop-super-registers-2.s
test/tools/llvm-mca/X86/BdVer2/zero-idioms-avx-256.s
test/tools/llvm-mca/X86/BdVer2/zero-idioms.s