FLANG
fir::BaseBoxType Class Reference

This class provides a shared interface for box and class types. More...

#include <flang/Optimizer/Dialect/FIRType.h>

Inheritance diagram for fir::BaseBoxType:

Public Types

enum class  Attribute { None , Allocatable , Pointer }
 Box attributes.

Public Member Functions

mlir::Type getEleTy () const
 Returns the element type of this box type.
mlir::Type getBaseAddressType (bool dropHeapOrPtr=false) const
mlir::Type unwrapInnerType () const
 Unwrap element type from fir.heap, fir.ptr and fir.array.
mlir::Type getElementOrSequenceType () const
bool isAssumedRank () const
 Is this the box for an assumed rank?
bool isPointer () const
 Is this a box for a pointer?
bool isPointerOrAllocatable () const
 Does this box for a pointer or allocatable?
bool isVolatile () const
 Is this a box describing volatile memory?
bool isArray () const
 Is this a box describing an array or assumed-rank?
BaseBoxType getBoxTypeWithNewShape (mlir::Type shapeMold) const
BaseBoxType getBoxTypeWithNewShape (int rank) const
BaseBoxType getBoxTypeWithNewElementType (mlir::Type elementType, bool polymorphic) const
BaseBoxType getBoxTypeWithNewAttr (Attribute attr) const
 Return the same type, except for the attribute (fir.heap/fir.ptr).

Static Public Member Functions

static bool classof (mlir::Type type)
 Methods for support type inquiry through isa, cast, and dyn_cast.

Detailed Description

This class provides a shared interface for box and class types.

Member Function Documentation

◆ getBaseAddressType()

mlir::Type BaseBoxType::getBaseAddressType ( bool dropHeapOrPtr = false) const

Get the raw address type of the memory described by the box. When dropHeapOrPtr is true, the returned type is always a fir::ReferenceType.

◆ getBoxTypeWithNewElementType()

fir::BaseBoxType fir::BaseBoxType::getBoxTypeWithNewElementType ( mlir::Type elementType,
bool polymorphic ) const

Return a box type with the same attributes and shape, except that the element type that is changed to the provided one. The returned box will be a fir.class if polymorphic is true and a fir.box otherwise.

◆ getBoxTypeWithNewShape()

fir::BaseBoxType fir::BaseBoxType::getBoxTypeWithNewShape ( mlir::Type shapeMold) const

Return the same type, except for the shape, that is taken the shape of shapeMold.


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