#ifndef MLIR_DIALECT_SPIRV_IR_SPIRVTYPES_H_
#define MLIR_DIALECT_SPIRV_IR_SPIRVTYPES_H_
#include "mlir/Dialect/SPIRV/IR/SPIRVEnums.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Diagnostics.h"
#include "mlir/IR/Location.h"
#include "mlir/IR/TypeSupport.h"
#include "mlir/IR/Types.h"
#include <cstdint>
#include <tuple>
namespace mlir {
namespace spirv {
namespace detail {
struct ArrayTypeStorage;
struct CooperativeMatrixTypeStorage;
struct ImageTypeStorage;
struct MatrixTypeStorage;
struct PointerTypeStorage;
struct RuntimeArrayTypeStorage;
struct SampledImageTypeStorage;
struct StructTypeStorage;
}
class SPIRVType : public Type { … };
class ScalarType : public SPIRVType { … };
class CompositeType : public SPIRVType { … };
class ArrayType : public Type::TypeBase<ArrayType, CompositeType,
detail::ArrayTypeStorage> { … };
class ImageType
: public Type::TypeBase<ImageType, SPIRVType, detail::ImageTypeStorage> { … };
class PointerType : public Type::TypeBase<PointerType, SPIRVType,
detail::PointerTypeStorage> { … };
class RuntimeArrayType
: public Type::TypeBase<RuntimeArrayType, SPIRVType,
detail::RuntimeArrayTypeStorage> { … };
class SampledImageType
: public Type::TypeBase<SampledImageType, SPIRVType,
detail::SampledImageTypeStorage> { … };
class StructType
: public Type::TypeBase<StructType, CompositeType,
detail::StructTypeStorage, TypeTrait::IsMutable> { … };
llvm::hash_code
hash_value(const StructType::MemberDecorationInfo &memberDecorationInfo);
class CooperativeMatrixType
: public Type::TypeBase<CooperativeMatrixType, CompositeType,
detail::CooperativeMatrixTypeStorage> { … };
class MatrixType : public Type::TypeBase<MatrixType, CompositeType,
detail::MatrixTypeStorage> { … };
}
}
#endif