summaryrefslogtreecommitdiffstats
path: root/mlir/lib/TableGen/Dialect.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/TableGen/Dialect.cpp')
-rw-r--r--mlir/lib/TableGen/Dialect.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/mlir/lib/TableGen/Dialect.cpp b/mlir/lib/TableGen/Dialect.cpp
new file mode 100644
index 00000000000..d9e8e2f7154
--- /dev/null
+++ b/mlir/lib/TableGen/Dialect.cpp
@@ -0,0 +1,54 @@
+//===- Dialect.cpp - Dialect wrapper class --------------------------------===//
+//
+// Part of the MLIR Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// Dialect wrapper to simplify using TableGen Record defining a MLIR dialect.
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/TableGen/Dialect.h"
+#include "llvm/TableGen/Record.h"
+
+namespace mlir {
+namespace tblgen {
+
+StringRef tblgen::Dialect::getName() const {
+ return def->getValueAsString("name");
+}
+
+StringRef tblgen::Dialect::getCppNamespace() const {
+ return def->getValueAsString("cppNamespace");
+}
+
+static StringRef getAsStringOrEmpty(const llvm::Record &record,
+ StringRef fieldName) {
+ if (auto valueInit = record.getValueInit(fieldName)) {
+ if (llvm::isa<llvm::CodeInit>(valueInit) ||
+ llvm::isa<llvm::StringInit>(valueInit))
+ return record.getValueAsString(fieldName);
+ }
+ return "";
+}
+
+StringRef tblgen::Dialect::getSummary() const {
+ return getAsStringOrEmpty(*def, "summary");
+}
+
+StringRef tblgen::Dialect::getDescription() const {
+ return getAsStringOrEmpty(*def, "description");
+}
+
+bool Dialect::operator==(const Dialect &other) const {
+ return def == other.def;
+}
+
+bool Dialect::operator<(const Dialect &other) const {
+ return getName() < other.getName();
+}
+
+} // end namespace tblgen
+} // end namespace mlir
OpenPOWER on IntegriCloud