FLANG
fir::factory::ArrayTemp Class Reference

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

Public Member Functions

 ArrayTemp (mlir::Location loc, fir::FirOpBuilder &builder, fir::SequenceType declaredType, llvm::ArrayRef< mlir::Value > extents, llvm::ArrayRef< mlir::Value > lowerBounds, llvm::ArrayRef< mlir::Value > lengths, bool allocateOnHeap, llvm::StringRef name)
void pushValue (mlir::Location loc, fir::FirOpBuilder &builder, mlir::Value value, mlir::ValueRange indices)
void resetFetchPosition (mlir::Location loc, fir::FirOpBuilder &builder)
mlir::Value fetch (mlir::Location loc, fir::FirOpBuilder &builder, mlir::ValueRange indices)
void destroy (mlir::Location loc, fir::FirOpBuilder &builder)
bool canBeFetchedAfterPush () const

Detailed Description

Multidimensional temporary indexed directly by the enclosing loop induction variables (innermost loop is the first dimension). The indices passed to pushValue/fetch are interpreted in the array's domain, which is described by a fir.shape_shift built from the loop extents and lower bounds. This avoids the loop-carried counter used by HomogeneousScalarStack, keeping loop iterations independent. Limited to Fortran::common::maxRank dimensions.


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