FLANG
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
fir::BoxValue Class Reference

#include <flang/Optimizer/Builder/BoxValue.h>

Inheritance diagram for fir::BoxValue:
fir::AbstractIrBox fir::AbstractBox fir::AbstractArrayBox

Public Member Functions

 BoxValue (mlir::Value addr)
 
 BoxValue (mlir::Value addr, llvm::ArrayRef< mlir::Value > lbounds, llvm::ArrayRef< mlir::Value > explicitParams, llvm::ArrayRef< mlir::Value > explicitExtents={})
 
bool isContiguous () const
 
BoxValue clone (mlir::Value newBox) const
 
LLVM_DUMP_METHOD void dump () const
 
llvm::ArrayRef< mlir::Value > getLBounds () const
 
llvm::ArrayRef< mlir::Value > getExplicitExtents () const
 
llvm::ArrayRef< mlir::Value > getExplicitParameters () const
 
- Public Member Functions inherited from fir::AbstractIrBox
 AbstractIrBox (mlir::Value addr)
 
 AbstractIrBox (mlir::Value addr, llvm::ArrayRef< mlir::Value > lbounds, llvm::ArrayRef< mlir::Value > extents)
 
fir::BaseBoxType getBoxTy () const
 Get the fir.box<type> part of the address type.
 
mlir::Type getBaseTy () const
 
mlir::Type getMemTy () const
 
mlir::Type getEleTy () const
 Get the scalar type related to the described entity.
 
bool hasRank () const
 Is the entity an array or an assumed rank ?
 
bool hasAssumedRank () const
 Is this an assumed rank ?
 
unsigned rank () const
 
bool isCharacter () const
 Is this a character entity ?
 
bool isDerived () const
 Is this a derived type entity ?
 
bool isDerivedWithLenParameters () const
 
bool isPolymorphic () const
 Is this a polymorphic entity?
 
bool isUnlimitedPolymorphic () const
 Is this a CLASS(*)/TYPE(*)?
 
- Public Member Functions inherited from fir::AbstractBox
 AbstractBox (mlir::Value addr)
 
mlir::Value getAddr () const
 
- Public Member Functions inherited from fir::AbstractArrayBox
 AbstractArrayBox (llvm::ArrayRef< mlir::Value > extents, llvm::ArrayRef< mlir::Value > lbounds)
 
const llvm::SmallVectorImpl< mlir::Value > & getExtents () const
 
const llvm::SmallVectorImpl< mlir::Value > & getLBounds () const
 
bool lboundsAllOne () const
 
std::size_t rank () const
 

Protected Member Functions

bool verify () const
 

Protected Attributes

llvm::SmallVector< mlir::Value, 2 > explicitParams
 
- Protected Attributes inherited from fir::AbstractBox
mlir::Value addr
 
- Protected Attributes inherited from fir::AbstractArrayBox
llvm::SmallVector< mlir::Value, 4 > extents
 
llvm::SmallVector< mlir::Value, 4 > lbounds
 

Friends

llvm::raw_ostream & operator<< (llvm::raw_ostream &, const BoxValue &)
 

Detailed Description

An entity described by a fir.box value that cannot be read into another ExtendedValue category, either because the fir.box may be an absent optional and we need to wait until the user is referencing it to read it, or because it contains important information that cannot be exposed in FIR (e.g. non contiguous byte stride). It may also store explicit bounds or LEN parameters that were specified for the entity.

Member Function Documentation

◆ verify()

bool fir::BoxValue::verify ( ) const
protected

Debug verifier for BoxValue ctor. There is no guarantee this will always be called.


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