[llvm] fcb5905 - [MLIR][TableGen] Minor code cleanup in DirectiveCommonGen (#110290)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 30 10:11:20 PDT 2024
Author: Rahul Joshi
Date: 2024-09-30T10:11:17-07:00
New Revision: fcb5905ea440bbf6ed42d54972074f24e2708e10
URL: https://github.com/llvm/llvm-project/commit/fcb5905ea440bbf6ed42d54972074f24e2708e10
DIFF: https://github.com/llvm/llvm-project/commit/fcb5905ea440bbf6ed42d54972074f24e2708e10.diff
LOG: [MLIR][TableGen] Minor code cleanup in DirectiveCommonGen (#110290)
Directly Use Clause/ClauseVal as loop iterator.
Use llvm::transform instead of std::transform.
Use interleaveComma() to generate comma separated list.
Added:
Modified:
llvm/include/llvm/TableGen/DirectiveEmitter.h
llvm/utils/TableGen/DirectiveEmitter.cpp
mlir/test/mlir-tblgen/directive-common.td
mlir/tools/mlir-tblgen/DirectiveCommonGen.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/TableGen/DirectiveEmitter.h b/llvm/include/llvm/TableGen/DirectiveEmitter.h
index 014a2bc4b88313..70d7d8fbe14f83 100644
--- a/llvm/include/llvm/TableGen/DirectiveEmitter.h
+++ b/llvm/include/llvm/TableGen/DirectiveEmitter.h
@@ -247,7 +247,7 @@ class VersionedClause {
class ClauseVal : public BaseRecord {
public:
- explicit ClauseVal(const Record *Def) : BaseRecord(Def) {}
+ ClauseVal(const Record *Def) : BaseRecord(Def) {}
int getValue() const { return Def->getValueAsInt("value"); }
diff --git a/llvm/utils/TableGen/DirectiveEmitter.cpp b/llvm/utils/TableGen/DirectiveEmitter.cpp
index dc9ed2b08972e2..9dc29d8262fa2c 100644
--- a/llvm/utils/TableGen/DirectiveEmitter.cpp
+++ b/llvm/utils/TableGen/DirectiveEmitter.cpp
@@ -98,10 +98,8 @@ static void GenerateEnumClauseVal(ArrayRef<const Record *> Records,
OS << "\n";
OS << "enum class " << EnumName << " {\n";
- for (const auto &CV : ClauseVals) {
- ClauseVal CVal(CV);
- OS << " " << CV->getName() << "=" << CVal.getValue() << ",\n";
- }
+ for (const ClauseVal CVal : ClauseVals)
+ OS << " " << CVal.getRecordName() << "=" << CVal.getValue() << ",\n";
OS << "};\n";
if (DirLang.hasMakeEnumAvailableInNamespace()) {
diff --git a/mlir/test/mlir-tblgen/directive-common.td b/mlir/test/mlir-tblgen/directive-common.td
index dd86dea36417c0..9429238a03f075 100644
--- a/mlir/test/mlir-tblgen/directive-common.td
+++ b/mlir/test/mlir-tblgen/directive-common.td
@@ -26,7 +26,7 @@ def TDLC_ClauseA : Clause<"clausea"> {
// CHECK: def AKind: I32EnumAttr<
// CHECK: "ClauseAKind",
// CHECK: "AKind Clause",
-// CHECK: [AKindvala,AKindvalb]> {
+// CHECK: [AKindvala, AKindvalb]> {
// CHECK: let cppNamespace = "::mlir::tdl";
// CHECK: }
// CHECK: def AKindAttr : EnumAttr<TDL_Dialect, AKind, "akind">;
diff --git a/mlir/tools/mlir-tblgen/DirectiveCommonGen.cpp b/mlir/tools/mlir-tblgen/DirectiveCommonGen.cpp
index de3e6d8ee8cbc8..26de95fcc57736 100644
--- a/mlir/tools/mlir-tblgen/DirectiveCommonGen.cpp
+++ b/mlir/tools/mlir-tblgen/DirectiveCommonGen.cpp
@@ -54,8 +54,7 @@ static bool emitDecls(const RecordKeeper &recordKeeper, llvm::StringRef dialect,
recordKeeper.getAllDerivedDefinitions("DirectiveLanguage");
assert(!directiveLanguages.empty() && "DirectiveLanguage missing.");
- for (const Record *r : recordKeeper.getAllDerivedDefinitions("Clause")) {
- Clause c{r};
+ for (const Clause c : recordKeeper.getAllDerivedDefinitions("Clause")) {
const auto &clauseVals = c.getClauseVals();
if (clauseVals.empty())
continue;
@@ -65,14 +64,13 @@ static bool emitDecls(const RecordKeeper &recordKeeper, llvm::StringRef dialect,
std::vector<std::string> cvDefs;
for (const auto &it : llvm::enumerate(clauseVals)) {
- ClauseVal cval{it.value()};
+ const ClauseVal cval{it.value()};
if (!cval.isUserVisible())
continue;
std::string name = cval.getFormattedName();
std::string enumValName(name.length(), ' ');
- std::transform(name.begin(), name.end(), enumValName.begin(),
- llvm::toLower);
+ llvm::transform(name, enumValName.begin(), llvm::toLower);
enumValName[0] = llvm::toUpper(enumValName[0]);
std::string cvDef{(enumName + llvm::Twine(name)).str()};
os << "def " << cvDef << " : I32EnumAttrCase<\"" << enumValName << "\", "
@@ -84,11 +82,7 @@ static bool emitDecls(const RecordKeeper &recordKeeper, llvm::StringRef dialect,
os << " \"Clause" << enumName << "\",\n";
os << " \"" << enumName << " Clause\",\n";
os << " [";
- for (unsigned int i = 0; i < cvDefs.size(); i++) {
- os << cvDefs[i];
- if (i != cvDefs.size() - 1)
- os << ",";
- }
+ llvm::interleaveComma(cvDefs, os);
os << "]> {\n";
os << " let cppNamespace = \"::mlir::"
<< directiveLanguages[0]->getValueAsString("cppNamespace") << "\";\n";
More information about the llvm-commits
mailing list