[llvm] eb9f475 - Revert "[SandboxVec][Legality] Reject non-instructions (#113190)"
Vasileios Porpodas via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 25 12:52:57 PDT 2024
Author: Vasileios Porpodas
Date: 2024-10-25T12:52:31-07:00
New Revision: eb9f4756bc3daaa4b19f4f46521dc05180814de4
URL: https://github.com/llvm/llvm-project/commit/eb9f4756bc3daaa4b19f4f46521dc05180814de4
DIFF: https://github.com/llvm/llvm-project/commit/eb9f4756bc3daaa4b19f4f46521dc05180814de4.diff
LOG: Revert "[SandboxVec][Legality] Reject non-instructions (#113190)"
This reverts commit 6c9bbbc818ae8a0d2849dbc1ebd84a220cc27d20.
Added:
Modified:
llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h b/llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
index d4b0b54375b026..bcfafd75d4caaf 100644
--- a/llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
+++ b/llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
@@ -28,7 +28,6 @@ enum class LegalityResultID {
/// The reason for vectorizing or not vectorizing.
enum class ResultReason {
- NotInstructions,
DiffOpcodes,
DiffTypes,
};
@@ -47,8 +46,6 @@ struct ToStr {
static const char *getVecReason(ResultReason Reason) {
switch (Reason) {
- case ResultReason::NotInstructions:
- return "NotInstructions";
case ResultReason::DiffOpcodes:
return "DiffOpcodes";
case ResultReason::DiffTypes:
@@ -70,10 +67,6 @@ class LegalityResult {
LegalityResult(LegalityResultID ID) : ID(ID) {}
friend class LegalityAnalysis;
- /// We shouldn't need copies.
- LegalityResult(const LegalityResult &) = delete;
- LegalityResult &operator=(const LegalityResult &) = delete;
-
public:
virtual ~LegalityResult() {}
LegalityResultID getSubclassID() const { return ID; }
@@ -97,7 +90,6 @@ class LegalityResultWithReason : public LegalityResult {
friend class Pack; // For constructor.
public:
- ResultReason getReason() const { return Reason; }
#ifndef NDEBUG
void print(raw_ostream &OS) const override {
LegalityResult::print(OS);
@@ -146,7 +138,7 @@ class LegalityAnalysis {
}
/// Checks if it's legal to vectorize the instructions in \p Bndl.
/// \Returns a LegalityResult object owned by LegalityAnalysis.
- const LegalityResult &canVectorize(ArrayRef<Value *> Bndl);
+ LegalityResult &canVectorize(ArrayRef<Value *> Bndl);
};
} // namespace llvm::sandboxir
diff --git a/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp b/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
index f1c4577cece78a..0e2cd83c37b0cd 100644
--- a/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
+++ b/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
@@ -7,15 +7,11 @@
//===----------------------------------------------------------------------===//
#include "llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h"
-#include "llvm/SandboxIR/Instruction.h"
-#include "llvm/SandboxIR/Utils.h"
#include "llvm/SandboxIR/Value.h"
#include "llvm/Support/Debug.h"
namespace llvm::sandboxir {
-#define DEBUG_TYPE "SBVec:Legality"
-
#ifndef NDEBUG
void LegalityResult::dump() const {
print(dbgs());
@@ -30,19 +26,7 @@ LegalityAnalysis::notVectorizableBasedOnOpcodesAndTypes(
return std::nullopt;
}
-static void dumpBndl(ArrayRef<Value *> Bndl) {
- for (auto *V : Bndl)
- dbgs() << *V << "\n";
-}
-
-const LegalityResult &LegalityAnalysis::canVectorize(ArrayRef<Value *> Bndl) {
- // If Bndl contains values other than instructions, we need to Pack.
- if (any_of(Bndl, [](auto *V) { return !isa<Instruction>(V); })) {
- LLVM_DEBUG(dbgs() << "Not vectorizing: Not Instructions:\n";
- dumpBndl(Bndl););
- return createLegalityResult<Pack>(ResultReason::NotInstructions);
- }
-
+LegalityResult &LegalityAnalysis::canVectorize(ArrayRef<Value *> Bndl) {
if (auto ReasonOpt = notVectorizableBasedOnOpcodesAndTypes(Bndl))
return createLegalityResult<Pack>(*ReasonOpt);
diff --git a/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp b/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
index ede41cd661b559..f11420e47f3e1f 100644
--- a/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+++ b/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
@@ -40,7 +40,7 @@ static SmallVector<Value *, 4> getOperand(ArrayRef<Value *> Bndl,
}
void BottomUpVec::vectorizeRec(ArrayRef<Value *> Bndl) {
- const auto &LegalityRes = Legality.canVectorize(Bndl);
+ auto LegalityRes = Legality.canVectorize(Bndl);
switch (LegalityRes.getSubclassID()) {
case LegalityResultID::Widen: {
auto *I = cast<Instruction>(Bndl[0]);
diff --git a/llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp b/llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp
index 56c6bf5f1ef1f5..76e5a5ce5aed92 100644
--- a/llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp
+++ b/llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp
@@ -52,16 +52,8 @@ define void @foo(ptr %ptr) {
auto *St1 = cast<sandboxir::StoreInst>(&*It++);
sandboxir::LegalityAnalysis Legality;
- const auto &Result = Legality.canVectorize({St0, St1});
+ auto Result = Legality.canVectorize({St0, St1});
EXPECT_TRUE(isa<sandboxir::Widen>(Result));
-
- {
- // Check NotInstructions
- auto &Result = Legality.canVectorize({F, St0});
- EXPECT_TRUE(isa<sandboxir::Pack>(Result));
- EXPECT_EQ(cast<sandboxir::Pack>(Result).getReason(),
- sandboxir::ResultReason::NotInstructions);
- }
}
#ifndef NDEBUG
@@ -76,9 +68,6 @@ TEST_F(LegalityTest, LegalityResultDump) {
sandboxir::LegalityAnalysis Legality;
EXPECT_TRUE(
Matches(Legality.createLegalityResult<sandboxir::Widen>(), "Widen"));
- EXPECT_TRUE(Matches(Legality.createLegalityResult<sandboxir::Pack>(
- sandboxir::ResultReason::NotInstructions),
- "Pack Reason: NotInstructions"));
EXPECT_TRUE(Matches(Legality.createLegalityResult<sandboxir::Pack>(
sandboxir::ResultReason::DiffOpcodes),
"Pack Reason: DiffOpcodes"));
More information about the llvm-commits
mailing list