aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/COFFImportFile.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2024-01-17 21:32:06 +0000
committerGitHub <noreply@github.com>2024-01-17 21:32:06 +0000
commite473daa7797db6e0f45ef9e12081ccce7d2ed26f (patch)
treed9d0efef9e1bc97d4bf999ba2a87d4b1fd9da344 /llvm/lib/Object/COFFImportFile.cpp
parentc1f433849be5e19127f23c1b4c5f1d0ee0ec63ca (diff)
downloadllvm-e473daa7797db6e0f45ef9e12081ccce7d2ed26f.zip
llvm-e473daa7797db6e0f45ef9e12081ccce7d2ed26f.tar.gz
llvm-e473daa7797db6e0f45ef9e12081ccce7d2ed26f.tar.bz2
[AArch64] Improve cost computations for odd vector mem ops. (#78181)
Improve cost computaton for odd vector mem ops by breaking them down into smaller power-of-2 parts and sum up the cost of those parts. This fixes the current cost estimates, which for most parts underestimated the cos, due to using getTypeLegalizationCost, which widens to the next power-of-2 in a single step in most cases. This doesn't reflect the actual cost. See https://llvm.godbolt.org/z/vMsnxMf1v for codegen for the tests. Note that there is a special case for v3i8, for which current codegen is pretty bad, due to automatic widening to v4i8, which in turn requires the conversion to go through memory ops in the stack. I am planning on fixing that as a follow-up, but I am not yet sure where to best fix this. At the moment, there are almost no cases in which such vector operations will be generated automatically. The motivating case is non-power-of-2 SLP vectorization: https://github.com/llvm/llvm-project/pull/77790 PR: https://github.com/llvm/llvm-project/pull/78181
Diffstat (limited to 'llvm/lib/Object/COFFImportFile.cpp')
0 files changed, 0 insertions, 0 deletions