[llvm] [LoopVectorize] Perform loop versioning for some early exit loops (PR #120603)
David Sherwood via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 24 02:55:08 PST 2025
================
@@ -1609,6 +1609,43 @@ bool LoopVectorizationLegality::canVectorizeLoopNestCFG(
return Result;
}
+bool LoopVectorizationLegality::analyzePotentiallyFaultingLoads(
+ SmallVectorImpl<LoadInst *> *Loads) {
+ LLVM_DEBUG(dbgs() << "LV: Looking for potentially faulting loads in loop "
+ "with uncountable early exit:\n");
+ for (LoadInst *LI : *Loads) {
+ LLVM_DEBUG(dbgs() << "LV: Load: " << *LI << '\n');
+ Value *Ptr = LI->getPointerOperand();
+ if (!Ptr)
+ return false;
+ const SCEV *PtrExpr = PSE.getSCEV(Ptr);
+ const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrExpr);
+ // TODO: Deal with loop invariant pointers.
+ if (!AR || AR->getLoop() != TheLoop || !AR->isAffine())
----------------
david-arm wrote:
Done
https://github.com/llvm/llvm-project/pull/120603
More information about the llvm-commits
mailing list