aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineLoopInfo.cpp
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2021-05-24 11:01:58 +0100
committerDavid Green <david.green@arm.com>2021-05-24 11:01:58 +0100
commit6cc78b9245bcc0e7a52723e2c298d290284e779b (patch)
tree9786666c201b40216fb81105be959e06ebf8dc9e /llvm/lib/CodeGen/MachineLoopInfo.cpp
parent587408c199e8125bb454a44b7a7b20e015f4d317 (diff)
downloadllvm-6cc78b9245bcc0e7a52723e2c298d290284e779b.zip
llvm-6cc78b9245bcc0e7a52723e2c298d290284e779b.tar.gz
llvm-6cc78b9245bcc0e7a52723e2c298d290284e779b.tar.bz2
[ARM] Fix inline memcpy trip count sequence
The trip count for a memcpy/memset will be n/16 rounded up to the nearest integer. So (n+15)>>4. The old code was including a BIC too, to clear one of the bits, which does not seem correct. This remove the extra BIC. Note that ideally this would never actually be generated, as in the creation of a tail predicated loop we will DCE that setup code, letting the WLSTP perform the trip count calculation. So this doesn't usually come up in testing (and apparently the ARMLowOverheadLoops pass does not do any sort of validation on the tripcount). Only if the generation of the WLTP fails will it use the incorrect BIC instructions. Differential Revision: https://reviews.llvm.org/D102629
Diffstat (limited to 'llvm/lib/CodeGen/MachineLoopInfo.cpp')
0 files changed, 0 insertions, 0 deletions