[mlir] Add support for generating Attribute classes for ODS
authorRiver Riddle <riddleriver@gmail.com>
Thu, 4 Mar 2021 00:37:32 +0000 (16:37 -0800)
committerRiver Riddle <riddleriver@gmail.com>
Thu, 4 Mar 2021 00:41:49 +0000 (16:41 -0800)
commit83ef862fad6b14dd1651f5e31e331eb89a95f0ff
tree609b2b4838b4fe7f5d98b6f3301ef52efd485f49
parent201ebf211f9772ef19abac82170b9b06fe2ccf2b
[mlir] Add support for generating Attribute classes for ODS

The support for attributes closely maps that of Types (basically 1-1) given that Attributes are defined in exactly the same way as Types. All of the current ODS TypeDef classes get an Attr equivalent. The generation of the attribute classes themselves share the same generator as types.

Differential Revision: https://reviews.llvm.org/D97589
19 files changed:
mlir/include/mlir/IR/OpBase.td
mlir/include/mlir/TableGen/AttrOrTypeDef.h [moved from mlir/include/mlir/TableGen/TypeDef.h with 54% similarity]
mlir/include/mlir/TableGen/CodeGenHelpers.h
mlir/lib/TableGen/AttrOrTypeDef.cpp [new file with mode: 0644]
mlir/lib/TableGen/CMakeLists.txt
mlir/lib/TableGen/TypeDef.cpp [deleted file]
mlir/test/lib/Dialect/Test/CMakeLists.txt
mlir/test/lib/Dialect/Test/TestAttrDefs.td [new file with mode: 0644]
mlir/test/lib/Dialect/Test/TestAttributes.cpp [new file with mode: 0644]
mlir/test/lib/Dialect/Test/TestAttributes.h [new file with mode: 0644]
mlir/test/lib/Dialect/Test/TestDialect.cpp
mlir/test/lib/Dialect/Test/TestOps.td
mlir/test/mlir-tblgen/attrdefs.td [new file with mode: 0644]
mlir/test/mlir-tblgen/testdialect-attrdefs.mlir [new file with mode: 0644]
mlir/test/mlir-tblgen/typedefs.td
mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp [new file with mode: 0644]
mlir/tools/mlir-tblgen/CMakeLists.txt
mlir/tools/mlir-tblgen/OpDocGen.cpp
mlir/tools/mlir-tblgen/TypeDefGen.cpp [deleted file]