13#ifndef FORTRAN_LOWER_ALLOCATABLE_H 
   14#define FORTRAN_LOWER_ALLOCATABLE_H 
   16#include "flang/Lower/AbstractConverter.h" 
   17#include "flang/Optimizer/Builder/MutableBox.h" 
   18#include "flang/Runtime/allocator-registry-consts.h" 
   19#include "llvm/ADT/StringRef.h" 
   47bool isArraySectionWithoutVectorSubscript(
const SomeExpr &expr);
 
   51                     const parser::AllocateStmt &stmt, mlir::Location loc);
 
   55                       const parser::DeallocateStmt &stmt, mlir::Location loc);
 
   58                      const fir::MutableBoxValue &box, mlir::Location loc,
 
   59                      const Fortran::semantics::Symbol *sym = 
nullptr,
 
   60                      mlir::Value declaredTypeDesc = {});
 
   64                              const fir::MutableBoxValue &box,
 
   66                              const Fortran::semantics::Symbol *sym = 
nullptr);
 
   74                 mlir::ValueRange nonDeferredParams, 
bool alwaysUseBox,
 
   75                 unsigned allocator = kDefaultAllocator);
 
   82                         const fir::MutableBoxValue &box,
 
   83                         const SomeExpr &source, mlir::ValueRange lbounds,
 
   95    fir::FirOpBuilder &builder, mlir::Location loc,
 
   96    const Fortran::semantics::Symbol &sym, mlir::Value box);
 
  101                const Fortran::semantics::DerivedTypeSpec &typeSpec);
 
Definition AbstractConverter.h:85
 
Definition StatementContext.h:46
 
Definition FIRBuilder.h:55
 
Definition ParserActions.h:24
 
fir::MutableBoxValue createMutableBox(AbstractConverter &converter, mlir::Location loc, const pft::Variable &var, mlir::Value boxAddr, mlir::ValueRange nonDeferredParams, bool alwaysUseBox, unsigned allocator=kDefaultAllocator)
Definition Allocatable.cpp:1106
 
void associateMutableBox(AbstractConverter &converter, mlir::Location loc, const fir::MutableBoxValue &box, const SomeExpr &source, mlir::ValueRange lbounds, StatementContext &stmtCtx)
Definition Allocatable.cpp:1132
 
mlir::Value getTypeDescAddr(AbstractConverter &converter, mlir::Location loc, const Fortran::semantics::DerivedTypeSpec &typeSpec)
Retrieve the address of a type descriptor from its derived type spec.
Definition Allocatable.cpp:1207
 
bool isWholePointer(const SomeExpr &expr)
Is expr a reference to an entity with the POINTER attribute?
Definition Allocatable.cpp:1167
 
void genDeallocateStmt(AbstractConverter &converter, const parser::DeallocateStmt &stmt, mlir::Location loc)
Lower a deallocate statement to fir.
Definition Allocatable.cpp:949
 
void genDeallocateIfAllocated(AbstractConverter &converter, const fir::MutableBoxValue &box, mlir::Location loc, const Fortran::semantics::Symbol *sym=nullptr)
Deallocate an allocatable if it is allocated at the end of its lifetime.
Definition Allocatable.cpp:928
 
bool isWholeAllocatable(const SomeExpr &expr)
Is expr a reference to an entity with the ALLOCATABLE attribute?
Definition Allocatable.cpp:1160
 
mlir::Value getAssumedCharAllocatableOrPointerLen(fir::FirOpBuilder &builder, mlir::Location loc, const Fortran::semantics::Symbol &sym, mlir::Value box)
Definition Allocatable.cpp:1174
 
void genAllocateStmt(AbstractConverter &converter, const parser::AllocateStmt &stmt, mlir::Location loc)
Lower an allocate statement to fir.
Definition Allocatable.cpp:829
 
Definition check-expression.h:19
 
Definition bit-population-count.h:20
 
Definition AbstractConverter.h:34
 
Definition AbstractConverter.h:29
 
Definition SymbolMap.h:52
 
Definition PFTBuilder.h:410
 
Definition parse-tree.h:1994
 
Definition parse-tree.h:2014