diff --git a/llvm/utils/TableGen/OptParserEmitter.cpp b/llvm/utils/TableGen/OptParserEmitter.cpp --- a/llvm/utils/TableGen/OptParserEmitter.cpp +++ b/llvm/utils/TableGen/OptParserEmitter.cpp @@ -219,9 +219,8 @@ PrefixesT Prefixes; Prefixes.insert(std::make_pair(PrefixKeyT(), "prefix_0")); unsigned CurPrefix = 0; - for (unsigned i = 0, e = Opts.size(); i != e; ++i) { - const Record &R = *Opts[i]; - std::vector prf = R.getValueAsListOfStrings("Prefixes"); + for (const Record *R : Opts) { + std::vector prf = R->getValueAsListOfStrings("Prefixes"); PrefixKeyT prfkey(prf.begin(), prf.end()); unsigned NewPrefix = CurPrefix + 1; if (Prefixes.insert(std::make_pair(prfkey, (Twine("prefix_") + @@ -235,18 +234,16 @@ OS << "// Prefixes\n\n"; OS << "#ifdef PREFIX\n"; OS << "#define COMMA ,\n"; - for (PrefixesT::const_iterator I = Prefixes.begin(), E = Prefixes.end(); - I != E; ++I) { + for (auto PrefixIt : Prefixes) { OS << "PREFIX("; // Prefix name. - OS << I->second; + OS << PrefixIt.second; // Prefix values. OS << ", {"; - for (PrefixKeyT::const_iterator PI = I->first.begin(), - PE = I->first.end(); PI != PE; ++PI) { - OS << "\"" << *PI << "\" COMMA "; + for (const SmallString<2> &PrefixKey : PrefixIt.first) { + OS << "\"" << PrefixKey << "\" COMMA "; } OS << "nullptr})\n"; } @@ -256,9 +253,7 @@ OS << "/////////\n"; OS << "// Groups\n\n"; OS << "#ifdef OPTION\n"; - for (unsigned i = 0, e = Groups.size(); i != e; ++i) { - const Record &R = *Groups[i]; - + for (const Record *R : Groups) { // Start a single option entry. OS << "OPTION("; @@ -266,17 +261,17 @@ OS << "nullptr"; // The option string. - OS << ", \"" << R.getValueAsString("Name") << '"'; + OS << ", \"" << R->getValueAsString("Name") << '"'; // The option identifier name. - OS << ", " << getOptionName(R); + OS << ", " << getOptionName(*R); // The option kind. OS << ", Group"; // The containing option group (if any). OS << ", "; - if (const DefInit *DI = dyn_cast(R.getValueInit("Group"))) + if (const DefInit *DI = dyn_cast(R->getValueInit("Group"))) OS << getOptionName(*DI->getDef()); else OS << "INVALID"; @@ -285,10 +280,10 @@ OS << ", INVALID, nullptr, 0, 0"; // The option help text. - if (!isa(R.getValueInit("HelpText"))) { + if (!isa(R->getValueInit("HelpText"))) { OS << ",\n"; OS << " "; - write_cstring(OS, R.getValueAsString("HelpText")); + write_cstring(OS, R->getValueAsString("HelpText")); } else OS << ", nullptr"; @@ -343,8 +338,8 @@ OS << "nullptr"; } else { OS << "\""; - for (size_t i = 0, e = AliasArgs.size(); i != e; ++i) - OS << AliasArgs[i] << "\\0"; + for (const StringRef &AliasArg : AliasArgs) + OS << AliasArg << "\\0"; OS << "\""; } @@ -394,15 +389,13 @@ }; std::vector OptsWithMarshalling; - for (unsigned I = 0, E = Opts.size(); I != E; ++I) { - const Record &R = *Opts[I]; - + for (const Record *R : Opts) { // Start a single option entry. OS << "OPTION("; - WriteOptRecordFields(OS, R); + WriteOptRecordFields(OS, *R); OS << ")\n"; - if (IsMarshallingOption(R)) - OptsWithMarshalling.push_back(&R); + if (IsMarshallingOption(*R)) + OptsWithMarshalling.push_back(R); } OS << "#endif // OPTION\n"; @@ -462,18 +455,17 @@ OS << "#ifdef OPTTABLE_ARG_INIT\n"; OS << "//////////\n"; OS << "// Option Values\n\n"; - for (unsigned I = 0, E = Opts.size(); I != E; ++I) { - const Record &R = *Opts[I]; - if (isa(R.getValueInit("ValuesCode"))) + for (const Record *R : Opts) { + if (isa(R->getValueInit("ValuesCode"))) continue; OS << "{\n"; OS << "bool ValuesWereAdded;\n"; - OS << R.getValueAsString("ValuesCode"); + OS << R->getValueAsString("ValuesCode"); OS << "\n"; - for (StringRef Prefix : R.getValueAsListOfStrings("Prefixes")) { + for (StringRef Prefix : R->getValueAsListOfStrings("Prefixes")) { OS << "ValuesWereAdded = Opt.addValues("; std::string S(Prefix); - S += R.getValueAsString("Name"); + S += R->getValueAsString("Name"); write_cstring(OS, S); OS << ", Values);\n"; OS << "(void)ValuesWereAdded;\n";