|
FLANG
|
This class provides a shared interface for box and class types. More...
#include <flang/Optimizer/Dialect/FIRType.h>
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. | |
This class provides a shared interface for box and class types.
| 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.
| 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.
| fir::BaseBoxType fir::BaseBoxType::getBoxTypeWithNewShape | ( | mlir::Type | shapeMold | ) | const |
Return the same type, except for the shape, that is taken the shape of shapeMold.