[llvm] [TableGen] Use llvm::interleaved (NFC) (PR #137483)

Kazu Hirata via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 26 17:02:54 PDT 2025


https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/137483

None

>From dd743d047c2d6215d77b832ea6894167b9ae5190 Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Sat, 26 Apr 2025 16:21:41 -0700
Subject: [PATCH] [TableGen] Use llvm::interleaved (NFC)

---
 llvm/utils/TableGen/CallingConvEmitter.cpp    | 32 ++++++-------------
 .../TableGen/Common/CodeGenDAGPatterns.cpp    | 10 ++----
 2 files changed, 12 insertions(+), 30 deletions(-)

diff --git a/llvm/utils/TableGen/CallingConvEmitter.cpp b/llvm/utils/TableGen/CallingConvEmitter.cpp
index c94d294db547a..d2700816b0ad0 100644
--- a/llvm/utils/TableGen/CallingConvEmitter.cpp
+++ b/llvm/utils/TableGen/CallingConvEmitter.cpp
@@ -12,6 +12,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "Common/CodeGenTarget.h"
+#include "llvm/Support/InterleavedRange.h"
 #include "llvm/TableGen/Error.h"
 #include "llvm/TableGen/Record.h"
 #include "llvm/TableGen/TGTimer.h"
@@ -395,22 +396,16 @@ void CallingConvEmitter::emitArgRegisterLists(raw_ostream &O) {
 
   O << "\n#else\n\n";
 
-  for (auto &Entry : AssignedRegsMap) {
-    const std::string &RegName = Entry.first;
-    std::set<std::string> &Registers = Entry.second;
-
+  for (const auto &[RegName, Registers] : AssignedRegsMap) {
     if (RegName.empty())
       continue;
 
-    O << "const MCRegister " << Entry.first << "_ArgRegs[] = { ";
+    O << "const MCRegister " << RegName << "_ArgRegs[] = { ";
 
-    if (Registers.empty()) {
+    if (Registers.empty())
       O << "0";
-    } else {
-      ListSeparator LS;
-      for (const std::string &Reg : Registers)
-        O << LS << Reg;
-    }
+    else
+      O << llvm::interleaved(Registers);
 
     O << " };\n";
   }
@@ -419,18 +414,9 @@ void CallingConvEmitter::emitArgRegisterLists(raw_ostream &O) {
     return;
 
   O << "\n// Registers used by Swift.\n";
-  for (auto &Entry : AssignedSwiftRegsMap) {
-    const std::string &RegName = Entry.first;
-    std::set<std::string> &Registers = Entry.second;
-
-    O << "const MCRegister " << RegName << "_Swift_ArgRegs[] = { ";
-
-    ListSeparator LS;
-    for (const std::string &Reg : Registers)
-      O << LS << Reg;
-
-    O << " };\n";
-  }
+  for (const auto &[RegName, Registers] : AssignedSwiftRegsMap)
+    O << "const MCRegister " << RegName << "_Swift_ArgRegs[] = { "
+      << llvm::interleaved(Registers) << " };\n";
 }
 
 static TableGen::Emitter::OptClass<CallingConvEmitter>
diff --git a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
index 615c077fe4bdc..20b313d4428db 100644
--- a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
@@ -24,6 +24,7 @@
 #include "llvm/ADT/Twine.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/InterleavedRange.h"
 #include "llvm/Support/TypeSize.h"
 #include "llvm/TableGen/Error.h"
 #include "llvm/TableGen/Record.h"
@@ -3217,13 +3218,8 @@ bool TreePattern::InferAllTypes(
 
 void TreePattern::print(raw_ostream &OS) const {
   OS << getRecord()->getName();
-  if (!Args.empty()) {
-    OS << "(";
-    ListSeparator LS;
-    for (const std::string &Arg : Args)
-      OS << LS << Arg;
-    OS << ")";
-  }
+  if (!Args.empty())
+    OS << '(' << llvm::interleaved(Args) << ')';
   OS << ": ";
 
   if (Trees.size() > 1)



More information about the llvm-commits mailing list