OSDN Git Service

[llvm-mca] Correctly handle zero-latency stores that consume pipeline resources.
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 30 Apr 2018 15:55:04 +0000 (15:55 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 30 Apr 2018 15:55:04 +0000 (15:55 +0000)
commit1cff79735cafa96c1ef4dcc80e749f7954a0af8c
tree5ca01e62a4d18d1f208e3a7aa4cb0917287d1200
parentb57e446bd82bf9f749538a446bd8f1596d81088a
[llvm-mca] Correctly handle zero-latency stores that consume pipeline resources.

This fixes PR37293.

We can have scheduling classes with no write latency entries, that still consume
processor resources. We don't want to treat those instructions as zero-latency
instructions; they still have to be issued to the underlying pipelines, so they
still consume resource cycles.

This is likely to be a regression which I have accidentally introduced at
revision 330807. Now, if an instruction has a non-empty set of write processor
resources, we conservatively treat it as a normal (i.e. non zero-latency)
instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331193 91177308-0d34-0410-b5e6-96231b3b80d8
test/tools/llvm-mca/AArch64/Falkor/zero-latency-store.s [new file with mode: 0644]
tools/llvm-mca/Dispatch.cpp
tools/llvm-mca/Scheduler.cpp