[llvm] [RFC][LV] Add support for speculative loads in loops that may fault (PR #151300)
Shih-Po Hung via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 1 06:06:37 PDT 2025
================
@@ -1769,15 +1770,61 @@ bool LoopVectorizationLegality::isVectorizableEarlyExitLoop() {
assert(LatchBB->getUniquePredecessor() == SingleUncountableEdge->first &&
"Expected latch predecessor to be the early exiting block");
- // TODO: Handle loops that may fault.
Predicates.clear();
- if (!isDereferenceableReadOnlyLoop(TheLoop, PSE.getSE(), DT, AC,
- &Predicates)) {
- reportVectorizationFailure(
- "Loop may fault",
- "Cannot vectorize potentially faulting early exit loop",
- "PotentiallyFaultingEarlyExitLoop", ORE, TheLoop);
- return false;
+ SmallVector<LoadInst *, 4> NonDerefLoads;
----------------
arcbbb wrote:
Updated. Thanks!
https://github.com/llvm/llvm-project/pull/151300
More information about the llvm-commits
mailing list