12
12
// ===----------------------------------------------------------------------===//
13
13
14
14
#include " Common/CodeGenTarget.h"
15
+ #include " llvm/Support/InterleavedRange.h"
15
16
#include " llvm/TableGen/Error.h"
16
17
#include " llvm/TableGen/Record.h"
17
18
#include " llvm/TableGen/TGTimer.h"
@@ -395,22 +396,16 @@ void CallingConvEmitter::emitArgRegisterLists(raw_ostream &O) {
395
396
396
397
O << " \n #else\n\n " ;
397
398
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) {
402
400
if (RegName.empty ())
403
401
continue ;
404
402
405
- O << " const MCRegister " << Entry. first << " _ArgRegs[] = { " ;
403
+ O << " const MCRegister " << RegName << " _ArgRegs[] = { " ;
406
404
407
- if (Registers.empty ()) {
405
+ if (Registers.empty ())
408
406
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);
414
409
415
410
O << " };\n " ;
416
411
}
@@ -419,18 +414,9 @@ void CallingConvEmitter::emitArgRegisterLists(raw_ostream &O) {
419
414
return ;
420
415
421
416
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 " ;
434
420
}
435
421
436
422
static TableGen::Emitter::OptClass<CallingConvEmitter>
0 commit comments