It may be desirable to provide an interface implementation for an attribute or a type without modifying the definition of said attribute or type. Notably, this allows to implement interfaces for attributes and types outside of the dialect that defines them and, in particular, provide interfaces for built-in types. Provide the mechanism to do so. Currently, separable registration requires the attribute or type to have been registered with the context, i.e. for the dialect containing the attribute or type to be loaded. This can be relaxed in the future using a mechanism similar to delayed dialect interface registration. See https://llvm.discourse.group/t/rfc-separable-attribute-type-interfaces/3637 Depends On D104233 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D104234
30 lines
898 B
C++
30 lines
898 B
C++
//===- TestTypes.h - MLIR Test Dialect Types --------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains types defined by the TestDialect for testing various
|
|
// features of MLIR.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef MLIR_TESTATTRIBUTES_H
|
|
#define MLIR_TESTATTRIBUTES_H
|
|
|
|
#include <tuple>
|
|
|
|
#include "mlir/IR/Attributes.h"
|
|
#include "mlir/IR/Diagnostics.h"
|
|
#include "mlir/IR/Dialect.h"
|
|
#include "mlir/IR/DialectImplementation.h"
|
|
|
|
#include "TestAttrInterfaces.h.inc"
|
|
|
|
#define GET_ATTRDEF_CLASSES
|
|
#include "TestAttrDefs.h.inc"
|
|
|
|
#endif // MLIR_TESTATTRIBUTES_H
|