]> granicus.if.org Git - llvm/commit
[NFC][MCA] ZnVer1: Update RegisterFile to identify false dependencies on partially...
authorRoman Lebedev <lebedev.ri@gmail.com>
Mon, 23 Jul 2018 10:10:13 +0000 (10:10 +0000)
committerRoman Lebedev <lebedev.ri@gmail.com>
Mon, 23 Jul 2018 10:10:13 +0000 (10:10 +0000)
commit7fdea0d4185ce83bb92c4f52fd014c49dfc68276
tree1239a64ad19e53b7053223fb5f555e0f690adf9a
parente3427c2f0958da841870659c639c35a8d462cc70
[NFC][MCA] ZnVer1: Update RegisterFile to identify false dependencies on partially written registers.

Summary:
Pretty mechanical follow-up for D49196.

As microarchitecture.pdf notes, "20 AMD Ryzen pipeline",
"20.8 Register renaming and out-of-order schedulers":
  The integer register file has 168 physical registers of 64 bits each.
  The floating point register file has 160 registers of 128 bits each.
"20.14 Partial register access":
  The processor always keeps the different parts of an integer register together.
  ...
  An instruction that writes to part of a register will therefore have a false dependence
  on any previous write to the same register or any part of it.

Reviewers: andreadb, courbet, RKSimon, craig.topper, GGanesh

Reviewed By: GGanesh

Subscribers: gbedwell, llvm-commits

Differential Revision: https://reviews.llvm.org/D49393

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337676 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ScheduleZnver1.td
test/tools/llvm-mca/X86/Znver1/partial-reg-update-2.s
test/tools/llvm-mca/X86/Znver1/partial-reg-update-3.s
test/tools/llvm-mca/X86/Znver1/partial-reg-update-4.s
test/tools/llvm-mca/X86/Znver1/partial-reg-update-5.s
test/tools/llvm-mca/X86/Znver1/partial-reg-update-6.s