[mlir] Add isa/dyn_cast support for dialect interfaces
authorRiver Riddle <riddleriver@gmail.com>
Fri, 21 Jan 2022 08:38:30 +0000 (00:38 -0800)
committerRiver Riddle <riddleriver@gmail.com>
Tue, 1 Feb 2022 03:24:34 +0000 (19:24 -0800)
commit58e7bf78a3ef724b70304912fb3bb66af8c4a10c
treedfebb38e72d08c13378438a9a5541a0106c59770
parent51ed14d22430bed0d191e01f7efeae59b1aee5e0
[mlir] Add isa/dyn_cast support for dialect interfaces

This matches the same API usage as attributes/ops/types. For example:

```c++
Dialect *dialect = ...;

// Instead of this:
if (auto *interface = dialect->getRegisteredInterface<DialectInlinerInterface>())

// You can do this:
if (auto *interface = dyn_cast<DialectInlinerInterface>(dialect))
```

Differential Revision: https://reviews.llvm.org/D117859
mlir/docs/Interfaces.md
mlir/include/mlir/IR/Dialect.h
mlir/lib/Dialect/DLTI/DLTI.cpp
mlir/lib/IR/BuiltinAttributes.cpp
mlir/lib/IR/Operation.cpp
mlir/lib/Interfaces/DataLayoutInterfaces.cpp
mlir/unittests/IR/DialectTest.cpp