blob: 8a1004df3b5ccef9728b652f86b560f37cabb58c [file] [log] [blame]
//===- DLTIBase.td - Target information dialect base defs ---*- tablegen -*-==//
//
// 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
//
//===----------------------------------------------------------------------===//
#ifndef DLTI_BASE
#define DLTI_BASE
include "mlir/IR/OpBase.td"
def DLTI_Dialect : Dialect {
let name = "dlti";
let cppNamespace = "::mlir";
let hasOperationAttrVerify = 1;
let description = [{
The Data Layout and Target Information (DLTI) dialect is intended to hold
attributes and other components pertaining to descriptions of in-memory
data layout and compilation targets.
}];
let extraClassDeclaration = [{
constexpr const static ::llvm::StringLiteral
kDataLayoutAttrName = "dlti.dl_spec";
constexpr const static ::llvm::StringLiteral
kDataLayoutEndiannessKey = "dlti.endianness";
constexpr const static ::llvm::StringLiteral
kDataLayoutEndiannessBig = "big";
constexpr const static ::llvm::StringLiteral
kDataLayoutEndiannessLittle = "little";
}];
}
def DLTI_DataLayoutEntryAttr : DialectAttr<
DLTI_Dialect,
CPred<"$_self.isa<::mlir::DataLayoutEntryAttr>()">,
"Target data layout entry"> {
let storageType = "::mlir::DataLayoutEntryAttr";
let returnType = "::mlir::DataLayoutEntryAttr";
let convertFromStorage = "$_self";
}
def DLTI_DataLayoutSpecAttr : DialectAttr<
DLTI_Dialect,
CPred<"$_self.isa<::mlir::DataLayoutSpecAttr>()">,
"Target data layout specification"> {
let storageType = "::mlir::DataLayoutSpecAttr";
let returnType = "::mlir::DataLayoutSpecAttr";
let convertFromStorage = "$_self";
}
def HasDefaultDLTIDataLayout : NativeOpTrait<"HasDefaultDLTIDataLayout"> {
let cppNamespace = "::mlir";
}
#endif // DLTI_BASE