llvm-project/mlir/test/lib
Jeff Niu e179532284 [mlir] Remove types from attributes
This patch removes the `type` field from `Attribute` along with the
`Attribute::getType` accessor.

Going forward, this means that attributes in MLIR will no longer have
types as a first-class concept. This patch lays the groundwork to
incrementally remove or refactor code that relies on generic attributes
being typed. The immediate impact will be on attributes that rely on
`Attribute` containing a type, such as `IntegerAttr`,
`DenseElementsAttr`, and `ml_program::ExternAttr`, which will now need
to define a type parameter on their storage classes. This will save
memory as all other attribute kinds will no longer contain a type.

Moreover, it will not be possible to generically query the type of an
attribute directly. This patch provides an attribute interface
`TypedAttr` that implements only one method, `getType`, which can be
used to generically query the types of attributes that implement the
interface. This interface can be used to retain the concept of a "typed
attribute". The ODS-generated accessor for a `type` parameter
automatically implements this method.

Next steps will be to refactor the assembly formats of certain operations
that rely on `parseAttribute(type)` and `printAttributeWithoutType` to
remove special handling of type elision until `type` can be removed from
the dialect parsing hook entirely; and incrementally remove uses of
`TypedAttr`.

Reviewed By: lattner, rriddle, jpienaar

Differential Revision: https://reviews.llvm.org/D130092
2022-07-31 20:01:31 -04:00
..
Analysis [mlir] Use value instead of getValue (NFC) 2022-07-14 00:19:59 -07:00
Conversion [mlir] (NFC) Clean up bazel and CMake target names 2022-06-13 16:24:15 +00:00
Dialect [mlir] Remove types from attributes 2022-07-31 20:01:31 -04:00
IR [mlir] remove unnecessary statements in test 2022-07-15 18:57:07 -07:00
Interfaces [mlir][TilingInterface] Add a method to generate scalar implementation of the op. 2022-07-28 16:37:15 +00:00
Pass [mlir] Fixed ordering of pass statistics. 2022-07-19 15:52:02 -07:00
Reducer [mlir] Rework the implementation of TypeID 2022-04-04 13:52:26 -07:00
Rewrite [mlir:PDL] Expand how native constraint/rewrite functions can be defined 2022-04-06 17:41:59 -07:00
Tools [mlir] Use context provided rather than getContext 2022-06-04 12:18:51 -07:00
Transforms [MLIR] Add a utility to sort the operands of commutative ops 2022-07-30 19:25:18 -04:00
CMakeLists.txt [mlir][TilingInterface] Add pattern to tile using TilingInterface and implement TilingInterface for Linalg ops. 2022-06-13 20:37:44 +00:00