[flang] Do not convey captured globals through host link
Addresses and properties (bounds, length parameters) of host variables associated in an internal procedure were all passed via an extra tuple argument of the internal procedure. This extra tuple is in general an overhead: it must be created and passed, and require creating thunks when taking the address of the internal procedure. This patch allows not using the tuple for host global variables (from modules, common block, or local saved variables) since they can be instantiated from the fir.global symbol in the internal procedure instead. Add a fir.internal_proc attribute to mlir::FuncOp for internal procedures so that ArrayValueCopy can still detect internal procedures even if they do not have a tuple argument. Differential Revision: https://reviews.llvm.org/D140288
Loading
Please sign in to comment