diff options
author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-08-31 16:05:48 +0000 |
---|---|---|
committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-08-31 16:05:48 +0000 |
commit | a59ec4efa02c6b50ce3dd8248a2f93efedb1aeb3 (patch) | |
tree | 7ac221f8659c71c6b95f144be78c7adb0bbed636 /llvm/lib/Support/BinaryStreamError.cpp | |
parent | 3785e84cf2cdafb7c7adb0aabe896795acaee6e4 (diff) | |
download | llvm-a59ec4efa02c6b50ce3dd8248a2f93efedb1aeb3.zip llvm-a59ec4efa02c6b50ce3dd8248a2f93efedb1aeb3.tar.gz llvm-a59ec4efa02c6b50ce3dd8248a2f93efedb1aeb3.tar.bz2 |
[X86][BtVer2] Remove wrong ReadAdvance from AVX vbroadcast(ss|sd|f128) instructions.
The presence of a ReadAdvance for input operand #0 is problematic
because it changes the input latency of the register used as the base address
for the folded load.
A broadcast cannot start executing if the load address hasn't been computed yet.
In the llvm-mca example, the VBROADCASTSS is dependent on the address generated
by the LEAQ. That means, it cannot start until LEAQ reaches the write-back
stage. If we apply ReadAdvance, then we wrongly assume that the load can start 3
cycles in advance.
Differential Revision: https://reviews.llvm.org/D51534
llvm-svn: 341222
Diffstat (limited to 'llvm/lib/Support/BinaryStreamError.cpp')
0 files changed, 0 insertions, 0 deletions