MLIR  15.0.0git
Macros | Functions
LinalgToSPIRV.cpp File Reference
#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"
+ Include dependency graph for LinalgToSPIRV.cpp:

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...
 

Macro Definition Documentation

◆ CREATE_ATOMIC_BIN_OP

#define CREATE_ATOMIC_BIN_OP (   opKind,
  spvOp 
)
Value:
case linalg::RegionMatcher::BinaryOpKind::opKind: { \
builder.create<spirv::spvOp>(loc, outputElementPtr, spirv::Scope::Device, \
spirv::MemorySemantics::AcquireRelease, \
groupOperation); \
} break

Referenced by getLocalInvocationDimSize().

◆ CREATE_GROUP_NON_UNIFORM_BIN_OP

#define CREATE_GROUP_NON_UNIFORM_BIN_OP (   opKind,
  spvOp 
)
Value:
case linalg::RegionMatcher::BinaryOpKind::opKind: { \
groupOperation = rewriter.create<spirv::spvOp>( \
loc, originalInputType.getElementType(), spirv::Scope::Subgroup, \
spirv::GroupOperation::Reduce, inputElement, \
/*cluster_size=*/nullptr); \
} break

Referenced by getLocalInvocationDimSize().

Function Documentation

◆ getLocalInvocationDimSize()

static Value getLocalInvocationDimSize ( Operation op,
int  dim,
Type  integerType,
Location  loc,
OpBuilder builder 
)
static