MLIR
21.0.0git
|
#include "GPUOpsLowering.h"
#include "mlir/Conversion/GPUCommon/GPUCommonPass.h"
#include "mlir/Conversion/LLVMCommon/VectorPattern.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinTypes.h"
#include "llvm/ADT/SmallVectorExtras.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/FormatVariadic.h"
Go to the source code of this file.
Functions | |
static SmallString< 16 > | getUniqueSymbolName (gpu::GPUModuleOp moduleOp, StringRef prefix) |
static Value | scalarizeVectorOpHelper (Operation *op, ValueRange operands, Type llvm1DVectorTy, ConversionPatternRewriter &rewriter, const LLVMTypeConverter &converter) |
Helper for impl::scalarizeVectorOp. More... | |
static IntegerAttr | wrapNumericMemorySpace (MLIRContext *ctx, unsigned space) |
LLVM::GlobalOp | getDynamicSharedMemorySymbol (ConversionPatternRewriter &rewriter, gpu::GPUModuleOp moduleOp, gpu::DynamicSharedMemoryOp op, const LLVMTypeConverter *typeConverter, MemRefType memrefType, unsigned alignmentBit) |
Generates a symbol with 0-sized array type for dynamic shared memory usage, or uses existing symbol. More... | |
LLVM::GlobalOp getDynamicSharedMemorySymbol | ( | ConversionPatternRewriter & | rewriter, |
gpu::GPUModuleOp | moduleOp, | ||
gpu::DynamicSharedMemoryOp | op, | ||
const LLVMTypeConverter * | typeConverter, | ||
MemRefType | memrefType, | ||
unsigned | alignmentBit | ||
) |
Generates a symbol with 0-sized array type for dynamic shared memory usage, or uses existing symbol.
Definition at line 653 of file GPUOpsLowering.cpp.
References mlir::LLVMTypeConverter::convertType(), mlir::OpBuilder::create(), mlir::get(), mlir::LLVMTypeConverter::getMemRefAddressSpace(), and mlir::OpBuilder::setInsertionPointToStart().
Referenced by mlir::GPUDynamicSharedMemoryOpLowering::matchAndRewrite().
|
static |
Definition at line 36 of file GPUOpsLowering.cpp.
Referenced by mlir::getOrCreateStringConstant().
|
static |
Helper for impl::scalarizeVectorOp.
Scalarizes vectors to elements. Used either directly (for ops on 1D vectors) or as the callback passed to detail::handleMultidimensionalVectors (for ops on higher-rank vectors).
Definition at line 593 of file GPUOpsLowering.cpp.
References mlir::LLVMTypeConverter::convertType(), mlir::OpBuilder::create(), mlir::Operation::getAttrs(), mlir::OperationName::getIdentifier(), mlir::Builder::getIndexType(), mlir::Operation::getLoc(), mlir::Operation::getName(), and mlir::Operation::getResult().
Referenced by mlir::impl::scalarizeVectorOp().
|
static |
Definition at line 647 of file GPUOpsLowering.cpp.
References mlir::get().
Referenced by mlir::populateGpuMemorySpaceAttributeConversions().