MLIR 22.0.0git
TypeConverter.cpp File Reference
#include "mlir/Conversion/LLVMCommon/TypeConverter.h"
#include "mlir/Conversion/LLVMCommon/MemRefBuilder.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/Support/Threading.h"
#include <memory>
#include <mutex>
#include <optional>

Go to the source code of this file.

Functions

static bool isBarePointer (ValueRange values)
 Helper function that checks if the given value range is a bare pointer.
static Value packUnrankedMemRefDesc (OpBuilder &builder, UnrankedMemRefType resultType, ValueRange inputs, Location loc, const LLVMTypeConverter &converter)
 Pack SSA values into an unranked memref descriptor struct.
static Value packRankedMemRefDesc (OpBuilder &builder, MemRefType resultType, ValueRange inputs, Location loc, const LLVMTypeConverter &converter)
 Pack SSA values into a ranked memref descriptor struct.
static Value unrankedMemRefMaterialization (OpBuilder &builder, UnrankedMemRefType resultType, ValueRange inputs, Location loc, const LLVMTypeConverter &converter)
 MemRef descriptor elements -> UnrankedMemRefType.
static Value rankedMemRefMaterialization (OpBuilder &builder, MemRefType resultType, ValueRange inputs, Location loc, const LLVMTypeConverter &converter)
 MemRef descriptor elements -> MemRefType.
static void filterByValRefArgAttrs (FunctionOpInterface funcOp, SmallVectorImpl< std::optional< NamedAttribute > > &result)
 Returns the llvm.byval or llvm.byref attributes that are present in the function arguments.

Function Documentation

◆ filterByValRefArgAttrs()

void filterByValRefArgAttrs ( FunctionOpInterface funcOp,
SmallVectorImpl< std::optional< NamedAttribute > > & result )
static

Returns the llvm.byval or llvm.byref attributes that are present in the function arguments.

Returns an empty container if none of these attributes are found in any of the arguments.

Definition at line 332 of file TypeConverter.cpp.

References result.

Referenced by mlir::LLVMTypeConverter::convertFunctionSignature().

◆ isBarePointer()

bool isBarePointer ( ValueRange values)
static

Helper function that checks if the given value range is a bare pointer.

Definition at line 47 of file TypeConverter.cpp.

References mlir::ValueRange::getType().

Referenced by packRankedMemRefDesc().

◆ packRankedMemRefDesc()

Value packRankedMemRefDesc ( OpBuilder & builder,
MemRefType resultType,
ValueRange inputs,
Location loc,
const LLVMTypeConverter & converter )
static

◆ packUnrankedMemRefDesc()

Value packUnrankedMemRefDesc ( OpBuilder & builder,
UnrankedMemRefType resultType,
ValueRange inputs,
Location loc,
const LLVMTypeConverter & converter )
static

◆ rankedMemRefMaterialization()

Value rankedMemRefMaterialization ( OpBuilder & builder,
MemRefType resultType,
ValueRange inputs,
Location loc,
const LLVMTypeConverter & converter )
static

MemRef descriptor elements -> MemRefType.

Definition at line 99 of file TypeConverter.cpp.

References packRankedMemRefDesc().

Referenced by mlir::LLVMTypeConverter::LLVMTypeConverter().

◆ unrankedMemRefMaterialization()

Value unrankedMemRefMaterialization ( OpBuilder & builder,
UnrankedMemRefType resultType,
ValueRange inputs,
Location loc,
const LLVMTypeConverter & converter )
static

MemRef descriptor elements -> UnrankedMemRefType.

Definition at line 83 of file TypeConverter.cpp.

References packUnrankedMemRefDesc().

Referenced by mlir::LLVMTypeConverter::LLVMTypeConverter().