[llvm] c064d3f - [LV] Use early continue to simplify code [nfc]
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 18 10:32:03 PDT 2022
Author: Philip Reames
Date: 2022-08-18T10:31:55-07:00
New Revision: c064d3f139cef050692c62f78c6591b3f3ab3a59
URL: https://github.com/llvm/llvm-project/commit/c064d3f139cef050692c62f78c6591b3f3ab3a59
DIFF: https://github.com/llvm/llvm-project/commit/c064d3f139cef050692c62f78c6591b3f3ab3a59.diff
LOG: [LV] Use early continue to simplify code [nfc]
Added:
Modified:
llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
index dff43efe494a..303f6143b844 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
@@ -1096,30 +1096,24 @@ bool LoopVectorizationLegality::blockCanBePredicated(
if (isa<NoAliasScopeDeclInst>(&I))
continue;
- // We might be able to hoist the load.
- if (I.mayReadFromMemory()) {
- auto *LI = dyn_cast<LoadInst>(&I);
- if (!LI)
- return false;
- if (!SafePtrs.count(LI->getPointerOperand())) {
+ // Loads are handled via masking (or speculated if safe to do so.)
+ if (auto *LI = dyn_cast<LoadInst>(&I)) {
+ if (!SafePtrs.count(LI->getPointerOperand()))
MaskedOp.insert(LI);
- continue;
- }
+ continue;
}
- if (I.mayWriteToMemory()) {
- auto *SI = dyn_cast<StoreInst>(&I);
- if (!SI)
- return false;
- // Predicated store requires some form of masking:
- // 1) masked store HW instruction,
- // 2) emulation via load-blend-store (only if safe and legal to do so,
- // be aware on the race conditions), or
- // 3) element-by-element predicate check and scalar store.
+ // Predicated store requires some form of masking:
+ // 1) masked store HW instruction,
+ // 2) emulation via load-blend-store (only if safe and legal to do so,
+ // be aware on the race conditions), or
+ // 3) element-by-element predicate check and scalar store.
+ if (auto *SI = dyn_cast<StoreInst>(&I)) {
MaskedOp.insert(SI);
continue;
}
- if (I.mayThrow())
+
+ if (I.mayReadFromMemory() || I.mayWriteToMemory() || I.mayThrow())
return false;
}
More information about the llvm-commits
mailing list