aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectThread.cpp
diff options
context:
space:
mode:
authorDavid Sherwood <david.sherwood@arm.com>2022-05-10 10:49:43 +0100
committerDavid Sherwood <david.sherwood@arm.com>2022-07-11 13:46:55 +0100
commit03fee6712a39fb4132097a61fbc7e19aeececb59 (patch)
treed980227c168e7e1fc04988a1f27d3865525311e6 /lldb/source/Commands/CommandObjectThread.cpp
parentf9ac161af9d9c3af03cda25497a7280f51fd92ac (diff)
downloadllvm-03fee6712a39fb4132097a61fbc7e19aeececb59.zip
llvm-03fee6712a39fb4132097a61fbc7e19aeececb59.tar.gz
llvm-03fee6712a39fb4132097a61fbc7e19aeececb59.tar.bz2
[LoopVectorize] Add option to use active lane mask for loop control flow
Currently, for vectorised loops that use the get.active.lane.mask intrinsic we only use the mask for predicated vector operations, such as masked loads and stores, etc. The loop itself is still controlled by comparing the canonical induction variable with the trip count. However, for some targets this is inefficient when it's cheap to use the mask itself to control the loop. This patch adds support for using the active lane mask for control flow by: 1. Generating the active lane mask for the next iteration of the vector loop, rather than the current one. If there are still any remaining iterations then at least the first bit of the mask will be set. 2. Extract the first bit of this mask and use this bit for the conditional branch. I did this by creating a new VPActiveLaneMaskPHIRecipe that sets up the initial PHI values in the vector loop pre-header. I've also made use of the new BranchOnCond VPInstruction for the final instruction in the loop region. Differential Revision: https://reviews.llvm.org/D125301
Diffstat (limited to 'lldb/source/Commands/CommandObjectThread.cpp')
0 files changed, 0 insertions, 0 deletions