X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=utils%2FTableGen%2FRegisterInfoEmitter.cpp;h=f58a04a93afe40f55f5ead5618bf842fae9dc9a0;hp=7c14febd494e11b273e6b681d75accb4a6507e21;hb=e32e1f4c62b39ad9cca2aa67d6612f21255163bb;hpb=d89d4bccffbd23bea821af7fd09201f4e9abc546 diff --git a/utils/TableGen/RegisterInfoEmitter.cpp b/utils/TableGen/RegisterInfoEmitter.cpp index 7c14febd494..f58a04a93af 100644 --- a/utils/TableGen/RegisterInfoEmitter.cpp +++ b/utils/TableGen/RegisterInfoEmitter.cpp @@ -1452,22 +1452,28 @@ RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target, OS << "ArrayRef " << ClassName << "::getRegMasks() const {\n"; - OS << " static const uint32_t *Masks[] = {\n"; - for (Record *CSRSet : CSRSets) - OS << " " << CSRSet->getName() << "_RegMask, \n"; - OS << " nullptr\n };\n"; - OS << " return ArrayRef(Masks, (size_t)" << CSRSets.size() - << ");\n"; + if (!CSRSets.empty()) { + OS << " static const uint32_t *const Masks[] = {\n"; + for (Record *CSRSet : CSRSets) + OS << " " << CSRSet->getName() << "_RegMask,\n"; + OS << " };\n"; + OS << " return makeArrayRef(Masks);\n"; + } else { + OS << " return None;\n"; + } OS << "}\n\n"; OS << "ArrayRef " << ClassName << "::getRegMaskNames() const {\n"; - OS << " static const char *Names[] = {\n"; - for (Record *CSRSet : CSRSets) - OS << " " << '"' << CSRSet->getName() << '"' << ",\n"; - OS << " nullptr\n };\n"; - OS << " return ArrayRef(Names, (size_t)" << CSRSets.size() - << ");\n"; + if (!CSRSets.empty()) { + OS << " static const char *const Names[] = {\n"; + for (Record *CSRSet : CSRSets) + OS << " " << '"' << CSRSet->getName() << '"' << ",\n"; + OS << " };\n"; + OS << " return makeArrayRef(Names);\n"; + } else { + OS << " return None;\n"; + } OS << "}\n\n"; OS << "const " << TargetName << "FrameLowering *"