diff --git a/mlir/tools/mlir-tblgen/OpDocGen.cpp b/mlir/tools/mlir-tblgen/OpDocGen.cpp --- a/mlir/tools/mlir-tblgen/OpDocGen.cpp +++ b/mlir/tools/mlir-tblgen/OpDocGen.cpp @@ -162,6 +162,16 @@ os << "\n"; } +static void emitTypeDoc(const RecordKeeper &recordKeeper, raw_ostream &os) { + std::vector typeDefs = + recordKeeper.getAllDerivedDefinitions("DialectType"); + + os << "\n"; + os << "## Type constraint definition\n\n"; + for (auto *typeDef : typeDefs) + emitTypeDoc(Type(typeDef), os); +} + //===----------------------------------------------------------------------===// // TypeDef Documentation //===----------------------------------------------------------------------===// @@ -346,6 +356,14 @@ return false; }); +static mlir::GenRegistration + genTypeConstraintRegister("gen-type-constraint-doc", + "Generate dialect type constraint documentation", + [](const RecordKeeper &records, raw_ostream &os) { + emitTypeDoc(records, os); + return false; + }); + static mlir::GenRegistration genRegister("gen-dialect-doc", "Generate dialect documentation", [](const RecordKeeper &records, raw_ostream &os) {