MLIR
17.0.0git
|
#include "mlir/Dialect/SPIRV/IR/SPIRVOps.h"
#include "mlir/Dialect/SPIRV/IR/ParserUtils.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVAttributes.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVDialect.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVEnums.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVOpTraits.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVTypes.h"
#include "mlir/Dialect/SPIRV/IR/TargetAndABI.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/FunctionImplementation.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/IR/Operation.h"
#include "mlir/IR/TypeUtilities.h"
#include "mlir/Interfaces/CallInterfaces.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/FormatVariadic.h"
#include <cassert>
#include <numeric>
#include "mlir/Dialect/SPIRV/IR/SPIRVAvailability.cpp.inc"
#include "mlir/Dialect/SPIRV/IR/SPIRVOps.cpp.inc"
#include "mlir/Dialect/SPIRV/IR/SPIRVOpAvailabilityImpl.inc"
Go to the source code of this file.
Namespaces | |
mlir | |
This header declares functions that assit transformations in the MemRef dialect. | |
mlir::spirv | |
Macros | |
#define | SPIRV_IMPL_INTEGER_DOT_PRODUCT_OP(OpName) |
#define | GET_OP_CLASSES |
Functions | |
static ParseResult | parseOneResultSameOperandTypeOp (OpAsmParser &parser, OperationState &result) |
static void | printOneResultOp (Operation *op, OpAsmPrinter &p) |
static bool | isNestedInFunctionOpInterface (Operation *op) |
Returns true if the given op is a function-like op or nested in a function-like op without a module-like op in the middle. More... | |
static bool | isDirectInModuleLikeOp (Operation *op) |
Returns true if the given op is an module-like op that maintains a symbol table. More... | |
static LogicalResult | extractValueFromConstOp (Operation *op, int32_t &value) |
template<typename Ty > | |
static ArrayAttr | getStrArrayAttrForEnumList (Builder &builder, ArrayRef< Ty > enumValues, function_ref< StringRef(Ty)> stringifyFn) |
template<typename EnumClass > | |
static ParseResult | parseEnumStrAttr (EnumClass &value, OpAsmParser &parser, StringRef attrName=spirv::attributeName< EnumClass >()) |
Parses the next string attribute in parser as an enumerant of the given EnumClass . More... | |
template<typename EnumAttrClass , typename EnumClass = typename EnumAttrClass::ValueType> | |
static ParseResult | parseEnumStrAttr (EnumClass &value, OpAsmParser &parser, OperationState &state, StringRef attrName=spirv::attributeName< EnumClass >()) |
Parses the next string attribute in parser as an enumerant of the given EnumClass and inserts the enumerant into state as an 32-bit integer attribute with the enum class's name as attribute name. More... | |
template<typename EnumAttrClass , typename EnumClass = typename EnumAttrClass::ValueType> | |
static ParseResult | parseEnumKeywordAttr (EnumClass &value, OpAsmParser &parser, OperationState &state, StringRef attrName=spirv::attributeName< EnumClass >()) |
Parses the next keyword in parser as an enumerant of the given EnumClass and inserts the enumerant into state as an 32-bit integer attribute with the enum class's name as attribute name. More... | |
template<typename EnumAttrClass , typename EnumClass > | |
static ParseResult | parseControlAttribute (OpAsmParser &parser, OperationState &state, StringRef attrName=spirv::attributeName< EnumClass >()) |
Parses Function, Selection and Loop control attributes. More... | |
static ParseResult | parseMemoryAccessAttributes (OpAsmParser &parser, OperationState &state) |
Parses optional memory access attributes attached to a memory access operand/pointer. More... | |
static ParseResult | parseSourceMemoryAccessAttributes (OpAsmParser &parser, OperationState &state) |
template<typename MemoryOpTy > | |
static void | printMemoryAccessAttribute (MemoryOpTy memoryOp, OpAsmPrinter &printer, SmallVectorImpl< StringRef > &elidedAttrs, std::optional< spirv::MemoryAccess > memoryAccessAtrrValue=std::nullopt, std::optional< uint32_t > alignmentAttrValue=std::nullopt) |
template<typename MemoryOpTy > | |
static void | printSourceMemoryAccessAttribute (MemoryOpTy memoryOp, OpAsmPrinter &printer, SmallVectorImpl< StringRef > &elidedAttrs, std::optional< spirv::MemoryAccess > memoryAccessAtrrValue=std::nullopt, std::optional< uint32_t > alignmentAttrValue=std::nullopt) |
static ParseResult | parseImageOperands (OpAsmParser &parser, spirv::ImageOperandsAttr &attr) |
static void | printImageOperands (OpAsmPrinter &printer, Operation *imageOp, spirv::ImageOperandsAttr attr) |
template<typename Op > | |
static LogicalResult | verifyImageOperands (Op imageOp, spirv::ImageOperandsAttr attr, Operation::operand_range operands) |
static LogicalResult | verifyCastOp (Operation *op, bool requireSameBitWidth=true, bool skipBitWidthCheck=false) |
template<typename MemoryOpTy > | |
static LogicalResult | verifyMemoryAccessAttribute (MemoryOpTy memoryOp) |
template<typename MemoryOpTy > | |
static LogicalResult | verifySourceMemoryAccessAttribute (MemoryOpTy memoryOp) |
static LogicalResult | verifyMemorySemantics (Operation *op, spirv::MemorySemantics memorySemantics) |
template<typename LoadStoreOpTy > | |
static LogicalResult | verifyLoadStorePtrAndValTypes (LoadStoreOpTy op, Value ptr, Value val) |
template<typename BlockReadWriteOpTy > | |
static LogicalResult | verifyBlockReadWritePtrAndValTypes (BlockReadWriteOpTy op, Value ptr, Value val) |
static ParseResult | parseVariableDecorations (OpAsmParser &parser, OperationState &state) |
static void | printVariableDecorations (Operation *op, OpAsmPrinter &printer, SmallVectorImpl< StringRef > &elidedAttrs) |
static unsigned | getBitWidth (Type type) |
static Type | getElementType (Type type, ArrayRef< int32_t > indices, function_ref< InFlightDiagnostic(StringRef)> emitErrorFn) |
Walks the given type hierarchy with the given indices, potentially down to component granularity, to select an element type. More... | |
static Type | getElementType (Type type, Attribute indices, function_ref< InFlightDiagnostic(StringRef)> emitErrorFn) |
static Type | getElementType (Type type, Attribute indices, Location loc) |
static Type | getElementType (Type type, Attribute indices, OpAsmParser &parser, SMLoc loc) |
static bool | isMergeBlock (Block &block) |
Returns true if the given block only contains one spirv.mlir.merge op. More... | |
template<typename ExtendedBinaryOp > | |
static LogicalResult | verifyArithmeticExtendedBinaryOp (ExtendedBinaryOp op) |
static ParseResult | parseArithmeticExtendedBinaryOp (OpAsmParser &parser, OperationState &result) |
static void | printArithmeticExtendedBinaryOp (Operation *op, OpAsmPrinter &printer) |
static ParseResult | parseAtomicUpdateOp (OpAsmParser &parser, OperationState &state, bool hasValue) |
static void | printAtomicUpdateOp (Operation *op, OpAsmPrinter &printer) |
template<typename T > | |
static StringRef | stringifyTypeName () |
template<> | |
StringRef | stringifyTypeName< IntegerType > () |
template<> | |
StringRef | stringifyTypeName< FloatType > () |
template<typename ExpectedElementType > | |
static LogicalResult | verifyAtomicUpdateOp (Operation *op) |
static ParseResult | parseGroupNonUniformArithmeticOp (OpAsmParser &parser, OperationState &state) |
static void | printGroupNonUniformArithmeticOp (Operation *groupOp, OpAsmPrinter &printer) |
static LogicalResult | verifyGroupNonUniformArithmeticOp (Operation *groupOp) |
static Type | getUnaryOpResultType (Type operandType) |
Result of a logical op must be a scalar or vector of boolean type. More... | |
static LogicalResult | verifyShiftOp (Operation *op) |
static Type | getElementPtrType (Type type, ValueRange indices, Location baseLoc) |
template<typename Op > | |
static void | printAccessChain (Op op, ValueRange indices, OpAsmPrinter &printer) |
template<typename Op > | |
static LogicalResult | verifyAccessChain (Op accessChainOp, ValueRange indices) |
template<typename T > | |
static void | printAtomicCompareExchangeImpl (T atomOp, OpAsmPrinter &printer) |
static ParseResult | parseAtomicCompareExchangeImpl (OpAsmParser &parser, OperationState &state) |
template<typename T > | |
static LogicalResult | verifyAtomicCompareExchangeImpl (T atomOp) |
static LogicalResult | verifyConstantType (spirv::ConstantOp op, Attribute value, Type opType) |
template<typename OpTy > | |
static LogicalResult | verifyGroupNonUniformShuffleOp (OpTy op) |
static bool | hasOneBranchOpTo (Block &srcBlock, Block &dstBlock) |
Returns true if the given srcBlock contains only one spirv.Branch to the given dstBlock . More... | |
static LogicalResult | verifyPointerAndCoopMatrixType (Operation *op, Type pointer, Type coopMatrix) |
static LogicalResult | verifyCoopMatrixMulAdd (spirv::NVCooperativeMatrixMulAddOp op) |
static LogicalResult | verifyPointerAndJointMatrixType (Operation *op, Type pointer, Type jointMatrix) |
static LogicalResult | verifyJointMatrixMad (spirv::INTELJointMatrixMadOp op) |
static ParseResult | parsePtrAccessChainOpImpl (StringRef opName, OpAsmParser &parser, OperationState &state) |
template<typename Op > | |
static auto | concatElemAndIndices (Op op) |
template<typename Op > | |
static LogicalResult | verifyGroupOp (Op op) |
static LogicalResult | verifyIntegerDotProduct (Operation *op) |
static std::optional< spirv::Version > | getIntegerDotProductMinVersion () |
static std::optional< spirv::Version > | getIntegerDotProductMaxVersion () |
static SmallVector< ArrayRef< spirv::Extension >, 1 > | getIntegerDotProductExtensions () |
static SmallVector< ArrayRef< spirv::Capability >, 1 > | getIntegerDotProductCapabilities (Operation *op) |
Variables | |
constexpr char | kAlignmentAttrName [] = "alignment" |
constexpr char | kBranchWeightAttrName [] = "branch_weights" |
constexpr char | kCallee [] = "callee" |
constexpr char | kClusterSize [] = "cluster_size" |
constexpr char | kControl [] = "control" |
constexpr char | kDefaultValueAttrName [] = "default_value" |
constexpr char | kEqualSemanticsAttrName [] = "equal_semantics" |
constexpr char | kExecutionScopeAttrName [] = "execution_scope" |
constexpr char | kFnNameAttrName [] = "fn" |
constexpr char | kGroupOperationAttrName [] = "group_operation" |
constexpr char | kIndicesAttrName [] = "indices" |
constexpr char | kInitializerAttrName [] = "initializer" |
constexpr char | kInterfaceAttrName [] = "interface" |
constexpr char | kMemoryAccessAttrName [] = "memory_access" |
constexpr char | kMemoryScopeAttrName [] = "memory_scope" |
constexpr char | kPackedVectorFormatAttrName [] = "format" |
constexpr char | kSemanticsAttrName [] = "semantics" |
constexpr char | kSourceAlignmentAttrName [] = "source_alignment" |
constexpr char | kSourceMemoryAccessAttrName [] = "source_memory_access" |
constexpr char | kSpecIdAttrName [] = "spec_id" |
constexpr char | kTypeAttrName [] = "type" |
constexpr char | kUnequalSemanticsAttrName [] = "unequal_semantics" |
constexpr char | kValueAttrName [] = "value" |
constexpr char | kValuesAttrName [] = "values" |
constexpr char | kCompositeSpecConstituentsName [] = "constituents" |
#define GET_OP_CLASSES |
Definition at line 5041 of file SPIRVOps.cpp.
#define SPIRV_IMPL_INTEGER_DOT_PRODUCT_OP | ( | OpName | ) |
Definition at line 5012 of file SPIRVOps.cpp.
|
static |
Definition at line 4796 of file SPIRVOps.cpp.
|
static |
Definition at line 138 of file SPIRVOps.cpp.
Referenced by verifyGroupNonUniformArithmeticOp().
|
static |
Definition at line 677 of file SPIRVOps.cpp.
References mlir::Type::getIntOrFloatBitWidth(), and mlir::Type::isIntOrFloat().
|
static |
Definition at line 1013 of file SPIRVOps.cpp.
References mlir::emitError().
Referenced by parsePtrAccessChainOpImpl(), and verifyAccessChain().
|
static |
Walks the given type hierarchy with the given indices, potentially down to component granularity, to select an element type.
Returns null type and emits errors with the given loc on failure.
Definition at line 699 of file SPIRVOps.cpp.
Referenced by mlir::convertMMAToLLVMType(), mlir::detail::DenseArrayAttrImpl< T >::get(), getCuSparseDataTypeFrom(), getElementType(), mlirComplexTypeGetElementType(), mlirPDLRangeTypeGetElementType(), mlirShapedTypeGetElementType(), and mlirUnrankedTensorTypeGetElementType().
|
static |
Definition at line 725 of file SPIRVOps.cpp.
References getElementType().
Definition at line 750 of file SPIRVOps.cpp.
References mlir::emitError(), and getElementType().
|
static |
Definition at line 757 of file SPIRVOps.cpp.
References mlir::AsmParser::emitError(), and getElementType().
|
static |
Definition at line 4978 of file SPIRVOps.cpp.
|
static |
Definition at line 4970 of file SPIRVOps.cpp.
|
static |
Definition at line 4965 of file SPIRVOps.cpp.
|
static |
Definition at line 4961 of file SPIRVOps.cpp.
|
static |
Definition at line 159 of file SPIRVOps.cpp.
References mlir::Builder::getStrArrayAttr().
Result of a logical op must be a scalar or vector of boolean type.
Definition at line 991 of file SPIRVOps.cpp.
References mlir::get(), mlir::Type::getContext(), and mlir::Builder::getIntegerType().
Returns true if the given srcBlock
contains only one spirv.Branch
to the given dstBlock
.
Definition at line 3272 of file SPIRVOps.cpp.
References mlir::Block::back().
|
static |
Returns true if the given op is an module-like op that maintains a symbol table.
Definition at line 134 of file SPIRVOps.cpp.
|
inlinestatic |
Returns true if the given block
only contains one spirv.mlir.merge
op.
Definition at line 766 of file SPIRVOps.cpp.
References mlir::Block::begin(), mlir::Block::empty(), mlir::Block::end(), and mlir::Block::front().
|
static |
Returns true if the given op is a function-like op or nested in a function-like op without a module-like op in the middle.
Definition at line 122 of file SPIRVOps.cpp.
|
static |
Definition at line 786 of file SPIRVOps.cpp.
References mlir::OperationState::addTypes(), mlir::OperationState::attributes, mlir::AsmParser::emitError(), mlir::failure(), mlir::AsmParser::getCurrentLocation(), mlir::OperationState::operands, mlir::AsmParser::parseColon(), mlir::OpAsmParser::parseOperandList(), mlir::AsmParser::parseOptionalAttrDict(), mlir::AsmParser::parseType(), mlir::OpAsmParser::resolveOperands(), and mlir::success().
|
static |
Definition at line 1186 of file SPIRVOps.cpp.
References mlir::AsmParser::addTypeToList(), mlir::AsmParser::emitError(), mlir::failure(), mlir::AsmParser::getCurrentLocation(), mlir::AsmParser::getNameLoc(), kEqualSemanticsAttrName, kMemoryScopeAttrName, kUnequalSemanticsAttrName, mlir::OperationState::operands, mlir::AsmParser::parseColonType(), mlir::OpAsmParser::parseOperandList(), mlir::OpAsmParser::resolveOperands(), and mlir::OperationState::types.
|
static |
Definition at line 824 of file SPIRVOps.cpp.
References mlir::AsmParser::addTypeToList(), mlir::AsmParser::emitError(), mlir::failure(), mlir::AsmParser::getCurrentLocation(), mlir::AsmParser::getNameLoc(), kMemoryScopeAttrName, kSemanticsAttrName, mlir::OperationState::operands, mlir::AsmParser::parseColonType(), mlir::OpAsmParser::parseOperandList(), mlir::OpAsmParser::resolveOperands(), and mlir::OperationState::types.
|
static |
Parses Function, Selection and Loop control attributes.
If no control is specified, "None" is used as a default.
Definition at line 231 of file SPIRVOps.cpp.
References mlir::OperationState::addAttribute(), mlir::failure(), mlir::Builder::getAttr(), mlir::AsmParser::getBuilder(), kControl, mlir::AsmParser::parseLParen(), mlir::AsmParser::parseOptionalKeyword(), mlir::AsmParser::parseRParen(), mlir::succeeded(), and mlir::success().
|
static |
Parses the next keyword in parser
as an enumerant of the given EnumClass
and inserts the enumerant into state
as an 32-bit integer attribute with the enum class's name as attribute name.
Definition at line 217 of file SPIRVOps.cpp.
References mlir::OperationState::addAttribute(), mlir::failure(), mlir::Builder::getAttr(), mlir::AsmParser::getBuilder(), mlir::parseEnumKeywordAttr(), and mlir::success().
|
static |
Parses the next string attribute in parser
as an enumerant of the given EnumClass
and inserts the enumerant into state
as an 32-bit integer attribute with the enum class's name as attribute name.
Definition at line 202 of file SPIRVOps.cpp.
References mlir::OperationState::addAttribute(), mlir::failure(), mlir::Builder::getAttr(), mlir::AsmParser::getBuilder(), parseEnumStrAttr(), and mlir::success().
|
static |
Parses the next string attribute in parser
as an enumerant of the given EnumClass
.
Definition at line 176 of file SPIRVOps.cpp.
References mlir::AsmParser::emitError(), mlir::failure(), mlir::AsmParser::getBuilder(), mlir::AsmParser::getCurrentLocation(), mlir::Builder::getNoneType(), mlir::AsmParser::parseAttribute(), and mlir::success().
Referenced by parseEnumStrAttr(), and parseImageOperands().
|
static |
Definition at line 904 of file SPIRVOps.cpp.
References mlir::AsmParser::addTypeToList(), mlir::failure(), mlir::AsmParser::getBuilder(), mlir::Builder::getIntegerType(), kClusterSize, kExecutionScopeAttrName, kGroupOperationAttrName, mlir::OperationState::operands, mlir::AsmParser::parseColonType(), mlir::AsmParser::parseLParen(), mlir::OpAsmParser::parseOperand(), mlir::AsmParser::parseOptionalKeyword(), mlir::AsmParser::parseRParen(), mlir::OpAsmParser::resolveOperand(), mlir::succeeded(), and mlir::OperationState::types.
|
static |
Definition at line 371 of file SPIRVOps.cpp.
References mlir::failure(), mlir::get(), mlir::AsmParser::getContext(), parseEnumStrAttr(), mlir::AsmParser::parseOptionalLSquare(), mlir::AsmParser::parseRSquare(), and mlir::success().
|
static |
Parses optional memory access attributes attached to a memory access operand/pointer.
Specifically, parses the following syntax: ([
memory-access ]
)? where: memory-access ::= "None"
| "Volatile"
| "Aligned",
integer-literal | "NonTemporal"
Definition at line 254 of file SPIRVOps.cpp.
References mlir::OperationState::attributes, mlir::failure(), mlir::AsmParser::getBuilder(), mlir::Builder::getIntegerType(), kAlignmentAttrName, kMemoryAccessAttrName, mlir::AsmParser::parseAttribute(), mlir::AsmParser::parseComma(), mlir::AsmParser::parseOptionalLSquare(), mlir::AsmParser::parseRSquare(), and mlir::success().
|
static |
Definition at line 72 of file SPIRVOps.cpp.
References mlir::OperationState::addTypes(), mlir::AsmParser::addTypeToList(), mlir::OperationState::attributes, mlir::AsmParser::emitError(), mlir::failure(), mlir::AsmParser::getCurrentLocation(), mlir::OperationState::operands, mlir::AsmParser::parseColon(), mlir::AsmParser::parseColonType(), mlir::OpAsmParser::parseOperandList(), mlir::AsmParser::parseOptionalAttrDict(), mlir::AsmParser::parseOptionalLParen(), mlir::AsmParser::parseRParen(), mlir::AsmParser::parseType(), mlir::OpAsmParser::resolveOperands(), mlir::success(), and mlir::OperationState::types.
|
static |
Definition at line 4753 of file SPIRVOps.cpp.
References mlir::OperationState::addTypes(), mlir::emitError(), mlir::failure(), mlir::AsmParser::getCurrentLocation(), getElementPtrType(), mlir::OperationState::location, mlir::OperationState::operands, mlir::AsmParser::parseColonType(), mlir::AsmParser::parseComma(), mlir::OpAsmParser::parseOperand(), mlir::OpAsmParser::parseOperandList(), mlir::AsmParser::parseTypeList(), mlir::OpAsmParser::resolveOperand(), mlir::OpAsmParser::resolveOperands(), mlir::AsmParser::Square, and mlir::success().
|
static |
Definition at line 285 of file SPIRVOps.cpp.
References mlir::OperationState::attributes, mlir::failure(), mlir::AsmParser::getBuilder(), mlir::Builder::getIntegerType(), kSourceAlignmentAttrName, kSourceMemoryAccessAttrName, mlir::AsmParser::parseAttribute(), mlir::AsmParser::parseComma(), mlir::AsmParser::parseOptionalLSquare(), mlir::AsmParser::parseRSquare(), and mlir::success().
|
static |
Definition at line 612 of file SPIRVOps.cpp.
References mlir::OperationState::attributes, bindingName(), descriptorSetName(), mlir::failure(), mlir::AsmParser::getBuilder(), mlir::Builder::getIntegerType(), mlir::AsmParser::parseAttribute(), mlir::AsmParser::parseComma(), mlir::AsmParser::parseLParen(), mlir::AsmParser::parseOptionalAttrDict(), mlir::AsmParser::parseOptionalKeyword(), mlir::AsmParser::parseRParen(), mlir::succeeded(), and mlir::success().
|
static |
Definition at line 1121 of file SPIRVOps.cpp.
|
static |
Definition at line 810 of file SPIRVOps.cpp.
|
static |
Definition at line 1179 of file SPIRVOps.cpp.
|
static |
Definition at line 855 of file SPIRVOps.cpp.
|
static |
Definition at line 940 of file SPIRVOps.cpp.
References mlir::Operation::getAttrOfType(), mlir::Operation::getNumOperands(), mlir::Operation::getOperand(), mlir::Operation::getResult(), mlir::Value::getType(), kClusterSize, kExecutionScopeAttrName, and kGroupOperationAttrName.
|
static |
Definition at line 386 of file SPIRVOps.cpp.
|
static |
Definition at line 313 of file SPIRVOps.cpp.
References kAlignmentAttrName, and kMemoryAccessAttrName.
|
static |
Definition at line 101 of file SPIRVOps.cpp.
|
static |
Definition at line 343 of file SPIRVOps.cpp.
References kSourceAlignmentAttrName, and kSourceMemoryAccessAttrName.
|
static |
Definition at line 649 of file SPIRVOps.cpp.
|
static |
StringRef stringifyTypeName< FloatType > | ( | ) |
Definition at line 874 of file SPIRVOps.cpp.
StringRef stringifyTypeName< IntegerType > | ( | ) |
Definition at line 869 of file SPIRVOps.cpp.
|
static |
Definition at line 1131 of file SPIRVOps.cpp.
References mlir::OpState::emitOpError(), mlir::failure(), getElementPtrType(), mlir::OpState::getLoc(), and mlir::success().
|
static |
Definition at line 772 of file SPIRVOps.cpp.
|
static |
Definition at line 1219 of file SPIRVOps.cpp.
References mlir::success().
|
static |
Definition at line 880 of file SPIRVOps.cpp.
|
static |
Definition at line 599 of file SPIRVOps.cpp.
|
static |
Definition at line 422 of file SPIRVOps.cpp.
|
static |
Definition at line 2007 of file SPIRVOps.cpp.
|
static |
Definition at line 4126 of file SPIRVOps.cpp.
|
static |
Definition at line 959 of file SPIRVOps.cpp.
References mlir::Operation::emitOpError(), extractValueFromConstOp(), mlir::failed(), mlir::Operation::getAttrOfType(), mlir::Value::getDefiningOp(), mlir::Operation::getNumOperands(), mlir::Operation::getOperand(), kExecutionScopeAttrName, kGroupOperationAttrName, and mlir::success().
|
static |
Definition at line 2847 of file SPIRVOps.cpp.
|
static |
Definition at line 4874 of file SPIRVOps.cpp.
|
static |
Definition at line 395 of file SPIRVOps.cpp.
References mlir::OpState::emitError(), and mlir::success().
|
static |
Definition at line 4906 of file SPIRVOps.cpp.
|
static |
Definition at line 4204 of file SPIRVOps.cpp.
|
static |
Definition at line 584 of file SPIRVOps.cpp.
|
static |
Definition at line 476 of file SPIRVOps.cpp.
|
static |
Definition at line 560 of file SPIRVOps.cpp.
|
static |
Definition at line 4056 of file SPIRVOps.cpp.
|
static |
Definition at line 4163 of file SPIRVOps.cpp.
|
static |
Definition at line 999 of file SPIRVOps.cpp.
|
static |
Definition at line 520 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 42 of file SPIRVOps.cpp.
Referenced by parseMemoryAccessAttributes(), and printMemoryAccessAttribute().
|
constexpr |
Definition at line 43 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 44 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 45 of file SPIRVOps.cpp.
Referenced by parseGroupNonUniformArithmeticOp(), and printGroupNonUniformArithmeticOp().
|
constexpr |
Definition at line 66 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 46 of file SPIRVOps.cpp.
Referenced by parseControlAttribute().
|
constexpr |
Definition at line 47 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 48 of file SPIRVOps.cpp.
Referenced by parseAtomicCompareExchangeImpl().
|
constexpr |
Definition at line 49 of file SPIRVOps.cpp.
Referenced by parseGroupNonUniformArithmeticOp(), printGroupNonUniformArithmeticOp(), and verifyGroupNonUniformArithmeticOp().
|
constexpr |
Definition at line 50 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 51 of file SPIRVOps.cpp.
Referenced by parseGroupNonUniformArithmeticOp(), printGroupNonUniformArithmeticOp(), and verifyGroupNonUniformArithmeticOp().
|
constexpr |
Definition at line 52 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 53 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 54 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 55 of file SPIRVOps.cpp.
Referenced by parseMemoryAccessAttributes(), and printMemoryAccessAttribute().
|
constexpr |
Definition at line 56 of file SPIRVOps.cpp.
Referenced by parseAtomicCompareExchangeImpl(), and parseAtomicUpdateOp().
|
constexpr |
Definition at line 57 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 58 of file SPIRVOps.cpp.
Referenced by parseAtomicUpdateOp().
|
constexpr |
Definition at line 59 of file SPIRVOps.cpp.
Referenced by parseSourceMemoryAccessAttributes(), and printSourceMemoryAccessAttribute().
|
constexpr |
Definition at line 60 of file SPIRVOps.cpp.
Referenced by parseSourceMemoryAccessAttributes(), and printSourceMemoryAccessAttribute().
|
constexpr |
Definition at line 61 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 62 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 63 of file SPIRVOps.cpp.
Referenced by parseAtomicCompareExchangeImpl().
|
constexpr |
Definition at line 64 of file SPIRVOps.cpp.
|
constexpr |
Definition at line 65 of file SPIRVOps.cpp.