[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