@@ -54,8 +54,7 @@ static bool emitDecls(const RecordKeeper &recordKeeper, llvm::StringRef dialect,
5454 recordKeeper.getAllDerivedDefinitions (" DirectiveLanguage" );
5555 assert (!directiveLanguages.empty () && " DirectiveLanguage missing." );
5656
57- for (const Record *r : recordKeeper.getAllDerivedDefinitions (" Clause" )) {
58- Clause c{r};
57+ for (const Clause c : recordKeeper.getAllDerivedDefinitions (" Clause" )) {
5958 const auto &clauseVals = c.getClauseVals ();
6059 if (clauseVals.empty ())
6160 continue ;
@@ -65,14 +64,13 @@ static bool emitDecls(const RecordKeeper &recordKeeper, llvm::StringRef dialect,
6564
6665 std::vector<std::string> cvDefs;
6766 for (const auto &it : llvm::enumerate (clauseVals)) {
68- ClauseVal cval{it.value ()};
67+ const ClauseVal cval{it.value ()};
6968 if (!cval.isUserVisible ())
7069 continue ;
7170
7271 std::string name = cval.getFormattedName ();
7372 std::string enumValName (name.length (), ' ' );
74- std::transform (name.begin (), name.end (), enumValName.begin (),
75- llvm::toLower);
73+ llvm::transform (name, enumValName.begin (), llvm::toLower);
7674 enumValName[0 ] = llvm::toUpper (enumValName[0 ]);
7775 std::string cvDef{(enumName + llvm::Twine (name)).str ()};
7876 os << " def " << cvDef << " : I32EnumAttrCase<\" " << enumValName << " \" , "
@@ -84,11 +82,7 @@ static bool emitDecls(const RecordKeeper &recordKeeper, llvm::StringRef dialect,
8482 os << " \" Clause" << enumName << " \" ,\n " ;
8583 os << " \" " << enumName << " Clause\" ,\n " ;
8684 os << " [" ;
87- for (unsigned int i = 0 ; i < cvDefs.size (); i++) {
88- os << cvDefs[i];
89- if (i != cvDefs.size () - 1 )
90- os << " ," ;
91- }
85+ llvm::interleaveComma (cvDefs, os);
9286 os << " ]> {\n " ;
9387 os << " let cppNamespace = \" ::mlir::"
9488 << directiveLanguages[0 ]->getValueAsString (" cppNamespace" ) << " \" ;\n " ;
0 commit comments