FLANG
|
#include <flang/Lower/HostAssociations.h>
Public Member Functions | |
bool | empty () const |
Returns true iff there are no host associations. | |
bool | hasTupleAssociations () const |
void | addSymbolsToBind (const llvm::SetVector< const Fortran::semantics::Symbol * > &symbols, const Fortran::semantics::Scope &hostScope) |
void | hostProcedureBindings (AbstractConverter &converter, SymMap &symMap) |
void | internalProcedureBindings (AbstractConverter &converter, SymMap &symMap) |
mlir::Type | getArgumentType (AbstractConverter &convert) |
Return the type of the extra argument to add to each internal procedure. | |
bool | isAssociated (const Fortran::semantics::Symbol &symbol) const |
Is symbol host associated ? | |
Internal procedures in Fortran may access variables declared in the host procedure directly. We bundle these variables together in a tuple and pass them as an extra argument.
void Fortran::lower::HostAssociations::addSymbolsToBind | ( | const llvm::SetVector< const Fortran::semantics::Symbol * > & | symbols, |
const Fortran::semantics::Scope & | hostScope | ||
) |
Adds a set of Symbols that will be the host associated bindings for this host procedure.
|
inline |
Returns true iff there are host associations that are conveyed through an extra tuple argument.
void Fortran::lower::HostAssociations::hostProcedureBindings | ( | AbstractConverter & | converter, |
SymMap & | symMap | ||
) |
Code gen the FIR for the local bindings for the host associated symbols for the host (parent) procedure using builder
.
void Fortran::lower::HostAssociations::internalProcedureBindings | ( | AbstractConverter & | converter, |
SymMap & | symMap | ||
) |
Code gen the FIR for the local bindings for the host associated symbols for an internal (child) procedure using builder
.