MLIR 22.0.0git
Traits.cpp
Go to the documentation of this file.
1//===- Traits.cpp - Traits for MLIR DLTI dialect --------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
12
13using namespace mlir;
14
16 // TODO: consider having trait inheritance so that HasDefaultDLTIDataLayout
17 // trait can inherit DataLayoutOpInterface::Trait and enforce the validity of
18 // the assertion below.
19 assert(
20 isa<DataLayoutOpInterface>(op) &&
21 "HasDefaultDLTIDataLayout trait unexpectedly attached to an op that does "
22 "not implement DataLayoutOpInterface");
23 return success();
24}
25
26DataLayoutSpecInterface mlir::impl::getDataLayoutSpec(Operation *op) {
27 return op->getAttrOfType<DataLayoutSpecInterface>(
28 DLTIDialect::kDataLayoutAttrName);
29}
30
31TargetSystemSpecInterface mlir::impl::getTargetSystemSpec(Operation *op) {
32 return op->getAttrOfType<TargetSystemSpecAttr>(
33 DLTIDialect::kTargetSystemDescAttrName);
34}
return success()
Operation is the basic unit of execution within MLIR.
Definition Operation.h:88
AttrClass getAttrOfType(StringAttr name)
Definition Operation.h:550
DataLayoutSpecInterface getDataLayoutSpec(Operation *op)
Definition Traits.cpp:26
TargetSystemSpecInterface getTargetSystemSpec(Operation *op)
Definition Traits.cpp:31
LogicalResult verifyHasDefaultDLTIDataLayoutTrait(Operation *op)
Definition Traits.cpp:15
Include the generated interface declarations.