diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2021-11-30 10:36:20 +0300 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2021-11-30 10:47:56 +0300 |
commit | 8cd782487fe68082e57d24a576b77f529d77f96c (patch) | |
tree | 0fc1edf73a3e25f685e256dfbdf64371100a9060 /lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h | |
parent | 89453ed6f2059b5cec576fc41914def713fe38f7 (diff) | |
download | llvm-8cd782487fe68082e57d24a576b77f529d77f96c.zip llvm-8cd782487fe68082e57d24a576b77f529d77f96c.tar.gz llvm-8cd782487fe68082e57d24a576b77f529d77f96c.tar.bz2 |
[X86][LoopVectorize] "Fix" `X86TTIImpl::getAddressComputationCost()`
We ask `TTI.getAddressComputationCost()` about the cost of computing vector address,
and then multiply it by the vector width. This doesn't make any sense,
it implies that we'd do a vector GEP and then scalarize the vector of pointers,
but there is no such thing in the vectorized IR, we perform scalar GEP's.
This is *especially* bad on X86, and was effectively prohibiting any scalarized
vectorization of gathers/scatters, because `X86TTIImpl::getAddressComputationCost()`
says that cost of vector address computation is `10` as compared to `1` for scalar.
The computed costs are similar to the ones with D111222+D111220,
but we end up without masked memory intrinsics that we'd then have to
expand later on, without much luck. (D111363)
Differential Revision: https://reviews.llvm.org/D111460
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h')
0 files changed, 0 insertions, 0 deletions