MLIR  20.0.0git
Classes | Namespaces | Functions
TargetAndABI.h File Reference
#include "mlir/Dialect/SPIRV/IR/SPIRVAttributes.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/SmallSet.h"
#include <optional>

Go to the source code of this file.

Classes

class  mlir::spirv::TargetEnv
 A wrapper class around a spirv::TargetEnvAttr to provide query methods for allowed version/capabilities/extensions. More...
 

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::spirv
 

Functions

StringRef mlir::spirv::getInterfaceVarABIAttrName ()
 Returns the attribute name for specifying argument ABI information. More...
 
InterfaceVarABIAttr mlir::spirv::getInterfaceVarABIAttr (unsigned descriptorSet, unsigned binding, std::optional< StorageClass > storageClass, MLIRContext *context)
 Gets the InterfaceVarABIAttr given its fields. More...
 
bool mlir::spirv::needsInterfaceVarABIAttrs (TargetEnvAttr targetAttr)
 Returns whether the given SPIR-V target (described by TargetEnvAttr) needs ABI attributes for interface variables (spirv.interface_var_abi). More...
 
StringRef mlir::spirv::getEntryPointABIAttrName ()
 Returns the attribute name for specifying entry point information. More...
 
EntryPointABIAttr mlir::spirv::getEntryPointABIAttr (MLIRContext *context, ArrayRef< int32_t > workgroupSize={}, std::optional< int > subgroupSize={}, std::optional< int > targetWidth={})
 Gets the EntryPointABIAttr given its fields. More...
 
EntryPointABIAttr mlir::spirv::lookupEntryPointABI (Operation *op)
 Queries the entry point ABI on the nearest function-like op containing the given op. More...
 
DenseI32ArrayAttr mlir::spirv::lookupLocalWorkGroupSize (Operation *op)
 Queries the local workgroup size from entry point ABI on the nearest function-like op containing the given op. More...
 
ResourceLimitsAttr mlir::spirv::getDefaultResourceLimits (MLIRContext *context)
 Returns a default resource limits attribute that uses numbers from "Table 46. Required Limits" of the Vulkan spec. More...
 
StringRef mlir::spirv::getTargetEnvAttrName ()
 Returns the attribute name for specifying SPIR-V target environment. More...
 
TargetEnvAttr mlir::spirv::getDefaultTargetEnv (MLIRContext *context)
 Returns the default target environment: SPIR-V 1.0 with Shader capability and no extra extensions. More...
 
TargetEnvAttr mlir::spirv::lookupTargetEnv (Operation *op)
 Queries the target environment recursively from enclosing symbol table ops containing the given op. More...
 
TargetEnvAttr mlir::spirv::lookupTargetEnvOrDefault (Operation *op)
 Queries the target environment recursively from enclosing symbol table ops containing the given op or returns the default target environment as returned by getDefaultTargetEnv() if not provided. More...
 
AddressingModel mlir::spirv::getAddressingModel (TargetEnvAttr targetAttr, bool use64bitAddress)
 Returns addressing model selected based on target environment. More...
 
FailureOr< ExecutionModel > mlir::spirv::getExecutionModel (TargetEnvAttr targetAttr)
 Returns execution model selected based on target environment. More...
 
FailureOr< MemoryModel > mlir::spirv::getMemoryModel (TargetEnvAttr targetAttr)
 Returns memory model selected based on target environment. More...