[llvm] [LoopVectorize] Add support for vectorisation of simple early exit loops (PR #88385)
David Sherwood via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 25 06:48:56 PDT 2024
================
@@ -696,6 +721,17 @@ class LoopAccessInfo {
/// Cache the result of analyzeLoop.
bool CanVecMem = false;
bool HasConvergentOp = false;
+ bool LoopMayFault = false;
+
+ /// Keeps track of the early-exiting block, if present.
+ BasicBlock *SpeculativeEarlyExitingBB = nullptr;
----------------
david-arm wrote:
In a sense though that is not far off the truth, because when vectorising the loop we are by definition reading ahead in memory which could potentially cause a fault where the scalar loop would not. However, the main reason I added the word 'Speculative' was to distinguish between early exits with exact exit-not-taken counts (which the vectoriser does support) and early exits that cannot be counted.
I'd prefer not to call it `EarlyExitingBB` to avoid any possible confusion, but I'm happy to take suggestions on alternative names that are better? Perhaps `UncountableEarlyExitingBB`?
https://github.com/llvm/llvm-project/pull/88385
More information about the llvm-commits
mailing list