1212// ===----------------------------------------------------------------------===//
1313
1414#include " Common/CodeGenTarget.h"
15+ #include " llvm/Support/InterleavedRange.h"
1516#include " llvm/TableGen/Error.h"
1617#include " llvm/TableGen/Record.h"
1718#include " llvm/TableGen/TGTimer.h"
@@ -395,22 +396,16 @@ void CallingConvEmitter::emitArgRegisterLists(raw_ostream &O) {
395396
396397 O << " \n #else\n\n " ;
397398
398- for (auto &Entry : AssignedRegsMap) {
399- const std::string &RegName = Entry.first ;
400- std::set<std::string> &Registers = Entry.second ;
401-
399+ for (const auto &[RegName, Registers] : AssignedRegsMap) {
402400 if (RegName.empty ())
403401 continue ;
404402
405- O << " const MCRegister " << Entry. first << " _ArgRegs[] = { " ;
403+ O << " const MCRegister " << RegName << " _ArgRegs[] = { " ;
406404
407- if (Registers.empty ()) {
405+ if (Registers.empty ())
408406 O << " 0" ;
409- } else {
410- ListSeparator LS;
411- for (const std::string &Reg : Registers)
412- O << LS << Reg;
413- }
407+ else
408+ O << llvm::interleaved (Registers);
414409
415410 O << " };\n " ;
416411 }
@@ -419,18 +414,9 @@ void CallingConvEmitter::emitArgRegisterLists(raw_ostream &O) {
419414 return ;
420415
421416 O << " \n // Registers used by Swift.\n " ;
422- for (auto &Entry : AssignedSwiftRegsMap) {
423- const std::string &RegName = Entry.first ;
424- std::set<std::string> &Registers = Entry.second ;
425-
426- O << " const MCRegister " << RegName << " _Swift_ArgRegs[] = { " ;
427-
428- ListSeparator LS;
429- for (const std::string &Reg : Registers)
430- O << LS << Reg;
431-
432- O << " };\n " ;
433- }
417+ for (const auto &[RegName, Registers] : AssignedSwiftRegsMap)
418+ O << " const MCRegister " << RegName << " _Swift_ArgRegs[] = { "
419+ << llvm::interleaved (Registers) << " };\n " ;
434420}
435421
436422static TableGen::Emitter::OptClass<CallingConvEmitter>
0 commit comments