aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Demangle/RustDemangle.cpp
diff options
context:
space:
mode:
authorRoman Lebedev <lebedev.ri@gmail.com>2021-05-22 11:40:58 +0300
committerRoman Lebedev <lebedev.ri@gmail.com>2021-05-22 11:46:32 +0300
commit05a4e4a89c6b6dc6e3edfb5efb9ddc950ae47469 (patch)
treeca2fb5d7b90c554bf93d70df491cc1c8418e0f88 /llvm/lib/Demangle/RustDemangle.cpp
parentfd5cc418186ab0fc0650ec373fdf016101eba21d (diff)
downloadllvm-05a4e4a89c6b6dc6e3edfb5efb9ddc950ae47469.zip
llvm-05a4e4a89c6b6dc6e3edfb5efb9ddc950ae47469.tar.gz
llvm-05a4e4a89c6b6dc6e3edfb5efb9ddc950ae47469.tar.bz2
Reland [X86][CostModel] X86TTIImpl::getMemoryOpCost(): rewrite vector handling again
Instead of handling power-of-two sized vector chunks, try handling the large vector in a stream mode, decreasing the operational vector size once it no longer works for the elements left to process. Notably, this improves costs for overaligned loads - loading padding is fine. This more directly tracks when we need to insert/extract the YMM/XMM subvector, some costs fluctuate because of that. This was initially landed in c02476f3158f2908ef0a6f628210b5380bd33695, but reverted in 5fddc3312bad7e62493f1605385fad5e589e6450, because the code made some very optimistic assumptions about invariants that didn't hold in practice. Reviewed By: RKSimon, ABataev Differential Revision: https://reviews.llvm.org/D100684
Diffstat (limited to 'llvm/lib/Demangle/RustDemangle.cpp')
0 files changed, 0 insertions, 0 deletions