[llvm] [SampleProf][TableGen] Fix -Wrange-loop-construct warnings (NFC) (PR #221472)

Vedran Miletić via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 10 10:48:08 PDT 2026


https://github.com/vedranmiletic updated https://github.com/llvm/llvm-project/pull/221472

>From b35e396f956fd6ceb8864a9a0b85154c807fbd81 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vedran=20Mileti=C4=87?= <vedran at miletic.net>
Date: Sat, 1 Aug 2026 12:36:12 +0200
Subject: [PATCH] [SampleProf][TableGen] Fix -Wrange-loop-construct warnings
 (NFC)

Use "const auto &" instead of "const auto" for structured bindings in
range-based for loops to avoid copying the loop variable. Fixes
-Wrange-loop-construct warnings emitted by Clang 19.
---
 llvm/lib/ProfileData/SampleProfWriter.cpp           | 4 ++--
 llvm/utils/TableGen/AsmMatcherEmitter.cpp           | 4 ++--
 llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp      | 2 +-
 llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp | 2 +-
 llvm/utils/TableGen/DAGISelMatcherEmitter.cpp       | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/llvm/lib/ProfileData/SampleProfWriter.cpp b/llvm/lib/ProfileData/SampleProfWriter.cpp
index 2d317a7f6f744..3a4b588f1e442 100644
--- a/llvm/lib/ProfileData/SampleProfWriter.cpp
+++ b/llvm/lib/ProfileData/SampleProfWriter.cpp
@@ -801,7 +801,7 @@ std::error_code SampleProfileWriterText::writeSample(const FunctionSamples &S) {
       Loc.print(OS);
       OS << ": ";
       OS << kVTableProfPrefix;
-      for (const auto [TypeName, Count] : *Map) {
+      for (const auto &[TypeName, Count] : *Map) {
         OS << TypeName << ":" << Count << " ";
       }
       OS << "\n";
@@ -826,7 +826,7 @@ std::error_code SampleProfileWriterText::writeSample(const FunctionSamples &S) {
       Loc.print(OS);
       OS << ": ";
       OS << kVTableProfPrefix;
-      for (const auto [TypeId, Count] : *Map) {
+      for (const auto &[TypeId, Count] : *Map) {
         OS << TypeId << ":" << Count << " ";
       }
       OS << "\n";
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
index 5e2127d139081..62f45dae113b7 100644
--- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp
+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
@@ -1546,7 +1546,7 @@ void AsmMatcherInfo::buildOperandMatchInfo() {
     }
 
     // Generate operand match info for each mnemonic/operand class pair.
-    for (const auto [CI, OpMask] : OpClassMask) {
+    for (const auto &[CI, OpMask] : OpClassMask) {
       OperandMatchInfo.push_back(
           OperandMatchEntry::create(MI.get(), CI, OpMask));
     }
@@ -2609,7 +2609,7 @@ static void emitGetRegClassFromMatchKindFunc(AsmMatcherInfo &Info,
       It->second = nullptr; // Mark as ambiguous
     }
   }
-  for (const auto [UserCI, RegCI] : UserClassToRegClassMap) {
+  for (const auto &[UserCI, RegCI] : UserClassToRegClassMap) {
     if (RegCI && isDefinedRegisterClass(Info, RegCI->ClassName)) {
       OS << "  case " << UserCI->Name << ":\n";
       OS << "    return &get" << Info.Target.getName() << "MCRegisterClass("
diff --git a/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp b/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
index 6b3a3026a7d64..3ac43b87fc967 100644
--- a/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
+++ b/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
@@ -776,7 +776,7 @@ static AttributeSet getIntrinsicFnAttributeSet(LLVMContext &C, unsigned ID) {
 
   // Find the max number of attributes to create the local array.
   unsigned MaxNumAttrs = 0;
-  for (const auto [IntPtr, UniqueID] : UniqAttributes) {
+  for (const auto &[IntPtr, UniqueID] : UniqAttributes) {
     const CodeGenIntrinsic &Int = *IntPtr;
     ArgAttrIDSubTable SubTable;
 
diff --git a/llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp b/llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp
index 3a2ef55656067..b326b6e6b8744 100644
--- a/llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp
+++ b/llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp
@@ -239,7 +239,7 @@ void VarLenCodeEmitterGen::run(raw_ostream &OS) {
     if (const Record *RV = R->getValueAsOptionalDef("EncodingInfos")) {
       const CodeGenHwModes &HWM = Target.getHwModes();
       EncodingInfoByHwMode EBM(RV, HWM);
-      for (const auto [Mode, EncodingDef] : EBM) {
+      for (const auto &[Mode, EncodingDef] : EBM) {
         Modes.try_emplace(Mode, "_" + HWM.getMode(Mode).Name.str());
         const RecordVal *RV = EncodingDef->getValue("Inst");
         const DagInit *DI = cast<DagInit>(RV->getValue());
diff --git a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
index 37e7ad34cb225..40abe5619f5a2 100644
--- a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
+++ b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
@@ -1484,7 +1484,7 @@ void MatcherTableEmitter::EmitValueTypeFunction(raw_ostream &OS) {
       OS << "    switch (HwMode) {\n";
       if (!VTs.hasDefault())
         OS << "    default:\n      return MVT();\n";
-      for (const auto [Mode, VT] : VTs) {
+      for (const auto &[Mode, VT] : VTs) {
         if (Mode == DefaultMode)
           OS << "    default:\n";
         else



More information about the llvm-commits mailing list