86 lines
2.9 KiB
TableGen
86 lines
2.9 KiB
TableGen
//===- 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 = [{
|
|
// Top-level attribute name for arbitrary description.
|
|
constexpr const static ::llvm::StringLiteral
|
|
kMapAttrName = "dlti.map";
|
|
|
|
// Top-level attribute name for data layout description.
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutAttrName = "dlti.dl_spec";
|
|
|
|
// Top-level attribute name for target system description.
|
|
constexpr const static ::llvm::StringLiteral
|
|
kTargetSystemDescAttrName = "dlti.target_system_spec";
|
|
|
|
// Top-level attribute name for target device description.
|
|
constexpr const static ::llvm::StringLiteral
|
|
kTargetDeviceDescAttrName = "dlti.target_device_spec";
|
|
|
|
// Constants used in entries.
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutEndiannessKey = "dlti.endianness";
|
|
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutEndiannessBig = "big";
|
|
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutEndiannessLittle = "little";
|
|
|
|
// Mangling mode, a.k.a mangling style used to mangle llvm names.
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutManglingModeKey = "dlti.mangling_mode";
|
|
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutDefaultMemorySpaceKey = "dlti.default_memory_space";
|
|
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutAllocaMemorySpaceKey = "dlti.alloca_memory_space";
|
|
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutProgramMemorySpaceKey = "dlti.program_memory_space";
|
|
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutGlobalMemorySpaceKey = "dlti.global_memory_space";
|
|
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutStackAlignmentKey = "dlti.stack_alignment";
|
|
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutFunctionPointerAlignmentKey = "dlti.function_pointer_alignment";
|
|
|
|
constexpr const static ::llvm::StringLiteral
|
|
kDataLayoutLegalIntWidthsKey = "dlti.legal_int_widths";
|
|
}];
|
|
|
|
let useDefaultAttributePrinterParser = 1;
|
|
}
|
|
|
|
def HasDefaultDLTIDataLayout : NativeOpTrait<"HasDefaultDLTIDataLayout"> {
|
|
let cppNamespace = "::mlir";
|
|
}
|
|
|
|
#endif // DLTI_BASE
|