#include "mlir/Dialect/SPIRV/IR/TargetAndABI.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVEnums.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVTypes.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/Operation.h"
#include "mlir/IR/SymbolTable.h"
#include "mlir/Interfaces/FunctionInterfaces.h"
#include <optional>
usingnamespacemlir;
spirv::TargetEnv::TargetEnv(spirv::TargetEnvAttr targetAttr)
: … { … }
spirv::Version spirv::TargetEnv::getVersion() const { … }
bool spirv::TargetEnv::allows(spirv::Capability capability) const { … }
std::optional<spirv::Capability>
spirv::TargetEnv::allows(ArrayRef<spirv::Capability> caps) const { … }
bool spirv::TargetEnv::allows(spirv::Extension extension) const { … }
std::optional<spirv::Extension>
spirv::TargetEnv::allows(ArrayRef<spirv::Extension> exts) const { … }
spirv::Vendor spirv::TargetEnv::getVendorID() const { … }
spirv::DeviceType spirv::TargetEnv::getDeviceType() const { … }
uint32_t spirv::TargetEnv::getDeviceID() const { … }
spirv::ResourceLimitsAttr spirv::TargetEnv::getResourceLimits() const { … }
MLIRContext *spirv::TargetEnv::getContext() const { … }
StringRef spirv::getInterfaceVarABIAttrName() { … }
spirv::InterfaceVarABIAttr
spirv::getInterfaceVarABIAttr(unsigned descriptorSet, unsigned binding,
std::optional<spirv::StorageClass> storageClass,
MLIRContext *context) { … }
bool spirv::needsInterfaceVarABIAttrs(spirv::TargetEnvAttr targetAttr) { … }
StringRef spirv::getEntryPointABIAttrName() { … }
spirv::EntryPointABIAttr spirv::getEntryPointABIAttr(
MLIRContext *context, ArrayRef<int32_t> workgroupSize,
std::optional<int> subgroupSize, std::optional<int> targetWidth) { … }
spirv::EntryPointABIAttr spirv::lookupEntryPointABI(Operation *op) { … }
DenseI32ArrayAttr spirv::lookupLocalWorkGroupSize(Operation *op) { … }
spirv::ResourceLimitsAttr
spirv::getDefaultResourceLimits(MLIRContext *context) { … }
StringRef spirv::getTargetEnvAttrName() { … }
spirv::TargetEnvAttr spirv::getDefaultTargetEnv(MLIRContext *context) { … }
spirv::TargetEnvAttr spirv::lookupTargetEnv(Operation *op) { … }
spirv::TargetEnvAttr spirv::lookupTargetEnvOrDefault(Operation *op) { … }
spirv::AddressingModel
spirv::getAddressingModel(spirv::TargetEnvAttr targetAttr,
bool use64bitAddress) { … }
FailureOr<spirv::ExecutionModel>
spirv::getExecutionModel(spirv::TargetEnvAttr targetAttr) { … }
FailureOr<spirv::MemoryModel>
spirv::getMemoryModel(spirv::TargetEnvAttr targetAttr) { … }