|
FLANG
|
Create a new box given a box reference. More...
Public Member Functions | |
| llvm::LogicalResult | matchAndRewrite (fir::cg::XReboxOp rebox, OpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const override |
| Public Member Functions inherited from EmboxCommonConversion< fir::cg::XReboxOp > | |
| mlir::Value | getCharacterByteSize (mlir::Location loc, mlir::ConversionPatternRewriter &rewriter, fir::CharacterType charTy, mlir::ValueRange lenParams) const |
| std::tuple< mlir::Value, mlir::Value > | getSizeAndTypeCode (mlir::Location loc, mlir::ConversionPatternRewriter &rewriter, mlir::Type boxEleTy, mlir::ValueRange lenParams={}) const |
| mlir::Value | insertField (mlir::ConversionPatternRewriter &rewriter, mlir::Location loc, mlir::Value dest, llvm::ArrayRef< std::int64_t > fldIndexes, mlir::Value value, bool bitcast=false) const |
| Basic pattern to write a field in the descriptor. | |
| mlir::Value | insertBaseAddress (mlir::ConversionPatternRewriter &rewriter, mlir::Location loc, mlir::Value dest, mlir::Value base) const |
| mlir::Value | insertLowerBound (mlir::ConversionPatternRewriter &rewriter, mlir::Location loc, mlir::Value dest, unsigned dim, mlir::Value lb) const |
| mlir::Value | insertExtent (mlir::ConversionPatternRewriter &rewriter, mlir::Location loc, mlir::Value dest, unsigned dim, mlir::Value extent) const |
| mlir::Value | insertStride (mlir::ConversionPatternRewriter &rewriter, mlir::Location loc, mlir::Value dest, unsigned dim, mlir::Value stride) const |
| mlir::Value | populateDescriptor (mlir::Location loc, ModOpTy mod, fir::BaseBoxType boxTy, mlir::Type inputType, mlir::ConversionPatternRewriter &rewriter, unsigned rank, mlir::Value eleSize, mlir::Value cfiTy, mlir::Value typeDesc, int allocatorIdx=kDefaultAllocator, mlir::Value extraField={}) const |
| std::tuple< fir::BaseBoxType, mlir::Value, mlir::Value > | consDescriptorPrefix (BOX box, mlir::Type inputType, mlir::ConversionPatternRewriter &rewriter, unsigned rank, mlir::ValueRange substrParams, mlir::ValueRange lenParams, mlir::Value sourceBox={}, mlir::Type sourceBoxType={}) const |
| mlir::Value | genBoxOffsetGep (mlir::ConversionPatternRewriter &rewriter, mlir::Location loc, mlir::Value base, mlir::Type llvmBaseObjectType, mlir::Value outerOffset, mlir::ValueRange cstInteriorIndices, mlir::ValueRange componentIndices, std::optional< mlir::Value > substringOffset) const |
| void | getSubcomponentIndices (BOX xbox, mlir::Value memref, mlir::ValueRange operands, mlir::SmallVectorImpl< mlir::Value > &indices) const |
| mlir::Value | placeInMemoryIfNotGlobalInit (mlir::ConversionPatternRewriter &rewriter, mlir::Location loc, mlir::Type boxTy, mlir::Value boxValue, bool needDeviceAllocation=false) const |
| mlir::Value | computeTripletExtent (mlir::ConversionPatternRewriter &rewriter, mlir::Location loc, mlir::Value lb, mlir::Value ub, mlir::Value step, mlir::Value zero, mlir::Type type) const |
| Compute the extent of a triplet slice (lb:ub:step). | |
| Public Member Functions inherited from fir::FIROpConversion< fir::cg::XReboxOp > | |
| FIROpConversion (const LLVMTypeConverter &typeConverter, const fir::FIRToLLVMPassOptions &options, mlir::PatternBenefit benefit=1) | |
| llvm::LogicalResult | matchAndRewrite (mlir::Operation *op, mlir::ArrayRef< mlir::Value > operands, mlir::ConversionPatternRewriter &rewriter) const final |
| Wrappers around the RewritePattern methods that pass the derived op type. | |
| 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 | |
| Public Types inherited from EmboxCommonConversion< fir::cg::XReboxOp > | |
| using | TypePair |
| Public Types inherited from fir::FIROpConversion< fir::cg::XReboxOp > | |
| using | OpAdaptor |
| using | OneToNOpAdaptor |
| Static Public Member Functions inherited from EmboxCommonConversion< fir::cg::XReboxOp > | |
| static int | getCFIAttr (fir::BaseBoxType boxTy) |
| 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::LLVMTypeConverter & | lowerTy () const |
| const mlir::DataLayout & | getDataLayout () 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 |
| unsigned | getGlobalAddressSpace (mlir::ConversionPatternRewriter &rewriter) const |
| Protected Attributes inherited from fir::ConvertFIRToLLVMPattern | |
| const fir::FIRToLLVMPassOptions & | options |
Create a new box given a box reference.