FLANG
Public Types | Public Member Functions | List of all members
fir::FIROpConversion< SourceOp > Class Template Reference
Inheritance diagram for fir::FIROpConversion< SourceOp >:
fir::ConvertFIRToLLVMPattern EmboxCommonConversion< fir::EmboxOp > EmboxCommonConversion< fir::cg::XEmboxOp > EmboxCommonConversion< fir::cg::XReboxOp > fir::FIROpAndTypeConversion< fir::CoordinateOp > EmboxOpConversion XEmboxOpConversion XReboxOpConversion CoordinateOpConversion

Public Types

using OpAdaptor = typename SourceOp::Adaptor
 
using OneToNOpAdaptor = typename SourceOp::template GenericAdaptor< mlir::ArrayRef< mlir::ValueRange > >
 

Public Member Functions

 FIROpConversion (const LLVMTypeConverter &typeConverter, const fir::FIRToLLVMPassOptions &options, mlir::PatternBenefit benefit=1)
 
void rewrite (mlir::Operation *op, mlir::ArrayRef< mlir::Value > operands, mlir::ConversionPatternRewriter &rewriter) const final
 Wrappers around the RewritePattern methods that pass the derived op type.
 
void rewrite (mlir::Operation *op, mlir::ArrayRef< mlir::ValueRange > operands, mlir::ConversionPatternRewriter &rewriter) const final
 
llvm::LogicalResult match (mlir::Operation *op) const final
 
llvm::LogicalResult matchAndRewrite (mlir::Operation *op, mlir::ArrayRef< mlir::Value > operands, mlir::ConversionPatternRewriter &rewriter) const final
 
llvm::LogicalResult matchAndRewrite (mlir::Operation *op, mlir::ArrayRef< mlir::ValueRange > operands, mlir::ConversionPatternRewriter &rewriter) const final
 
virtual llvm::LogicalResult match (SourceOp op) const
 
virtual void rewrite (SourceOp op, OpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const
 
virtual void rewrite (SourceOp op, OneToNOpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const
 
virtual llvm::LogicalResult matchAndRewrite (SourceOp op, OpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const
 
virtual llvm::LogicalResult matchAndRewrite (SourceOp op, OneToNOpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const
 
- Public Member Functions inherited from fir::ConvertFIRToLLVMPattern
 ConvertFIRToLLVMPattern (llvm::StringRef rootOpName, mlir::MLIRContext *context, const fir::LLVMTypeConverter &typeConverter, const fir::FIRToLLVMPassOptions &options, mlir::PatternBenefit benefit=1)
 

Additional Inherited Members

- Protected Member Functions inherited from fir::ConvertFIRToLLVMPattern
mlir::Type convertType (mlir::Type ty) const
 
mlir::Type convertObjectType (mlir::Type firType) const
 
mlir::LLVM::ConstantOp genI32Constant (mlir::Location loc, mlir::ConversionPatternRewriter &rewriter, int value) const
 
mlir::LLVM::ConstantOp genConstantOffset (mlir::Location loc, mlir::ConversionPatternRewriter &rewriter, int offset) const
 
mlir::Value integerCast (mlir::Location loc, mlir::ConversionPatternRewriter &rewriter, mlir::Type ty, mlir::Value val, bool fold=false) const
 
TypePair getBoxTypePair (mlir::Type firBoxTy) const
 
mlir::Value getValueFromBox (mlir::Location loc, TypePair boxTy, mlir::Value box, mlir::Type resultTy, mlir::ConversionPatternRewriter &rewriter, int boxValue) const
 Construct code sequence to extract the specific value from a fir.box.
 
llvm::SmallVector< mlir::Value, 3 > getDimsFromBox (mlir::Location loc, llvm::ArrayRef< mlir::Type > retTys, TypePair boxTy, mlir::Value box, mlir::Value dim, mlir::ConversionPatternRewriter &rewriter) const
 
llvm::SmallVector< mlir::Value, 3 > getDimsFromBox (mlir::Location loc, llvm::ArrayRef< mlir::Type > retTys, TypePair boxTy, mlir::Value box, int dim, mlir::ConversionPatternRewriter &rewriter) const
 
mlir::Value loadDimFieldFromBox (mlir::Location loc, TypePair boxTy, mlir::Value box, mlir::Value dim, int off, mlir::Type ty, mlir::ConversionPatternRewriter &rewriter) const
 
mlir::Value getDimFieldFromBox (mlir::Location loc, TypePair boxTy, mlir::Value box, int dim, int off, mlir::Type ty, mlir::ConversionPatternRewriter &rewriter) const
 
mlir::Value getStrideFromBox (mlir::Location loc, TypePair boxTy, mlir::Value box, unsigned dim, mlir::ConversionPatternRewriter &rewriter) const
 
mlir::Value getBaseAddrFromBox (mlir::Location loc, TypePair boxTy, mlir::Value box, mlir::ConversionPatternRewriter &rewriter) const
 Read base address from a fir.box. Returned address has type ty.
 
mlir::Value getElementSizeFromBox (mlir::Location loc, mlir::Type resultTy, TypePair boxTy, mlir::Value box, mlir::ConversionPatternRewriter &rewriter) const
 
mlir::Value getRankFromBox (mlir::Location loc, TypePair boxTy, mlir::Value box, mlir::ConversionPatternRewriter &rewriter) const
 Read base address from a fir.box. Returned address has type ty.
 
mlir::Value getExtraFromBox (mlir::Location loc, TypePair boxTy, mlir::Value box, mlir::ConversionPatternRewriter &rewriter) const
 Read the extra field from a fir.box.
 
mlir::Type getBoxEleTy (mlir::Type type, llvm::ArrayRef< std::int64_t > indexes) const
 
mlir::Type getLlvmObjectTypeFromBoxType (mlir::Type boxType) const
 
mlir::Value loadTypeDescAddress (mlir::Location loc, TypePair boxTy, mlir::Value box, mlir::ConversionPatternRewriter &rewriter) const
 Read the address of the type descriptor from a box.
 
mlir::Value genBoxAttributeCheck (mlir::Location loc, TypePair boxTy, mlir::Value box, mlir::ConversionPatternRewriter &rewriter, unsigned maskValue) const
 
mlir::Value computeBoxSize (mlir::Location, TypePair boxTy, mlir::Value box, mlir::ConversionPatternRewriter &rewriter) const
 
template<typename... ARGS>
mlir::LLVM::GEPOp genGEP (mlir::Location loc, mlir::Type ty, mlir::ConversionPatternRewriter &rewriter, mlir::Value base, ARGS... args) const
 
mlir::Block * getBlockForAllocaInsert (mlir::Operation *op, mlir::Region *parentRegion) const
 
mlir::Value genAllocaAndAddrCastWithType (mlir::Location loc, mlir::Type llvmObjectTy, unsigned alignment, mlir::ConversionPatternRewriter &rewriter) const
 
const fir::LLVMTypeConverterlowerTy () const
 
void attachTBAATag (mlir::LLVM::AliasAnalysisOpInterface op, mlir::Type baseFIRType, mlir::Type accessFIRType, mlir::LLVM::GEPOp gep) const
 
unsigned getAllocaAddressSpace (mlir::ConversionPatternRewriter &rewriter) const
 
unsigned getProgramAddressSpace (mlir::ConversionPatternRewriter &rewriter) const
 
- Protected Attributes inherited from fir::ConvertFIRToLLVMPattern
const fir::FIRToLLVMPassOptionsoptions
 

Member Function Documentation

◆ match()

template<typename SourceOp >
virtual llvm::LogicalResult fir::FIROpConversion< SourceOp >::match ( SourceOp  op) const
inlinevirtual

Rewrite and Match methods that operate on the SourceOp type. These must be overridden by the derived pattern class.


The documentation for this class was generated from the following file: