MLIR  21.0.0git
Functions
GPUOpsLowering.cpp File Reference
#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...
 

Function Documentation

◆ getDynamicSharedMemorySymbol()

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

◆ getUniqueSymbolName()

static SmallString<16> getUniqueSymbolName ( gpu::GPUModuleOp  moduleOp,
StringRef  prefix 
)
static

Definition at line 36 of file GPUOpsLowering.cpp.

Referenced by mlir::getOrCreateStringConstant().

◆ scalarizeVectorOpHelper()

static Value scalarizeVectorOpHelper ( Operation op,
ValueRange  operands,
Type  llvm1DVectorTy,
ConversionPatternRewriter rewriter,
const LLVMTypeConverter converter 
)
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().

◆ wrapNumericMemorySpace()

static IntegerAttr wrapNumericMemorySpace ( MLIRContext ctx,
unsigned  space 
)
static

Definition at line 647 of file GPUOpsLowering.cpp.

References mlir::get().

Referenced by mlir::populateGpuMemorySpaceAttributeConversions().