MLIR
15.0.0git
|
#include "mlir/Conversion/LinalgToSPIRV/LinalgToSPIRV.h"
#include "mlir/Dialect/Linalg/IR/Linalg.h"
#include "mlir/Dialect/Linalg/Utils/Utils.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVDialect.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVOps.h"
#include "mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h"
#include "mlir/Dialect/Utils/StructuredOpsUtils.h"
#include "mlir/IR/AffineExpr.h"
#include "mlir/Transforms/DialectConversion.h"
Go to the source code of this file.
Macros | |
#define | CREATE_GROUP_NON_UNIFORM_BIN_OP(opKind, spvOp) |
#define | CREATE_ATOMIC_BIN_OP(opKind, spvOp) |
Functions | |
static Value | getLocalInvocationDimSize (Operation *op, int dim, Type integerType, Location loc, OpBuilder *builder) |
Returns a Value containing the dim -th dimension's size of SPIR-V location invocation ID. More... | |
#define CREATE_ATOMIC_BIN_OP | ( | opKind, | |
spvOp | |||
) |
Referenced by getLocalInvocationDimSize().
#define CREATE_GROUP_NON_UNIFORM_BIN_OP | ( | opKind, | |
spvOp | |||
) |
Referenced by getLocalInvocationDimSize().
|
static |
Returns a Value
containing the dim
-th dimension's size of SPIR-V location invocation ID.
This function will create necessary operations with builder
at the proper region containing op
.
Definition at line 28 of file LinalgToSPIRV.cpp.
References mlir::DenseIntElementsAttr::begin(), mlir::Type::cast(), mlir::OpBuilder::create(), CREATE_ATOMIC_BIN_OP, CREATE_GROUP_NON_UNIFORM_BIN_OP, mlir::ConversionPatternRewriter::eraseOp(), mlir::failure(), mlir::AffineMap::get(), mlir::getAffineConstantExpr(), mlir::getAffineDimExpr(), mlir::spirv::getBuiltinVariableValue(), mlir::Operation::getContext(), mlir::spirv::getElementPtr(), getElementType(), mlir::Builder::getI32ArrayAttr(), mlir::Operation::getOperand(), mlir::Value::getType(), mlir::spirv::lookupLocalWorkGroupSize(), mlir::linalg::RegionMatcher::matchAsScalarBinaryOp(), mlir::OpConversionPattern< SourceOp >::OpConversionPattern(), and mlir::success().