clang 22.0.0git
Functions
LoweringHelpers.cpp File Reference
#include "clang/CIR/LoweringHelpers.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "clang/CIR/MissingFeatures.h"

Go to the source code of this file.

Functions

mlir::DenseElementsAttr convertStringAttrToDenseElementsAttr (cir::ConstArrayAttr attr, mlir::Type type)
 
template<>
mlir::APInt getZeroInitFromType (mlir::Type ty)
 
template<>
mlir::APFloat getZeroInitFromType (mlir::Type ty)
 
template<typename AttrTy , typename StorageTy >
void convertToDenseElementsAttrImpl (cir::ConstArrayAttr attr, llvm::SmallVectorImpl< StorageTy > &values, const llvm::SmallVectorImpl< int64_t > &currentDims, int64_t dimIndex, int64_t currentIndex)
 
template<typename AttrTy , typename StorageTy >
mlir::DenseElementsAttr convertToDenseElementsAttr (cir::ConstArrayAttr attr, const llvm::SmallVectorImpl< int64_t > &dims, mlir::Type elementType, mlir::Type convertedElementType)
 
std::optional< mlir::Attribute > lowerConstArrayAttr (cir::ConstArrayAttr constArr, const mlir::TypeConverter *converter)
 
mlir::Value getConstAPInt (mlir::OpBuilder &bld, mlir::Location loc, mlir::Type typ, const llvm::APInt &val)
 
mlir::Value getConst (mlir::OpBuilder &bld, mlir::Location loc, mlir::Type typ, unsigned val)
 
mlir::Value createShL (mlir::OpBuilder &bld, mlir::Value lhs, unsigned rhs)
 
mlir::Value createAShR (mlir::OpBuilder &bld, mlir::Value lhs, unsigned rhs)
 
mlir::Value createAnd (mlir::OpBuilder &bld, mlir::Value lhs, const llvm::APInt &rhs)
 
mlir::Value createLShR (mlir::OpBuilder &bld, mlir::Value lhs, unsigned rhs)
 

Function Documentation

◆ convertStringAttrToDenseElementsAttr()

mlir::DenseElementsAttr convertStringAttrToDenseElementsAttr ( cir::ConstArrayAttr  attr,
mlir::Type  type 
)

◆ convertToDenseElementsAttr()

template<typename AttrTy , typename StorageTy >
mlir::DenseElementsAttr convertToDenseElementsAttr ( cir::ConstArrayAttr  attr,
const llvm::SmallVectorImpl< int64_t > &  dims,
mlir::Type  elementType,
mlir::Type  convertedElementType 
)

Definition at line 103 of file LoweringHelpers.cpp.

◆ convertToDenseElementsAttrImpl()

template<typename AttrTy , typename StorageTy >
void convertToDenseElementsAttrImpl ( cir::ConstArrayAttr  attr,
llvm::SmallVectorImpl< StorageTy > &  values,
const llvm::SmallVectorImpl< int64_t > &  currentDims,
int64_t  dimIndex,
int64_t  currentIndex 
)
Parameters
attrthe ConstArrayAttr to convert
valuesthe output parameter, the values array to fill
currentDimsthe shpae of tensor we're going to convert to
dimIndexthe current dimension we're processing
currentIndexthe current index in the values array

Definition at line 60 of file LoweringHelpers.cpp.

◆ createAnd()

mlir::Value createAnd ( mlir::OpBuilder &  bld,
mlir::Value  lhs,
const llvm::APInt &  rhs 
)

◆ createAShR()

mlir::Value createAShR ( mlir::OpBuilder &  bld,
mlir::Value  lhs,
unsigned  rhs 
)

◆ createLShR()

mlir::Value createLShR ( mlir::OpBuilder &  bld,
mlir::Value  lhs,
unsigned  rhs 
)

◆ createShL()

mlir::Value createShL ( mlir::OpBuilder &  bld,
mlir::Value  lhs,
unsigned  rhs 
)

◆ getConst()

mlir::Value getConst ( mlir::OpBuilder &  bld,
mlir::Location  loc,
mlir::Type  typ,
unsigned  val 
)

Definition at line 154 of file LoweringHelpers.cpp.

Referenced by createAShR(), createLShR(), and createShL().

◆ getConstAPInt()

mlir::Value getConstAPInt ( mlir::OpBuilder &  bld,
mlir::Location  loc,
mlir::Type  typ,
const llvm::APInt &  val 
)

Definition at line 149 of file LoweringHelpers.cpp.

Referenced by createAnd().

◆ getZeroInitFromType() [1/2]

template<>
mlir::APInt getZeroInitFromType ( mlir::Type  ty)

Definition at line 35 of file LoweringHelpers.cpp.

◆ getZeroInitFromType() [2/2]

template<>
mlir::APFloat getZeroInitFromType ( mlir::Type  ty)

Definition at line 41 of file LoweringHelpers.cpp.

◆ lowerConstArrayAttr()

std::optional< mlir::Attribute > lowerConstArrayAttr ( cir::ConstArrayAttr  constArr,
const mlir::TypeConverter *  converter 
)