//===- TypeDetail.h - MLIR Type storage details -----------------*- 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 holds implementation details of Type. // //===----------------------------------------------------------------------===// #ifndef TYPEDETAIL_H_ #define TYPEDETAIL_H_ #include "mlir/IR/AffineMap.h" #include "mlir/IR/BuiltinTypes.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/OperationSupport.h" #include "mlir/IR/TypeRange.h" #include "llvm/ADT/bit.h" #include "llvm/Support/TrailingObjects.h" namespace mlir { namespace detail { /// Integer Type Storage and Uniquing. struct IntegerTypeStorage : public TypeStorage { … }; /// Function Type Storage and Uniquing. struct FunctionTypeStorage : public TypeStorage { … }; /// A type representing a collection of other types. struct TupleTypeStorage final : public TypeStorage, public llvm::TrailingObjects<TupleTypeStorage, Type> { … }; /// Checks if the memorySpace has supported Attribute type. bool isSupportedMemorySpace(Attribute memorySpace); /// Wraps deprecated integer memory space to the new Attribute form. Attribute wrapIntegerMemorySpace(unsigned memorySpace, MLIRContext *ctx); /// Replaces default memorySpace (integer == `0`) with empty Attribute. Attribute skipDefaultMemorySpace(Attribute memorySpace); /// [deprecated] Returns the memory space in old raw integer representation. /// New `Attribute getMemorySpace()` method should be used instead. unsigned getMemorySpaceAsInt(Attribute memorySpace); } // namespace detail } // namespace mlir #endif // TYPEDETAIL_H_