Files
gps/tools/local/circt/include/mlir/Dialect/XeGPU/IR/XeGPUEnums.h.inc
T
2026-07-12 11:01:51 +03:00

296 lines
10 KiB
C++

/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Enum Utility Declarations *|
|* *|
|* Automatically generated file, do not edit! *|
|* From: XeGPUAttrs.td *|
|* *|
\*===----------------------------------------------------------------------===*/
namespace mlir::xegpu {
// Cache policy
enum class CachePolicy : uint32_t {
CACHED = 0,
UNCACHED = 1,
STREAMING = 2,
READ_INVALIDATE = 3,
WRITE_BACK = 4,
WRITE_THROUGH = 5,
};
::std::optional<CachePolicy> symbolizeCachePolicy(uint32_t);
::llvm::StringRef stringifyCachePolicy(CachePolicy);
::std::optional<CachePolicy> symbolizeCachePolicy(::llvm::StringRef);
inline constexpr unsigned getMaxEnumValForCachePolicy() {
return 5;
}
inline ::llvm::StringRef stringifyEnum(CachePolicy enumValue) {
return stringifyCachePolicy(enumValue);
}
template <typename EnumType>
::std::optional<EnumType> symbolizeEnum(::llvm::StringRef);
template <>
inline ::std::optional<CachePolicy> symbolizeEnum<CachePolicy>(::llvm::StringRef str) {
return symbolizeCachePolicy(str);
}
} // namespace mlir::xegpu
namespace mlir {
template <typename T, typename>
struct FieldParser;
template<>
struct FieldParser<::mlir::xegpu::CachePolicy, ::mlir::xegpu::CachePolicy> {
template <typename ParserT>
static FailureOr<::mlir::xegpu::CachePolicy> parse(ParserT &parser) {
// Parse the keyword/string containing the enum.
std::string enumKeyword;
auto loc = parser.getCurrentLocation();
if (failed(parser.parseOptionalKeywordOrString(&enumKeyword)))
return parser.emitError(loc, "expected keyword for Cache policy");
// Symbolize the keyword.
if (::std::optional<::mlir::xegpu::CachePolicy> attr = ::mlir::xegpu::symbolizeEnum<::mlir::xegpu::CachePolicy>(enumKeyword))
return *attr;
return parser.emitError(loc, "expected one of [cached, uncached, streaming, read_invalidate, write_back, write_through] for Cache policy, got: ") << enumKeyword;
}
};
/// Support for std::optional, useful in attribute/type definition where the enum is
/// used as:
///
/// let parameters = (ins OptionalParameter<"std::optional<TheEnumName>">:$value);
template<>
struct FieldParser<std::optional<::mlir::xegpu::CachePolicy>, std::optional<::mlir::xegpu::CachePolicy>> {
template <typename ParserT>
static FailureOr<std::optional<::mlir::xegpu::CachePolicy>> parse(ParserT &parser) {
// Parse the keyword/string containing the enum.
std::string enumKeyword;
auto loc = parser.getCurrentLocation();
if (failed(parser.parseOptionalKeywordOrString(&enumKeyword, {"cached", "uncached", "streaming", "read_invalidate", "write_back", "write_through"})))
return std::optional<::mlir::xegpu::CachePolicy>{};
// Symbolize the keyword.
if (::std::optional<::mlir::xegpu::CachePolicy> attr = ::mlir::xegpu::symbolizeEnum<::mlir::xegpu::CachePolicy>(enumKeyword))
return attr;
return parser.emitError(loc, "expected one of [cached, uncached, streaming, read_invalidate, write_back, write_through] for Cache policy, got: ") << enumKeyword;
}
};
} // namespace mlir
namespace llvm {
inline ::llvm::raw_ostream &operator<<(::llvm::raw_ostream &p, ::mlir::xegpu::CachePolicy value) {
auto valueStr = stringifyEnum(value);
return p << valueStr;
}
} // namespace llvm
namespace llvm {
template<> struct DenseMapInfo<::mlir::xegpu::CachePolicy> {
using StorageInfo = ::llvm::DenseMapInfo<uint32_t>;
static unsigned getHashValue(const ::mlir::xegpu::CachePolicy &val) {
return StorageInfo::getHashValue(static_cast<uint32_t>(val));
}
static bool isEqual(const ::mlir::xegpu::CachePolicy &lhs, const ::mlir::xegpu::CachePolicy &rhs) {
return lhs == rhs;
}
};
}
namespace mlir::xegpu {
// The enumeration for the scope of fence operation.
enum class FenceScope : uint32_t {
Workgroup = 0,
GPU = 1,
};
::std::optional<FenceScope> symbolizeFenceScope(uint32_t);
::llvm::StringRef stringifyFenceScope(FenceScope);
::std::optional<FenceScope> symbolizeFenceScope(::llvm::StringRef);
inline constexpr unsigned getMaxEnumValForFenceScope() {
return 1;
}
inline ::llvm::StringRef stringifyEnum(FenceScope enumValue) {
return stringifyFenceScope(enumValue);
}
template <typename EnumType>
::std::optional<EnumType> symbolizeEnum(::llvm::StringRef);
template <>
inline ::std::optional<FenceScope> symbolizeEnum<FenceScope>(::llvm::StringRef str) {
return symbolizeFenceScope(str);
}
} // namespace mlir::xegpu
namespace mlir {
template <typename T, typename>
struct FieldParser;
template<>
struct FieldParser<::mlir::xegpu::FenceScope, ::mlir::xegpu::FenceScope> {
template <typename ParserT>
static FailureOr<::mlir::xegpu::FenceScope> parse(ParserT &parser) {
// Parse the keyword/string containing the enum.
std::string enumKeyword;
auto loc = parser.getCurrentLocation();
if (failed(parser.parseOptionalKeywordOrString(&enumKeyword)))
return parser.emitError(loc, "expected keyword for The enumeration for the scope of fence operation.");
// Symbolize the keyword.
if (::std::optional<::mlir::xegpu::FenceScope> attr = ::mlir::xegpu::symbolizeEnum<::mlir::xegpu::FenceScope>(enumKeyword))
return *attr;
return parser.emitError(loc, "expected one of [workgroup, gpu] for The enumeration for the scope of fence operation., got: ") << enumKeyword;
}
};
/// Support for std::optional, useful in attribute/type definition where the enum is
/// used as:
///
/// let parameters = (ins OptionalParameter<"std::optional<TheEnumName>">:$value);
template<>
struct FieldParser<std::optional<::mlir::xegpu::FenceScope>, std::optional<::mlir::xegpu::FenceScope>> {
template <typename ParserT>
static FailureOr<std::optional<::mlir::xegpu::FenceScope>> parse(ParserT &parser) {
// Parse the keyword/string containing the enum.
std::string enumKeyword;
auto loc = parser.getCurrentLocation();
if (failed(parser.parseOptionalKeywordOrString(&enumKeyword, {"workgroup", "gpu"})))
return std::optional<::mlir::xegpu::FenceScope>{};
// Symbolize the keyword.
if (::std::optional<::mlir::xegpu::FenceScope> attr = ::mlir::xegpu::symbolizeEnum<::mlir::xegpu::FenceScope>(enumKeyword))
return attr;
return parser.emitError(loc, "expected one of [workgroup, gpu] for The enumeration for the scope of fence operation., got: ") << enumKeyword;
}
};
} // namespace mlir
namespace llvm {
inline ::llvm::raw_ostream &operator<<(::llvm::raw_ostream &p, ::mlir::xegpu::FenceScope value) {
auto valueStr = stringifyEnum(value);
return p << valueStr;
}
} // namespace llvm
namespace llvm {
template<> struct DenseMapInfo<::mlir::xegpu::FenceScope> {
using StorageInfo = ::llvm::DenseMapInfo<uint32_t>;
static unsigned getHashValue(const ::mlir::xegpu::FenceScope &val) {
return StorageInfo::getHashValue(static_cast<uint32_t>(val));
}
static bool isEqual(const ::mlir::xegpu::FenceScope &lhs, const ::mlir::xegpu::FenceScope &rhs) {
return lhs == rhs;
}
};
}
namespace mlir::xegpu {
// The address space of the memory the tensor descritor is created for
enum class MemorySpace : uint32_t {
Global = 0,
SLM = 3,
};
::std::optional<MemorySpace> symbolizeMemorySpace(uint32_t);
::llvm::StringRef stringifyMemorySpace(MemorySpace);
::std::optional<MemorySpace> symbolizeMemorySpace(::llvm::StringRef);
inline constexpr unsigned getMaxEnumValForMemorySpace() {
return 3;
}
inline ::llvm::StringRef stringifyEnum(MemorySpace enumValue) {
return stringifyMemorySpace(enumValue);
}
template <typename EnumType>
::std::optional<EnumType> symbolizeEnum(::llvm::StringRef);
template <>
inline ::std::optional<MemorySpace> symbolizeEnum<MemorySpace>(::llvm::StringRef str) {
return symbolizeMemorySpace(str);
}
} // namespace mlir::xegpu
namespace mlir {
template <typename T, typename>
struct FieldParser;
template<>
struct FieldParser<::mlir::xegpu::MemorySpace, ::mlir::xegpu::MemorySpace> {
template <typename ParserT>
static FailureOr<::mlir::xegpu::MemorySpace> parse(ParserT &parser) {
// Parse the keyword/string containing the enum.
std::string enumKeyword;
auto loc = parser.getCurrentLocation();
if (failed(parser.parseOptionalKeywordOrString(&enumKeyword)))
return parser.emitError(loc, "expected keyword for The address space of the memory the tensor descritor is created for");
// Symbolize the keyword.
if (::std::optional<::mlir::xegpu::MemorySpace> attr = ::mlir::xegpu::symbolizeEnum<::mlir::xegpu::MemorySpace>(enumKeyword))
return *attr;
return parser.emitError(loc, "expected one of [global, slm] for The address space of the memory the tensor descritor is created for, got: ") << enumKeyword;
}
};
/// Support for std::optional, useful in attribute/type definition where the enum is
/// used as:
///
/// let parameters = (ins OptionalParameter<"std::optional<TheEnumName>">:$value);
template<>
struct FieldParser<std::optional<::mlir::xegpu::MemorySpace>, std::optional<::mlir::xegpu::MemorySpace>> {
template <typename ParserT>
static FailureOr<std::optional<::mlir::xegpu::MemorySpace>> parse(ParserT &parser) {
// Parse the keyword/string containing the enum.
std::string enumKeyword;
auto loc = parser.getCurrentLocation();
if (failed(parser.parseOptionalKeywordOrString(&enumKeyword, {"global", "slm"})))
return std::optional<::mlir::xegpu::MemorySpace>{};
// Symbolize the keyword.
if (::std::optional<::mlir::xegpu::MemorySpace> attr = ::mlir::xegpu::symbolizeEnum<::mlir::xegpu::MemorySpace>(enumKeyword))
return attr;
return parser.emitError(loc, "expected one of [global, slm] for The address space of the memory the tensor descritor is created for, got: ") << enumKeyword;
}
};
} // namespace mlir
namespace llvm {
inline ::llvm::raw_ostream &operator<<(::llvm::raw_ostream &p, ::mlir::xegpu::MemorySpace value) {
auto valueStr = stringifyEnum(value);
return p << valueStr;
}
} // namespace llvm
namespace llvm {
template<> struct DenseMapInfo<::mlir::xegpu::MemorySpace> {
using StorageInfo = ::llvm::DenseMapInfo<uint32_t>;
static unsigned getHashValue(const ::mlir::xegpu::MemorySpace &val) {
return StorageInfo::getHashValue(static_cast<uint32_t>(val));
}
static bool isEqual(const ::mlir::xegpu::MemorySpace &lhs, const ::mlir::xegpu::MemorySpace &rhs) {
return lhs == rhs;
}
};
}