Skip to content

Commit

Permalink
Restructure the Test dialect ODS to include the AttrDef in TestOps.td…
Browse files Browse the repository at this point in the history
… (NFC)

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

Differential Revision: https://reviews.llvm.org/D113327
  • Loading branch information
joker-eph committed Nov 10, 2021
1 parent 3eabcda commit 9d506ae
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 7 deletions.
2 changes: 1 addition & 1 deletion mlir/test/lib/Dialect/Test/CMakeLists.txt
Expand Up @@ -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)
Expand Down
1 change: 1 addition & 0 deletions mlir/test/lib/Dialect/Test/TestDialect.h
Expand Up @@ -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"
Expand Down
14 changes: 9 additions & 5 deletions mlir/test/lib/Dialect/Test/TestOps.td
Expand Up @@ -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;
Expand All @@ -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>;

Expand Down Expand Up @@ -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

Expand Down
7 changes: 7 additions & 0 deletions mlir/test/mlir-tblgen/op-format.mlir
Expand Up @@ -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
//===----------------------------------------------------------------------===//
Expand Down
2 changes: 1 addition & 1 deletion utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Expand Up @@ -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",
Expand Down

0 comments on commit 9d506ae

Please sign in to comment.