FLANG
|
#include <flang/Optimizer/Builder/BoxValue.h>
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 CharBoxValue * | getCharBox () const |
constexpr const UnboxedValue * | getUnboxed () 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 |
![]() | |
auto | match (Ts... ts) |
auto | match (Ts... ts) const |
Friends | |
llvm::raw_ostream & | operator<< (llvm::raw_ostream &, const ExtendedValue &) |
Pretty-print an extended value. | |
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.