[llvm] [SLP] Fix -Wunused-lambda-capture in #223016 (PR #223053)
Aiden Grossman via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 11 13:52:43 PDT 2026
https://github.com/boomanaiden154 updated https://github.com/llvm/llvm-project/pull/223053
>From d9353bc25dcabc74496453256616fb0f98b7a518 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 11 Sep 2026 20:44:07 +0000
Subject: [PATCH 1/2] [SLP] Fix -Wunused-lambda-capture in #223016
Clang will warn on this despite this being required for MSVC, so add a
workaround for now.
---
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index a0adca7aabad0..488ea4f843b3e 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -33450,6 +33450,10 @@ bool SLPVectorizerPass::vectorizeNonVectorizableInsts(
Changed |= tryToVectorizeSequence<Value>(
Operands, OperandSorter, AreCompatibleOperands,
[this, &R, Limit](ArrayRef<Value *> Candidates, bool MaxVFOnly) {
+ // We are required to capture Limit for MSVC, but clang will warn that
+ // it is an unused lambda capture. We cannot mark it [[maybe_unused]],
+ // so we are forced to cast to void;
+ (void)Limit;
// Limit to StandaloneSeeds if !MaxVFOnly to avoid quadratic scan for
// large set of candidates.
return tryToVectorizeList(Candidates, R, MaxVFOnly,
>From e4179463b645631a5d3efc4fb6f748b0aef8b742 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 11 Sep 2026 20:52:23 +0000
Subject: [PATCH 2/2] feedback
---
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 488ea4f843b3e..a844033c105f4 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -33449,11 +33449,7 @@ bool SLPVectorizerPass::vectorizeNonVectorizableInsts(
constexpr unsigned Limit = 32;
Changed |= tryToVectorizeSequence<Value>(
Operands, OperandSorter, AreCompatibleOperands,
- [this, &R, Limit](ArrayRef<Value *> Candidates, bool MaxVFOnly) {
- // We are required to capture Limit for MSVC, but clang will warn that
- // it is an unused lambda capture. We cannot mark it [[maybe_unused]],
- // so we are forced to cast to void;
- (void)Limit;
+ [this, &R, Limit=Limit](ArrayRef<Value *> Candidates, bool MaxVFOnly) {
// Limit to StandaloneSeeds if !MaxVFOnly to avoid quadratic scan for
// large set of candidates.
return tryToVectorizeList(Candidates, R, MaxVFOnly,
More information about the llvm-commits
mailing list