FLANG
|
FIR conversion pattern template. More...
#include <flang/Optimizer/CodeGen/FIROpPatterns.h>
Public Types | |
using | OpAdaptor = typename FromOp::Adaptor |
![]() | |
using | OpAdaptor = typename SourceOp::Adaptor |
using | OneToNOpAdaptor = typename SourceOp::template GenericAdaptor< mlir::ArrayRef< mlir::ValueRange > > |
Public Member Functions | |
llvm::LogicalResult | matchAndRewrite (FromOp op, OpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const final |
virtual llvm::LogicalResult | doRewrite (FromOp addr, mlir::Type ty, OpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const =0 |
![]() | |
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 |
virtual void | rewrite (FromOp op, OpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const |
virtual void | rewrite (FromOp op, OneToNOpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const |
llvm::LogicalResult | match (mlir::Operation *op) const final |
virtual llvm::LogicalResult | match (FromOp op) const |
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 | matchAndRewrite (FromOp op, OpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const |
virtual llvm::LogicalResult | matchAndRewrite (FromOp op, OneToNOpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const |
![]() | |
ConvertFIRToLLVMPattern (llvm::StringRef rootOpName, mlir::MLIRContext *context, const fir::LLVMTypeConverter &typeConverter, const fir::FIRToLLVMPassOptions &options, mlir::PatternBenefit benefit=1) | |
Additional Inherited Members | |
![]() | |
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::LLVMTypeConverter & | lowerTy () 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 |
![]() | |
const fir::FIRToLLVMPassOptions & | options |
FIR conversion pattern template.