FLANG
|
#include <flang/Optimizer/Builder/TemporaryStorage.h>
Public Member Functions | |
AnyVariableStack (mlir::Location loc, fir::FirOpBuilder &builder, mlir::Type valueStaticType) | |
void | pushValue (mlir::Location loc, fir::FirOpBuilder &builder, mlir::Value value) |
void | resetFetchPosition (mlir::Location loc, fir::FirOpBuilder &builder) |
mlir::Value | fetch (mlir::Location loc, fir::FirOpBuilder &builder) |
void | destroy (mlir::Location loc, fir::FirOpBuilder &builder) |
bool | canBeFetchedAfterPush () const |
Data structure to stack any kind of variables with the same static type and rank. Each variable may have different type parameters, bounds, and dynamic type. Fetching variable N will return a variable with the same address, dynamic type, bounds, and type parameters as the Nth variable that was pushed. It is implemented using runtime. Note that this is not meant to save POINTER or ALLOCATABLE descriptor addresses, use AnyAddressStack instead.