FLANG
Public Types | Public Member Functions | Friends | List of all members
fir::ExtendedValue Class Reference

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

Inheritance diagram for fir::ExtendedValue:
fir::details::matcher< ExtendedValue >

Public Types

using VT = std::variant< UnboxedValue, CharBoxValue, ArrayBoxValue, CharArrayBoxValue, ProcBoxValue, BoxValue, MutableBoxValue, PolymorphicValue >
 

Public Member Functions

template<typename A , typename = std::enable_if_t< !std::is_same_v<std::decay_t<A>, ExtendedValue>>>
constexpr ExtendedValue (A &&a)
 
template<typename A >
constexpr const A * getBoxOf () const
 
constexpr const CharBoxValuegetCharBox () const
 
constexpr const UnboxedValuegetUnboxed () const
 
unsigned rank () const
 
bool isPolymorphic () const
 
bool hasAssumedRank () const
 
LLVM_DUMP_METHOD void dump () const
 LLVM style debugging of extended values.
 
const VT & matchee () const
 
- Public Member Functions inherited from fir::details::matcher< ExtendedValue >
auto match (Ts... ts)
 
auto match (Ts... ts) const
 

Friends

llvm::raw_ostream & operator<< (llvm::raw_ostream &, const ExtendedValue &)
 Pretty-print an extended value.
 

Detailed Description

An extended value is a box of values pertaining to a discrete entity. It is used in lowering to track all the runtime values related to an entity. For example, an entity may have an address in memory that contains its value(s) as well as various attribute values that describe the shape and starting indices if it is an array entity.


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