[llvm] b98f6a5 - [VPlan] Cast to VPIRMetadata in getMemoryLocation (NFC) (#169028)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 21 06:23:20 PST 2025
Author: Ramkumar Ramachandra
Date: 2025-11-21T14:23:17Z
New Revision: b98f6a54f6ccff67d6eb1cfa25a3f3d919c8f6c9
URL: https://github.com/llvm/llvm-project/commit/b98f6a54f6ccff67d6eb1cfa25a3f3d919c8f6c9
DIFF: https://github.com/llvm/llvm-project/commit/b98f6a54f6ccff67d6eb1cfa25a3f3d919c8f6c9.diff
LOG: [VPlan] Cast to VPIRMetadata in getMemoryLocation (NFC) (#169028)
This allows us to strip an unnecessary TypeSwitch.
Added:
Modified:
llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/VPlanUtils.cpp b/llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
index 2536d61392ed1..cffc40960e47c 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
@@ -397,17 +397,14 @@ bool VPBlockUtils::isLatch(const VPBlockBase *VPB,
std::optional<MemoryLocation>
vputils::getMemoryLocation(const VPRecipeBase &R) {
- return TypeSwitch<const VPRecipeBase *, std::optional<MemoryLocation>>(&R)
- .Case<VPWidenMemoryRecipe, VPInterleaveBase, VPReplicateRecipe>(
- [](auto *S) {
- MemoryLocation Loc;
- // Populate noalias metadata from VPIRMetadata.
- if (MDNode *NoAliasMD = S->getMetadata(LLVMContext::MD_noalias))
- Loc.AATags.NoAlias = NoAliasMD;
- if (MDNode *AliasScopeMD =
- S->getMetadata(LLVMContext::MD_alias_scope))
- Loc.AATags.Scope = AliasScopeMD;
- return Loc;
- })
- .Default([](auto *) { return std::nullopt; });
+ auto *M = dyn_cast<VPIRMetadata>(&R);
+ if (!M)
+ return std::nullopt;
+ MemoryLocation Loc;
+ // Populate noalias metadata from VPIRMetadata.
+ if (MDNode *NoAliasMD = M->getMetadata(LLVMContext::MD_noalias))
+ Loc.AATags.NoAlias = NoAliasMD;
+ if (MDNode *AliasScopeMD = M->getMetadata(LLVMContext::MD_alias_scope))
+ Loc.AATags.Scope = AliasScopeMD;
+ return Loc;
}
More information about the llvm-commits
mailing list