Restructure the Test dialect ODS to include the AttrDef in TestOps.td (NFC)

This structure is necessary to be able to use AttrDef as arguments on operations.

Differential Revision: https://reviews.llvm.org/D113327
This commit is contained in:
Mehdi Amini 2021-11-06 07:14:02 +00:00
parent 3eabcda814
commit 9d506ae0f6
5 changed files with 19 additions and 7 deletions

View File

@ -13,7 +13,7 @@ mlir_tablegen(TestOpInterfaces.h.inc -gen-op-interface-decls)
mlir_tablegen(TestOpInterfaces.cpp.inc -gen-op-interface-defs)
add_public_tablegen_target(MLIRTestInterfaceIncGen)
set(LLVM_TARGET_DEFINITIONS TestAttrDefs.td)
set(LLVM_TARGET_DEFINITIONS TestOps.td)
mlir_tablegen(TestAttrDefs.h.inc -gen-attrdef-decls)
mlir_tablegen(TestAttrDefs.cpp.inc -gen-attrdef-defs)
add_public_tablegen_target(MLIRTestAttrDefIncGen)

View File

@ -14,6 +14,7 @@
#ifndef MLIR_TESTDIALECT_H
#define MLIR_TESTDIALECT_H
#include "TestAttributes.h"
#include "TestInterfaces.h"
#include "mlir/Dialect/DLTI/DLTI.h"
#include "mlir/Dialect/DLTI/Traits.h"

View File

@ -40,11 +40,6 @@ def Test_Dialect : Dialect {
void registerAttributes();
void registerTypes();
::mlir::Attribute parseAttribute(::mlir::DialectAsmParser &parser,
::mlir::Type type) const override;
void printAttribute(::mlir::Attribute attr,
::mlir::DialectAsmPrinter &printer) const override;
// Provides a custom printing/parsing for some operations.
::llvm::Optional<ParseOpHook>
getParseOperationHook(::llvm::StringRef opName) const override;
@ -59,6 +54,10 @@ def Test_Dialect : Dialect {
}];
}
// Include the attribute definitions.
include "TestAttrDefs.td"
class TEST_Op<string mnemonic, list<OpTrait> traits = []> :
Op<Test_Dialect, mnemonic, traits>;
@ -1897,6 +1896,11 @@ def FormatOptionalWithElse : TEST_Op<"format_optional_else"> {
let assemblyFormat = "(`then` $isFirstBranchPresent^):(`else`)? attr-dict";
}
def FormatCompoundAttr : TEST_Op<"format_compound_attr"> {
let arguments = (ins CompoundAttrA:$compound);
let assemblyFormat = "$compound attr-dict-with-keyword";
}
//===----------------------------------------------------------------------===//
// Custom Directives

View File

@ -252,6 +252,13 @@ test.format_optional_else then
// CHECK: test.format_optional_else else
test.format_optional_else else
//===----------------------------------------------------------------------===//
// Format a custom attribute
//===----------------------------------------------------------------------===//
// CHECK: test.format_compound_attr #test.cmpnd_a<1, !test.smpla, [5, 6]>
test.format_compound_attr #test.cmpnd_a<1, !test.smpla, [5, 6]>
//===----------------------------------------------------------------------===//
// Format custom directives
//===----------------------------------------------------------------------===//

View File

@ -155,7 +155,7 @@ gentbl_cc_library(
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "lib/Dialect/Test/TestAttrDefs.td",
td_file = "lib/Dialect/Test/TestOps.td",
test = True,
deps = [
":TestOpTdFiles",